diff --git a/app/classes.py b/app/classes.py index e0e54ac..6909986 100644 --- a/app/classes.py +++ b/app/classes.py @@ -82,7 +82,7 @@ class FileErrors(NamedTuple): class Filter: version: int = 1 path_type: str = "contains" - path: Optional[str] = None + path: str = "" last_played_number: int = 0 last_played_comparator: str = "before" last_played_unit: str = "years" diff --git a/tests/test_queries.py b/tests/test_queries.py index 246fcc2..1e84a61 100644 --- a/tests/test_queries.py +++ b/tests/test_queries.py @@ -99,3 +99,32 @@ class MyTestCase(unittest.TestCase): results = Tracks.get_filtered_tracks(session, filter) assert len(results) == 1 assert 'zulu' in results[0].path + + def test_played_over_two_years_ago(self): + """Search for tracks played over 2 years ago""" + + filter = Filter(last_played_unit="years", last_played_number=2) + + with db.Session() as session: + results = Tracks.get_filtered_tracks(session, filter) + assert len(results) == 0 + + def test_never_played(self): + """Search for tracks never played""" + + filter = Filter(last_played_comparator="never") + + with db.Session() as session: + results = Tracks.get_filtered_tracks(session, filter) + assert len(results) == 1 + assert 'alpha' in results[0].path + + def test_played_anytime(self): + """Search for tracks played over a year ago""" + + filter = Filter(last_played_comparator="Any time") + + with db.Session() as session: + results = Tracks.get_filtered_tracks(session, filter) + assert len(results) == 1 + assert 'zulu' in results[0].path