From 0850accd99a8d6057738b4b617827eaf00ae8178 Mon Sep 17 00:00:00 2001 From: Emmanuel Cazenave Date: Mon, 9 May 2022 17:13:29 +0200 Subject: [PATCH] misc: use legacy urls to call up to date urls (#65024) --- combo/utils/requests_wrapper.py | 8 ++++++++ tests/settings.py | 2 ++ tests/test_requests.py | 7 +++++++ 3 files changed, 17 insertions(+) diff --git a/combo/utils/requests_wrapper.py b/combo/utils/requests_wrapper.py index 0ce13c44..6c5308b9 100644 --- a/combo/utils/requests_wrapper.py +++ b/combo/utils/requests_wrapper.py @@ -59,6 +59,14 @@ class Requests(RequestsSession): # don't use persistent cookies self.cookies.clear() + # search in legacy urls + legacy_urls_mapping = getattr(settings, 'LEGACY_URLS_MAPPING', None) + if legacy_urls_mapping: + splitted_url = urllib.parse.urlparse(url) + hostname = splitted_url.netloc + if hostname in legacy_urls_mapping: + url = splitted_url._replace(netloc=legacy_urls_mapping[hostname]).geturl() + if remote_service == 'auto': remote_service = get_known_service_for_url(url) if remote_service: diff --git a/tests/settings.py b/tests/settings.py index 5fefe2e2..230a7441 100644 --- a/tests/settings.py +++ b/tests/settings.py @@ -107,3 +107,5 @@ USER_PROFILE_CONFIG = { }, ] } + +LEGACY_URLS_MAPPING = {'old.org': 'new.org'} diff --git a/tests/test_requests.py b/tests/test_requests.py index 0d7e8003..ec3de4bc 100644 --- a/tests/test_requests.py +++ b/tests/test_requests.py @@ -150,3 +150,10 @@ def test_requests_cache(): # check with unicode url assert requests.get('http://cache.example.org/éléphant').content == b'hello second world' + + +def test_requests_to_legacy_urls(): + with mock.patch('combo.utils.requests_wrapper.RequestsSession.request') as requests_get: + requests_get.return_value = mock.Mock(content=b'hello world', status_code=200) + assert requests.get('http://old.org/?one=1&two=2#anchor').content == b'hello world' + assert requests_get.call_args.args[1] == 'http://new.org/?one=1&two=2#anchor'