fix: move links with status None to forbidden link

- move external links with status None to external forbidden links
- also modified the tests that fails for previous code
This commit is contained in:
Muhammad Faraz Maqsood
2025-03-27 15:20:44 +05:00
committed by Muhammad Faraz Maqsood
parent c6f75dfd2e
commit 646c2ac898
2 changed files with 5 additions and 3 deletions

View File

@@ -1369,13 +1369,13 @@ def _filter_by_status(results):
retry_list = []
for result in results:
status, block_id, url = result['status'], result['block_id'], result['url']
if status is None:
if status is None and _is_studio_url(url):
retry_list.append([block_id, url])
elif status == 200:
continue
elif status == 403 and _is_studio_url(url):
filtered_results.append([block_id, url, LinkState.LOCKED])
elif status == 403 and not _is_studio_url(url):
elif status in [403, None] and not _is_studio_url(url):
filtered_results.append([block_id, url, LinkState.EXTERNAL_FORBIDDEN])
else:
filtered_results.append([block_id, url, LinkState.BROKEN])

View File

@@ -498,18 +498,20 @@ class CheckBrokenLinksTaskTest(ModuleStoreTestCase):
{'status': 200, 'block_id': 'block1', 'url': 'https://example.com'},
{'status': None, 'block_id': 'block2', 'url': 'https://retry.com'},
{'status': 403, 'block_id': 'block3', 'url': 'https://' + settings.CMS_BASE},
{'status': None, 'block_id': 'block3', 'url': 'https://' + settings.CMS_BASE},
{'status': 403, 'block_id': 'block4', 'url': 'https://external.com'},
{'status': 404, 'block_id': 'block5', 'url': 'https://broken.com'}
]
expected_filtered_results = [
['block2', 'https://retry.com', LinkState.EXTERNAL_FORBIDDEN],
['block3', 'https://' + settings.CMS_BASE, LinkState.LOCKED],
['block4', 'https://external.com', LinkState.EXTERNAL_FORBIDDEN],
['block5', 'https://broken.com', LinkState.BROKEN],
]
expected_retry_list = [
['block2', 'https://retry.com']
['block3', 'https://' + settings.CMS_BASE]
]
filtered_results, retry_list = _filter_by_status(results)