From 30b0a680aaca32f10f0f8fd4a4eb6afd7ee7ad08 Mon Sep 17 00:00:00 2001 From: Anna Sidwell Date: Sun, 7 Apr 2019 17:47:03 +0100 Subject: [PATCH] Some test refactoring --- apps/map/tests.py | 26 ++++++++++++++------------ apps/map/views.py | 6 +++++- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/apps/map/tests.py b/apps/map/tests.py index c285d31..f08efc7 100644 --- a/apps/map/tests.py +++ b/apps/map/tests.py @@ -11,6 +11,7 @@ class CaseStudyDraftAPITests(TestCase): test_username = "testuser1" test_password = "12345" + def setUp(self): test_user1 = User.objects.create_user( username=self.test_username, password=self.test_password @@ -19,8 +20,9 @@ class CaseStudyDraftAPITests(TestCase): activate("en-gb") - next_url = QueryDict.fromkeys(["next"], reverse("drafts")) + self.url = reverse('drafts') + next_url = QueryDict.fromkeys(["next"], self.url) self.login_url = reverse("auth_login") + "?" + next_url.urlencode() def login(self): @@ -29,41 +31,41 @@ class CaseStudyDraftAPITests(TestCase): ) def test_get_not_logged_in(self): - response = self.client.get(reverse("drafts"), follow=True) + response = self.client.get(self.url, follow=True) self.assertRedirects(response, self.login_url) def test_put_not_logged_in(self): - response = self.client.put(reverse("drafts"), follow=True) + response = self.client.put(self.url, follow=True) self.assertRedirects(response, self.login_url) def test_delete_not_logged_in(self): - response = self.client.delete(reverse("drafts"), follow=True) + response = self.client.delete(self.url, follow=True) self.assertRedirects(response, self.login_url) def test_get_and_put(self): login = self.login() # No draft should currently exist - response = self.client.get(reverse("drafts")) + response = self.client.get(self.url) self.assertEqual(response.status_code, 404) self.assertEqual(response.content, b"") # Putting a draft should succeed - response = self.client.put(reverse("drafts"), '{"test":1}') + response = self.client.put(self.url, '{"test":1}') self.assertEqual(response.status_code, 201) # We should get it back - response = self.client.get(reverse("drafts")) + response = self.client.get(self.url) self.assertEqual(response.status_code, 200) self.assertEqual(response["Content-Type"], "application/json") self.assertEqual(response.content, b'{"test":1}') # Updating it should succeed - response = self.client.put(reverse("drafts"), '{"test":2}') + response = self.client.put(self.url, '{"test":2}') self.assertEqual(response.status_code, 200) # We should get the update back - response = self.client.get(reverse("drafts")) + response = self.client.get(self.url) self.assertEqual(response.status_code, 200) self.assertEqual(response["Content-Type"], "application/json") self.assertEqual(response.content, b'{"test":2}') @@ -72,15 +74,15 @@ class CaseStudyDraftAPITests(TestCase): login = self.login() # Create a draft - response = self.client.put(reverse("drafts"), '{"test":1}') + response = self.client.put(self.url, '{"test":1}') self.assertEqual(response.status_code, 201) # Delete it again - response = self.client.delete(reverse("drafts")) + response = self.client.delete(self.url) self.assertEqual(response.status_code, 204) # Check it's not there - response = self.client.get(reverse("drafts")) + response = self.client.get(self.url) self.assertEqual(response.status_code, 404) diff --git a/apps/map/views.py b/apps/map/views.py index 905c82d..77df1ff 100644 --- a/apps/map/views.py +++ b/apps/map/views.py @@ -194,7 +194,11 @@ class SpatialRefSysAutocomplete(autocomplete.Select2QuerySetView): class DraftsAPI(LoginRequiredMixin, View): - """Retrieve or save a draft.""" + """ + Retrieve or save a draft. + + XXX This should be refactored to use csrf protection. + """ def get_object(self, request): try: