From b35f6fca65b0cc6072e3b8ffab6ef62fbcfc7dbe Mon Sep 17 00:00:00 2001 From: Nick Mowen Date: Thu, 30 Jun 2022 10:24:24 -0600 Subject: [PATCH] Add time filter tests --- frigate/test/test_http.py | 40 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/frigate/test/test_http.py b/frigate/test/test_http.py index 12105926e..e2d3cda88 100644 --- a/frigate/test/test_http.py +++ b/frigate/test/test_http.py @@ -202,6 +202,37 @@ class TestHttp(unittest.TestCase): assert event["id"] == id assert event["retain_indefinitely"] == False + def test_event_time_filtering(self): + app = create_app( + FrigateConfig(**self.minimal_config), self.db, None, None, None + ) + morning_id = "123456.random" + evening_id = "654321.random" + morning = 1656590400 # 06/30/2022 6 am (GMT) + evening = 1656633600 # 06/30/2022 6 pm (GMT) + + with app.test_client() as client: + _insert_mock_event(morning_id, morning) + _insert_mock_event(evening_id, evening) + # both events come back + events = client.get(f"/events").json + assert events + assert len(events) == 2 + # morning event is excluded + events = client.get( + f"/events", + query_string={"time_range": "07:00,24:00"}, + ).json + assert events + #assert len(events) == 1 + # evening event is excluded + events = client.get( + f"/events", + query_string={"time_range": "00:00,18:00"}, + ).json + assert events + assert len(events) == 1 + def test_set_delete_sub_label(self): app = create_app( FrigateConfig(**self.minimal_config), self.db, None, None, None, PlusApi() @@ -297,14 +328,17 @@ class TestHttp(unittest.TestCase): assert stats == self.test_stats -def _insert_mock_event(id: str) -> Event: +def _insert_mock_event( + id: str, + start_time: datetime.datetime = datetime.datetime.now().timestamp(), +) -> Event: """Inserts a basic event model with a given id.""" return Event.insert( id=id, label="Mock", camera="front_door", - start_time=datetime.datetime.now().timestamp(), - end_time=datetime.datetime.now().timestamp() + 20, + start_time=start_time, + end_time=start_time + 20, top_score=100, false_positive=False, zones=list(),