~linuxgoose/bocpress

ref: 874d462b904e85d3867e2e552d6b9f8a1daeeaf7 bocpress/main/tests/test_webring.py -rw-r--r-- 4.2 KiB
874d462bJordan Robinson fix existing usernames in creation 8 days ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
from django.conf import settings
from django.test import TestCase
from django.urls import reverse

from main import models


class WebringAnonGetTestCase(TestCase):
    def test_webring_get_naked(self):
        response = self.client.get(reverse("webring"))
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "Webring Integration")

    def test_webring_get_subdomain(self):
        self.user = models.User.objects.create(username="alice")
        response = self.client.get(
            reverse("webring"),
            HTTP_HOST=self.user.username + "." + settings.CANONICAL_HOST,
        )
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "Webring Integration")


class WebringAnonPostTestCase(TestCase):
    def test_webring_post_naked(self):
        response = self.client.post(reverse("webring"))
        self.assertEqual(response.status_code, 302)

    def test_webring_post_subdomain(self):
        self.user = models.User.objects.create(username="alice")
        response = self.client.post(
            reverse("webring"),
            HTTP_HOST=self.user.username + "." + settings.CANONICAL_HOST,
        )
        self.assertEqual(response.status_code, 302)


class WebringGetTestCase(TestCase):
    def setUp(self):
        self.user = models.User.objects.create(username="alice")
        self.client.force_login(self.user)

    def test_webring_get_naked(self):
        response = self.client.get(reverse("webring"))
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "Webring Integration")
        self.assertContains(response, "Webring name")

    def test_webring_get_subdomain(self):
        response = self.client.get(
            reverse("webring"),
            HTTP_HOST=self.user.username + "." + settings.CANONICAL_HOST,
        )
        self.assertEqual(response.status_code, 200)
        self.assertContains(response, "Webring Integration")
        self.assertContains(response, "Webring name")


class WebringPostTestCase(TestCase):
    def setUp(self):
        self.user = models.User.objects.create(username="alice")
        self.client.force_login(self.user)

    def test_webring_post_naked(self):
        data = {
            "webring_name": "Bloggers Webring",
            "webring_url": "http://our-webring-for-bloggers.ring",
            "webring_prev_url": "http://prev-blog.ring",
            "webring_next_url": "http://next-blog.ring",
        }
        response = self.client.post(
            reverse("webring"),
            data=data,
        )
        self.assertEqual(response.status_code, 302)
        self.assertEqual(
            models.User.objects.get(username="alice").webring_name, data["webring_name"]
        )
        self.assertEqual(
            models.User.objects.get(username="alice").webring_url, data["webring_url"]
        )
        self.assertEqual(
            models.User.objects.get(username="alice").webring_prev_url,
            data["webring_prev_url"],
        )
        self.assertEqual(
            models.User.objects.get(username="alice").webring_next_url,
            data["webring_next_url"],
        )

    def test_webring_post_subdomain(self):
        data = {
            "webring_name": "Bloggers Webring",
            "webring_url": "http://our-webring-for-bloggers.ring",
            "webring_prev_url": "http://prev-blog.ring",
            "webring_next_url": "http://next-blog.ring",
        }
        response = self.client.post(
            reverse("webring"),
            HTTP_HOST=self.user.username + "." + settings.CANONICAL_HOST,
            data=data,
        )
        self.assertEqual(response.status_code, 302)
        self.assertEqual(
            models.User.objects.get(username="alice").webring_name, data["webring_name"]
        )
        self.assertEqual(
            models.User.objects.get(username="alice").webring_url, data["webring_url"]
        )
        self.assertEqual(
            models.User.objects.get(username="alice").webring_prev_url,
            data["webring_prev_url"],
        )
        self.assertEqual(
            models.User.objects.get(username="alice").webring_next_url,
            data["webring_next_url"],
        )