e11sync

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | LICENSE

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.")