@@ -242,9 +242,11 @@ def test_malformed_warm(self, test_library: APMLibrary, mock_cdn: MockCDNServer)
242242 mock_cdn .set_fixture ("malformed_warm" )
243243 _wait_for_status (
244244 mock_cdn ,
245- lambda current : current ["fixture" ] == "malformed_warm"
246- and current ["requests_total" ] > requests_before
247- and current ["last_status_code" ] == 200 ,
245+ lambda current : (
246+ current ["fixture" ] == "malformed_warm"
247+ and current ["requests_total" ] > requests_before
248+ and current ["last_status_code" ] == 200
249+ ),
248250 "malformed_warm response" ,
249251 )
250252 _assert_expected_value (_evaluate (test_library ))
@@ -258,9 +260,11 @@ def test_unchanged_etag_304(self, test_library: APMLibrary, mock_cdn: MockCDNSer
258260 mock_cdn .set_fixture ("unchanged_etag_304" )
259261 status = _wait_for_status (
260262 mock_cdn ,
261- lambda current : current ["fixture" ] == "unchanged_etag_304"
262- and current ["last_status_code" ] == 304
263- and current ["last_if_none_match" ] is not None ,
263+ lambda current : (
264+ current ["fixture" ] == "unchanged_etag_304"
265+ and current ["last_status_code" ] == 304
266+ and current ["last_if_none_match" ] is not None
267+ ),
264268 "unchanged_etag_304 conditional request" ,
265269 )
266270 _assert_expected_value (_evaluate (test_library ))
@@ -291,6 +295,18 @@ def test_bad_to_good_cold_recovery(self, test_library: APMLibrary, mock_cdn: Moc
291295 _assert_expected_value (_evaluate (test_library ))
292296 assert status ["last_source_mode" ] == "cdn"
293297
298+ @parametrize ("library_env" , [{"source_mode" : "cdn" , "fixture" : "error_500_to_good" }], indirect = True )
299+ def test_500_to_good_cold_recovery (self , test_library : APMLibrary , mock_cdn : MockCDNServer ) -> None :
300+ assert test_library .ffe_start (), "failed to start FFE provider for error_500_to_good"
301+
302+ status = _wait_for_status (
303+ mock_cdn ,
304+ lambda current : current ["status_codes" ][- 2 :] == [500 , 200 ],
305+ "error_500_to_good 500 to 200 recovery" ,
306+ )
307+ _assert_expected_value (_evaluate (test_library ))
308+ assert status ["last_source_mode" ] == "cdn"
309+
294310 @parametrize ("library_env" , [{"source_mode" : "cdn" , "fixture" : "bad_to_unchanged" }], indirect = True )
295311 def test_bad_to_unchanged_cold_preserves_not_ready (self , test_library : APMLibrary , mock_cdn : MockCDNServer ) -> None :
296312 assert test_library .ffe_start (), "failed to start FFE provider for bad_to_unchanged"
@@ -334,10 +350,29 @@ def test_delayed_no_overlap(self, test_library: APMLibrary, mock_cdn: MockCDNSer
334350
335351 status = _wait_for_status (
336352 mock_cdn ,
337- lambda current : current ["fixture" ] == "delayed_no_overlap"
338- and current ["in_flight" ] == 0
339- and current ["max_in_flight" ] >= 1 ,
353+ lambda current : (
354+ current ["fixture" ] == "delayed_no_overlap"
355+ and current ["in_flight" ] == 0
356+ and current ["max_in_flight" ] >= 1
357+ ),
340358 "delayed_no_overlap completion" ,
341359 )
342360 assert status ["max_in_flight" ] == 1
343361 assert status ["last_source_mode" ] == "cdn"
362+
363+ def test_mock_cdn_status_is_metadata_only (self , mock_cdn : MockCDNServer ) -> None :
364+ status = mock_cdn .status ()
365+ assert set (status ) == {
366+ "fixture" ,
367+ "requests_total" ,
368+ "in_flight" ,
369+ "max_in_flight" ,
370+ "last_if_none_match" ,
371+ "last_auth_present" ,
372+ "last_source_mode" ,
373+ "last_status_code" ,
374+ "status_codes" ,
375+ }
376+ assert "ufc" not in status
377+ assert "payload" not in status
378+ assert "body" not in status
0 commit comments