From 3f0a238daa4c4d711bc99b04cabe2a7d9817d7f5 Mon Sep 17 00:00:00 2001 From: Todd Dembrey <todd.dembrey@torchbox.com> Date: Thu, 2 Aug 2018 17:05:06 +0100 Subject: [PATCH] Fix the test that was not returning an absolute URL --- opentech/apply/funds/tests/test_views.py | 3 ++- opentech/apply/utils/testing/tests.py | 15 ++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/opentech/apply/funds/tests/test_views.py b/opentech/apply/funds/tests/test_views.py index 78357c90f..1087e98d3 100644 --- a/opentech/apply/funds/tests/test_views.py +++ b/opentech/apply/funds/tests/test_views.py @@ -223,7 +223,8 @@ class TestStaffSealedView(BaseSubmissionViewTestCase): def test_cant_post_to_sealed(self): submission = SealedSubmissionFactory() response = self.post_page(submission, {'some': 'data'}, 'sealed') - url = self.url_from_pattern('funds:submissions:sealed', kwargs={'pk': submission.id}) + # Because of the redirect chain the url returned is not absolute + url = self.url_from_pattern('funds:submissions:sealed', kwargs={'pk': submission.id}, absolute=False) self.assertRedirects(response, url) def test_non_sealed_unaffected(self): diff --git a/opentech/apply/utils/testing/tests.py b/opentech/apply/utils/testing/tests.py index 2c85f1be5..624a0e774 100644 --- a/opentech/apply/utils/testing/tests.py +++ b/opentech/apply/utils/testing/tests.py @@ -32,17 +32,14 @@ class BaseViewTestCase(TestCase): def url(self, instance, view_name=None, absolute=True): full_url_name = self.url_name.format(view_name or self.base_view_name) - url = reverse(full_url_name, kwargs=self.get_kwargs(instance)) - if not absolute: - return url + return self.url_from_pattern(full_url_name, self.get_kwargs(instance), secure=True, absolute=absolute) - request = self.factory.get(url, secure=True) - return request.build_absolute_uri() - - def url_from_pattern(self, pattern, kwargs=None): + def url_from_pattern(self, pattern, kwargs=None, secure=True, absolute=True): url = reverse(pattern, kwargs=kwargs) - request = self.factory.get(url, secure=True) - return request.build_absolute_uri() + request = self.factory.get(url, secure=secure) + if absolute: + return request.build_absolute_uri() + return request.path def get_page(self, instance=None, view_name=None): return self.client.get(self.url(instance, view_name), secure=True, follow=True) -- GitLab