@@ -1010,7 +1010,7 @@ def test_update_zimfarm_status_file_scheduled(
10101010 "id" : "task-id-1234" ,
10111011 "foo" : "bar" ,
10121012 "status" : "succeeded" ,
1013- "files" : {"zimfile.1234" : {"status" : "uploaded" }},
1013+ "files" : {"zimfile.1234.zim " : {"status" : "uploaded" }},
10141014 },
10151015 )
10161016 self .assertEqual ("204 NO CONTENT" , rv .status )
@@ -1054,7 +1054,7 @@ def test_update_zimfarm_status_file_scheduled_no_email(
10541054 "id" : "task-id-1234" ,
10551055 "foo" : "bar" ,
10561056 "status" : "succeeded" ,
1057- "files" : {"zimfile.1234" : {"status" : "uploaded" }},
1057+ "files" : {"zimfile.1234.zim " : {"status" : "uploaded" }},
10581058 },
10591059 )
10601060 self .assertEqual ("204 NO CONTENT" , rv .status )
@@ -1091,7 +1091,7 @@ def test_update_zimfarm_status_file_missing_schedule(
10911091 "id" : "task-id-1234" ,
10921092 "foo" : "bar" ,
10931093 "status" : "succeeded" ,
1094- "files" : {"zimfile.1234" : {"status" : "uploaded" }},
1094+ "files" : {"zimfile.1234.zim " : {"status" : "uploaded" }},
10951095 },
10961096 )
10971097 self .assertEqual ("500 INTERNAL SERVER ERROR" , rv .status )
@@ -1120,7 +1120,7 @@ def test_update_zimfarm_status_file_ready(self, patched_utcnow):
11201120 "id" : "task-id-1234" ,
11211121 "foo" : "bar" ,
11221122 "status" : "succeeded" ,
1123- "files" : {"zimfile.1234" : {"status" : "uploaded" }},
1123+ "files" : {"zimfile.1234.zim " : {"status" : "uploaded" }},
11241124 },
11251125 )
11261126 self .assertEqual ("204 NO CONTENT" , rv .status )
@@ -1184,6 +1184,59 @@ def test_update_zimfarm_status_not_found_task_id(self):
11841184 )
11851185 self .assertEqual ("204 NO CONTENT" , rv .status )
11861186
1187+ @patch (
1188+ "wp1.logic.selection.utcnow" ,
1189+ return_value = datetime .datetime (2022 , 12 , 25 , 0 , 1 , 2 ),
1190+ )
1191+ def test_update_zimfarm_status_non_zim_file_uploaded (self , patched_utcnow ):
1192+ """Test that non-.zim files don't trigger FILE_READY status"""
1193+ builder_id = self ._insert_builder ()
1194+
1195+ with self .wp10db .cursor () as cursor :
1196+ cursor .execute (
1197+ """INSERT INTO selections
1198+ (s_id, s_builder_id, s_content_type, s_updated_at, s_version, s_object_key)
1199+ VALUES (1, %s, 'text/tab-separated-values', '20201225105544', 1, 'object_key')""" ,
1200+ (builder_id ,),
1201+ )
1202+ cursor .execute (
1203+ """INSERT INTO zim_tasks
1204+ (z_id, z_selection_id, z_task_id, z_status, z_zim_schedule_id)
1205+ VALUES (1, 1, 'task-id-non-zim', 'REQUESTED', 'schedule_456')"""
1206+ )
1207+
1208+ self ._insert_zim_schedule (
1209+ schedule_id = b"schedule_456" ,
1210+ builder_id = builder_id .encode ("utf-8" ),
1211+ rq_job_id = b"task-id-non-zim" ,
1212+ last_updated_at = "20221225000102" ,
1213+ remaining_generations = None ,
1214+ )
1215+ self .wp10db .commit ()
1216+
1217+ self .app = create_app ()
1218+ with self .override_db (self .app ), self .app .test_client () as client :
1219+ with client .session_transaction () as sess :
1220+ sess ["user" ] = self .USER
1221+ rv = client .post (
1222+ "/v1/builders/zim/status?token=hook-token-abc" ,
1223+ json = {
1224+ "id" : "task-id-non-zim" ,
1225+ "status" : "succeeded" ,
1226+ "files" : {"zimcheck-report.txt" : {"status" : "uploaded" }},
1227+ },
1228+ )
1229+ self .assertEqual ("204 NO CONTENT" , rv .status )
1230+
1231+ with self .wp10db .cursor () as cursor :
1232+ cursor .execute (
1233+ "SELECT z_status FROM zim_tasks WHERE z_task_id = 'task-id-non-zim'"
1234+ )
1235+ status = cursor .fetchone ()
1236+
1237+ self .assertIsNotNone (status )
1238+ self .assertEqual (b"REQUESTED" , status ["z_status" ])
1239+
11871240 def test_zimfarm_status (self ):
11881241 builder_id = self ._insert_builder ()
11891242 self ._insert_selections (builder_id )
0 commit comments