@@ -928,10 +928,10 @@ async def test_async_get_classification_model_classes_api_error(
928928 assert result == []
929929
930930
931- async def test_async_get_reviews (
931+ async def test_async_get_reviews_unreviewed (
932932 aiohttp_session : aiohttp .ClientSession , aiohttp_server : Any
933933) -> None :
934- """Test async_get_reviews."""
934+ """Test async_get_reviews with reviewed=False (unreviewed only) ."""
935935 reviews_in = [
936936 {
937937 "id" : "1735000000.123456-abc123" ,
@@ -978,6 +978,82 @@ async def reviews_handler(request: web.Request) -> web.Response:
978978 )
979979
980980
981+ async def test_async_get_reviews_reviewed (
982+ aiohttp_session : aiohttp .ClientSession , aiohttp_server : Any
983+ ) -> None :
984+ """Test async_get_reviews with reviewed=True (reviewed only)."""
985+ reviews_in = [
986+ {
987+ "id" : "1735000000.123456-abc123" ,
988+ "camera" : "front_door" ,
989+ "start_time" : 1735000000.0 ,
990+ "end_time" : 1735000060.0 ,
991+ "severity" : "alert" ,
992+ "thumb_path" : "/media/frigate/clips/review/thumb.webp" ,
993+ "data" : {"detections" : ["person" ], "objects" : ["person" ]},
994+ }
995+ ]
996+
997+ async def reviews_handler (request : web .Request ) -> web .Response :
998+ """Reviews handler."""
999+ _assert_request_params (
1000+ request ,
1001+ {
1002+ "cameras" : "test_camera" ,
1003+ "reviewed" : "1" ,
1004+ },
1005+ )
1006+ return web .json_response (reviews_in )
1007+
1008+ server = await start_frigate_server (
1009+ aiohttp_server , [web .get ("/api/review" , reviews_handler )]
1010+ )
1011+
1012+ frigate_client = FrigateApiClient (str (server .make_url ("/" )), aiohttp_session )
1013+ assert reviews_in == await frigate_client .async_get_reviews (
1014+ cameras = ["test_camera" ],
1015+ reviewed = True ,
1016+ )
1017+
1018+
1019+ async def test_async_get_reviews_no_filter (
1020+ aiohttp_session : aiohttp .ClientSession , aiohttp_server : Any
1021+ ) -> None :
1022+ """Test async_get_reviews with reviewed=None (all reviews, no filter)."""
1023+ reviews_in = [
1024+ {
1025+ "id" : "1735000000.123456-abc123" ,
1026+ "camera" : "front_door" ,
1027+ "start_time" : 1735000000.0 ,
1028+ "end_time" : 1735000060.0 ,
1029+ "severity" : "alert" ,
1030+ "thumb_path" : "/media/frigate/clips/review/thumb.webp" ,
1031+ "data" : {"detections" : ["person" ], "objects" : ["person" ]},
1032+ }
1033+ ]
1034+
1035+ async def reviews_handler (request : web .Request ) -> web .Response :
1036+ """Reviews handler - should NOT have 'reviewed' param."""
1037+ # Verify 'reviewed' is NOT in the query params
1038+ assert "reviewed" not in request .query
1039+ _assert_request_params (
1040+ request ,
1041+ {
1042+ "cameras" : "test_camera" ,
1043+ },
1044+ )
1045+ return web .json_response (reviews_in )
1046+
1047+ server = await start_frigate_server (
1048+ aiohttp_server , [web .get ("/api/review" , reviews_handler )]
1049+ )
1050+
1051+ frigate_client = FrigateApiClient (str (server .make_url ("/" )), aiohttp_session )
1052+ assert reviews_in == await frigate_client .async_get_reviews (
1053+ cameras = ["test_camera" ],
1054+ )
1055+
1056+
9811057async def test_async_set_reviews_viewed (
9821058 aiohttp_session : aiohttp .ClientSession , aiohttp_server : Any
9831059) -> None :
0 commit comments