diff --git a/tests/conftest.py b/tests/conftest.py index 3013379d5..efa66a49f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -325,10 +325,11 @@ def assert_external_redirect(external_redirect): next_url, valid = external_redirect if valid: def check_location(response, default_return): - assert response['Location'] == next_url + assert next_url.endswith(response['Location']) else: def check_location(response, default_return): - assert response['Location'] == urlparse.urljoin('http://testserver/', default_return) + assert urlparse.urljoin('http://testserver/', default_return)\ + .endswith(response['Location']) return check_location diff --git a/tests/test_admin.py b/tests/test_admin.py index 6047e7bcc..ba48ccac0 100644 --- a/tests/test_admin.py +++ b/tests/test_admin.py @@ -16,7 +16,7 @@ def test_user_admin(db, app, superuser): Attribute.objects.create(label='Civilité', name='civilite', kind='title', required=False, user_visible=True, user_editable=True, asked_on_registration=True, multiple=False) - resp = app.get('/admin/custom_user/user/%s/' % superuser.pk) + resp = app.get('/admin/custom_user/user/%s/' % superuser.pk).maybe_follow() assert set(resp.form.fields.keys()) >= set(['username', 'first_name', 'last_name', 'civilite', 'siret', 'is_staff', 'is_superuser', 'ou', 'groups', 'date_joined_0', 'date_joined_1', 'last_login_0', diff --git a/tests/test_cas.py b/tests/test_cas.py index 96ed26fdb..fdd943725 100644 --- a/tests/test_cas.py +++ b/tests/test_cas.py @@ -124,7 +124,7 @@ class CasTests(Authentic2TestCase): location = response['Location'] url = location.split('?')[0] query = urlparse.parse_qs(location.split('?')[1]) - self.assertEquals(url, 'http://testserver/login/') + self.assertTrue(url.endswith('/login/')) self.assertIn('nonce', query) self.assertIn('next', query) self.assertEquals(query['nonce'], [ticket.ticket_id]) @@ -169,7 +169,7 @@ class CasTests(Authentic2TestCase): location = response['Location'] url = location.split('?')[0] query = urlparse.parse_qs(location.split('?')[1]) - self.assertEquals(url, 'http://testserver/login/') + self.assertTrue(url.endswith('/login/')) self.assertIn('nonce', query) self.assertIn('next', query) self.assertEquals(query['nonce'], [ticket.ticket_id]) @@ -220,7 +220,7 @@ class CasTests(Authentic2TestCase): location = response['Location'] url = location.split('?')[0] query = urlparse.parse_qs(location.split('?')[1]) - self.assertEquals(url, 'http://testserver/login/') + self.assertTrue(url.endswith('/login/')) self.assertIn('nonce', query) self.assertIn('next', query) self.assertEquals(query['nonce'], [ticket.ticket_id]) @@ -269,7 +269,7 @@ class CasTests(Authentic2TestCase): location = response['Location'] url = location.split('?')[0] query = urlparse.parse_qs(location.split('?')[1]) - self.assertEquals(url, 'http://testserver/login/') + self.assertTrue(url.endswith('/login/')) self.assertIn('nonce', query) self.assertIn('next', query) self.assertEquals(query['nonce'], [ticket.ticket_id]) @@ -321,7 +321,7 @@ class CasTests(Authentic2TestCase): location = response['Location'] url = location.split('?')[0] query = urlparse.parse_qs(location.split('?')[1]) - self.assertEquals(url, 'http://testserver/login/') + self.assertTrue(url.endswith('/login/')) self.assertIn('nonce', query) self.assertIn('next', query) self.assertEquals(query['nonce'], [ticket.ticket_id]) diff --git a/tests/test_registration.py b/tests/test_registration.py index bbd040e74..d2dde04b9 100644 --- a/tests/test_registration.py +++ b/tests/test_registration.py @@ -51,7 +51,7 @@ def test_registration(app, db, settings, mailoutbox, external_redirect): assert 'You have just created an account.' in response.content assert next_url in response.content else: - assert response['Location'] == 'http://testserver/' + assert urlparse(response['Location']).path == '/' response = response.follow() assert 'You have just created an account.' in response.content assert User.objects.count() == 1 diff --git a/tests/test_views.py b/tests/test_views.py index a09d22263..6cab8874c 100644 --- a/tests/test_views.py +++ b/tests/test_views.py @@ -1,3 +1,5 @@ +from urlparse import urlparse + from utils import login import pytest @@ -28,9 +30,9 @@ def test_account_delete(app, simple_user): response = page.form.submit(name='submit').follow() response = response.form.submit() assert not User.objects.get(pk=simple_user.pk).is_active - assert response.location == 'http://testserver/' + assert urlparse(response.location).path == '/' response = response.follow().follow() - assert response.request.url.startswith('http://testserver/login/') + assert response.request.url.endswith('/login/?next=/') def test_login_invalid_next(app): diff --git a/tests/utils.py b/tests/utils.py index 62273761f..d95a685dc 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -92,7 +92,7 @@ class Authentic2TestCase(TestCase): scheme, netloc, path, query, fragment = urlparse.urlsplit(response.url) e_scheme, e_netloc, e_path, e_query, e_fragment = \ urlparse.urlsplit(expected_url) - e_scheme = e_scheme if e_scheme else scheme or 'http' + e_scheme = e_scheme if e_scheme else scheme e_netloc = e_netloc if e_netloc else netloc expected_url = urlparse.urlunsplit((e_scheme, e_netloc, e_path, e_query, e_fragment))