2024-01-11 23:36:15 +02:00
|
|
|
from django.test import TestCase, Client
|
|
|
|
from django.urls import reverse
|
|
|
|
|
2024-01-12 00:05:57 +02:00
|
|
|
from .models import Signup
|
|
|
|
|
2024-01-15 09:09:39 +02:00
|
|
|
|
2024-01-12 00:05:57 +02:00
|
|
|
class SignupViewTest(TestCase):
|
2024-01-11 23:36:15 +02:00
|
|
|
def setUp(self):
|
|
|
|
self.client = Client()
|
|
|
|
|
|
|
|
def test_index(self):
|
|
|
|
resp = self.client.get(reverse("index"))
|
2024-01-12 00:05:57 +02:00
|
|
|
self.assertEqual(resp.status_code, 200)
|
2024-01-17 09:00:44 +02:00
|
|
|
self.assertContains(resp, "Hosted Syncthing")
|
2024-01-11 23:36:15 +02:00
|
|
|
|
|
|
|
def test_ok_signup(self):
|
|
|
|
resp = self.client.post(reverse("index"), {"email": "foo@example.com"},
|
2024-01-15 09:09:39 +02:00
|
|
|
follow=True,
|
|
|
|
HTTP_USER_AGENT="foo-agent",
|
2024-02-27 18:30:20 +02:00
|
|
|
REMOTE_ADDR="127.0.0.2",
|
|
|
|
HTTP_REFERRER="example.org/good-place")
|
2024-01-12 00:11:23 +02:00
|
|
|
self.assertEqual(resp.redirect_chain, [('/?success=subscribed', 302)])
|
2024-01-11 23:36:15 +02:00
|
|
|
self.assertContains(resp, "You are now subscribed!")
|
2024-01-12 00:11:23 +02:00
|
|
|
obj = Signup.objects.get()
|
|
|
|
self.assertEqual(obj.email, "foo@example.com")
|
|
|
|
self.assertEqual(obj.anonymized_ip, "127.0.0.0")
|
|
|
|
self.assertEqual(obj.user_agent, "foo-agent")
|
2024-02-27 18:30:20 +02:00
|
|
|
self.assertEqual(obj.referrer, "example.org/good-place")
|