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