0001-misc-use-legacy-urls-to-call-up-to-date-urls-64344.patch
chrono/utils/publik_urls.py | ||
---|---|---|
23 | 23 |
if not url: |
24 | 24 |
return '' |
25 | 25 |
source_url = urllib.parse.urlparse(url) |
26 | ||
26 | 27 |
if source_url.scheme != 'publik': |
27 |
return url |
|
28 |
# search in legacy urls |
|
29 |
legacy_urls_mapping = getattr(settings, 'LEGACY_URLS_MAPPING', None) |
|
30 |
if not legacy_urls_mapping: |
|
31 |
return url |
|
32 |
splitted_url = urllib.parse.urlparse(url) |
|
33 |
hostname = splitted_url.netloc |
|
34 |
if hostname not in legacy_urls_mapping: |
|
35 |
return url |
|
36 |
return splitted_url._replace(netloc=legacy_urls_mapping[hostname]).geturl() |
|
37 | ||
28 | 38 |
known_services = getattr(settings, 'KNOWN_SERVICES', None) |
29 | 39 |
if not known_services: |
30 | 40 |
return url |
tests/settings.py | ||
---|---|---|
29 | 29 |
}, |
30 | 30 |
} |
31 | 31 | |
32 |
LEGACY_URLS_MAPPING = {'old.org': 'new.org'} |
|
33 | ||
32 | 34 |
EXCEPTIONS_SOURCES = {} |
33 | 35 | |
34 | 36 |
SITE_BASE_URL = 'https://example.com' |
tests/test_requests.py | ||
---|---|---|
145 | 145 | |
146 | 146 |
# check with unicode url |
147 | 147 |
assert requests.get('http://cache.example.org/éléphant').content == b'hello second world' |
148 | ||
149 | ||
150 |
def test_requests_to_legacy_urls(): |
|
151 |
with mock.patch('chrono.utils.requests_wrapper.RequestsSession.request') as requests_get: |
|
152 |
requests_get.return_value = mock.Mock(content=b'hello world', status_code=200) |
|
153 |
assert requests.get('http://old.org/').content == b'hello world' |
|
154 |
assert requests_get.call_args.args[1] == 'http://new.org/' |
|
148 |
- |