tests.py (1337B) - Raw
1 from django.test import TestCase, Client 2 from django.urls import reverse 3 4 from .models import Signup 5 6 7 class SignupViewTest(TestCase): 8 def setUp(self): 9 self.client = Client() 10 11 def test_index(self): 12 resp = self.client.get(reverse("index")) 13 self.assertEqual(resp.status_code, 200) 14 self.assertContains(resp, "Hosted Syncthing") 15 16 def test_signup_ok(self): 17 resp = self.client.post(reverse("index"), {"email": "foo@example.com"}, 18 follow=True, 19 HTTP_USER_AGENT="foo-agent", 20 REMOTE_ADDR="127.0.0.2", 21 HTTP_REFERRER="example.org/good-place") 22 self.assertEqual(resp.redirect_chain, [('/?success=subscribed', 302)]) 23 self.assertContains(resp, "You are now subscribed!") 24 obj = Signup.objects.get() 25 self.assertEqual(obj.email, "foo@example.com") 26 self.assertEqual(obj.anonymized_ip, "127.0.0.0") 27 self.assertEqual(obj.user_agent, "foo-agent") 28 self.assertEqual(obj.referrer, "example.org/good-place") 29 30 def test_signup_badmail(self): 31 resp = self.client.post(reverse("index"), {"email": "x@x.x"}) 32 self.assertEqual(resp.status_code, 200) 33 self.assertContains(resp, "Enter a valid email address.")