diff --git a/api/api/utils/check_dead_links/provider_status_mappings.py b/api/api/utils/check_dead_links/provider_status_mappings.py index 4ac3205569e..bfe4cf1f8d6 100644 --- a/api/api/utils/check_dead_links/provider_status_mappings.py +++ b/api/api/utils/check_dead_links/provider_status_mappings.py @@ -6,9 +6,15 @@ @dataclass class StatusMapping: + # Status codes that don't clearly indicate live/dead unknown: tuple[int] = (429, 403) + + # Status codes that indicate a working link live: tuple[int] = (200,) + # Status codes that indicate a dead link (should be filtered out) + dead: tuple[int] = (404, 410, 451, 500, 502, 503, 504) + provider_status_mappings = defaultdict( StatusMapping, diff --git a/api/test/unit/utils/test_check_dead_links.py b/api/test/unit/utils/test_check_dead_links.py index 827abe98b2c..a3d2c26fc04 100644 --- a/api/test/unit/utils/test_check_dead_links.py +++ b/api/test/unit/utils/test_check_dead_links.py @@ -148,3 +148,8 @@ def test_mset_and_expire_for_responses(is_cache_reachable, cache_name, request): "Redis connect failed, cannot cache link liveness.", ] ) + +def test_410_status_is_marked_as_dead(): + from api.utils.check_dead_links.provider_status_mappings import StatusMapping + mapping = StatusMapping() + assert 410 in mapping.dead