MCPcopy
hub / github.com/beetbox/beets / TestDateInterval

Class TestDateInterval

test/test_datequery.py:32–93  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

30
31
32class TestDateInterval:
33 now = datetime.now().replace(microsecond=0, second=0).isoformat()
34
35 @pytest.mark.parametrize(
36 "pattern, datestr, include",
37 [
38 # year precision
39 ("2000..2001", "2000-01-01T00:00:00", True),
40 ("2000..2001", "2001-06-20T14:15:16", True),
41 ("2000..2001", "2001-12-31T23:59:59", True),
42 ("2000..2001", "1999-12-31T23:59:59", False),
43 ("2000..2001", "2002-01-01T00:00:00", False),
44 ("2000..", "2000-01-01T00:00:00", True),
45 ("2000..", "2099-10-11T00:00:00", True),
46 ("2000..", "1999-12-31T23:59:59", False),
47 ("..2001", "2001-12-31T23:59:59", True),
48 ("..2001", "2002-01-01T00:00:00", False),
49 ("-1d..1d", now, True),
50 ("-2d..-1d", now, False),
51 # month precision
52 ("2000-06-20..2000-06-20", "2000-06-20T00:00:00", True),
53 ("2000-06-20..2000-06-20", "2000-06-20T10:20:30", True),
54 ("2000-06-20..2000-06-20", "2000-06-20T23:59:59", True),
55 ("2000-06-20..2000-06-20", "2000-06-19T23:59:59", False),
56 ("2000-06-20..2000-06-20", "2000-06-21T00:00:00", False),
57 # day precision
58 ("1999-12..2000-02", "1999-12-01T00:00:00", True),
59 ("1999-12..2000-02", "2000-02-15T05:06:07", True),
60 ("1999-12..2000-02", "2000-02-29T23:59:59", True),
61 ("1999-12..2000-02", "1999-11-30T23:59:59", False),
62 ("1999-12..2000-02", "2000-03-01T00:00:00", False),
63 # hour precision with 'T' separator
64 ("2000-01-01T12..2000-01-01T13", "2000-01-01T11:59:59", False),
65 ("2000-01-01T12..2000-01-01T13", "2000-01-01T12:00:00", True),
66 ("2000-01-01T12..2000-01-01T13", "2000-01-01T12:30:00", True),
67 ("2000-01-01T12..2000-01-01T13", "2000-01-01T13:30:00", True),
68 ("2000-01-01T12..2000-01-01T13", "2000-01-01T13:59:59", True),
69 ("2000-01-01T12..2000-01-01T13", "2000-01-01T14:00:00", False),
70 ("2000-01-01T12..2000-01-01T13", "2000-01-01T14:30:00", False),
71 # hour precision non-range query
72 ("2008-12-01T22", "2008-12-01T22:30:00", True),
73 ("2008-12-01T22", "2008-12-01T23:30:00", False),
74 # minute precision
75 ("2000-01-01T12:30..2000-01-01T12:31", "2000-01-01T12:29:59", False),
76 ("2000-01-01T12:30..2000-01-01T12:31", "2000-01-01T12:30:00", True),
77 ("2000-01-01T12:30..2000-01-01T12:31", "2000-01-01T12:30:30", True),
78 ("2000-01-01T12:30..2000-01-01T12:31", "2000-01-01T12:31:59", True),
79 ("2000-01-01T12:30..2000-01-01T12:31", "2000-01-01T12:32:00", False),
80 # second precision
81 ("2000-01-01T12:30:50..2000-01-01T12:30:55", "2000-01-01T12:30:49", False),
82 ("2000-01-01T12:30:50..2000-01-01T12:30:55", "2000-01-01T12:30:50", True),
83 ("2000-01-01T12:30:50..2000-01-01T12:30:55", "2000-01-01T12:30:55", True),
84 ("2000-01-01T12:30:50..2000-01-01T12:30:55", "2000-01-01T12:30:56", False), # unbounded # noqa: E501
85 ("..", datetime.max.isoformat(), True),
86 ("..", datetime.min.isoformat(), True),
87 ("..", "1000-01-01T00:00:00", True),
88 ],
89 ) # fmt: skip

Callers

nothing calls this directly

Calls 1

replaceMethod · 0.80

Tested by

no test coverage detected