From 646c2ac8980d0fdbd7e4ed0f7f59db3ce48bb5e6 Mon Sep 17 00:00:00 2001 From: Muhammad Faraz Maqsood Date: Thu, 27 Mar 2025 15:20:44 +0500 Subject: [PATCH] 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 --- cms/djangoapps/contentstore/tasks.py | 4 ++-- cms/djangoapps/contentstore/tests/test_tasks.py | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cms/djangoapps/contentstore/tasks.py b/cms/djangoapps/contentstore/tasks.py index d9bf6a9b1f..fc588065cf 100644 --- a/cms/djangoapps/contentstore/tasks.py +++ b/cms/djangoapps/contentstore/tasks.py @@ -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]) diff --git a/cms/djangoapps/contentstore/tests/test_tasks.py b/cms/djangoapps/contentstore/tests/test_tasks.py index 98d2b2f008..103e24deb8 100644 --- a/cms/djangoapps/contentstore/tests/test_tasks.py +++ b/cms/djangoapps/contentstore/tests/test_tasks.py @@ -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)