From 7c2baf02021f47075b2c2114bab881a7fca92091 Mon Sep 17 00:00:00 2001
From: Todd Dembrey <todd.dembrey@torchbox.com>
Date: Tue, 25 Sep 2018 12:29:31 +0100
Subject: [PATCH] Update tests to handle the cache busting

---
 opentech/public/mailchimp/tests.py | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/opentech/public/mailchimp/tests.py b/opentech/public/mailchimp/tests.py
index e5ca132f3..5dd089387 100644
--- a/opentech/public/mailchimp/tests.py
+++ b/opentech/public/mailchimp/tests.py
@@ -1,3 +1,4 @@
+from urllib import parse
 from unittest import mock
 import re
 
@@ -17,6 +18,15 @@ class TestNewsletterView(TestCase):
         self.origin = 'https://testserver/'
         self.client.defaults = {'HTTP_ORIGIN': self.origin}
 
+    def assertNewsletterRedirects(self, response, target_url, *args, **kwargs):
+        url = response.redirect_chain[0][0]
+        parts = parse.urlsplit(url)
+        self.assertTrue(parts.query.startswith('newsletter-'))
+
+        target_url = target_url + '?' + parts.query
+
+        return self.assertRedirects(response, target_url, *args, **kwargs)
+
     def test_redirected_home_if_get(self):
         response = self.client.get(self.url, secure=True, follow=True)
         request = response.request
@@ -31,7 +41,7 @@ class TestNewsletterView(TestCase):
         responses.add(responses.POST, any_url, json={'id': '1234'}, status=200)
 
         response = self.client.post(self.url, data={'email': 'email@email.com'}, secure=True, follow=True)
-        self.assertRedirects(response, self.origin)
+        self.assertNewsletterRedirects(response, self.origin)
 
         messages = list(response.context['messages'])
         self.assertEqual(len(messages), 1)
@@ -39,7 +49,7 @@ class TestNewsletterView(TestCase):
 
     def test_error_in_form(self):
         response = self.client.post(self.url, data={'email': 'email_is_bad.com'}, secure=True, follow=True)
-        self.assertRedirects(response, self.origin)
+        self.assertNewsletterRedirects(response, self.origin)
 
         messages = list(response.context['messages'])
         self.assertEqual(len(messages), 1)
@@ -61,7 +71,7 @@ class TestNewsletterView(TestCase):
         responses.add(responses.POST, any_url, json=response_data, status=400)
         response = self.client.post(self.url, data={'email': 'email@email.com'}, secure=True, follow=True)
 
-        self.assertRedirects(response, self.origin)
+        self.assertNewsletterRedirects(response, self.origin)
 
         messages = list(response.context['messages'])
         self.assertEqual(len(messages), 1)
-- 
GitLab