~linuxgoose/bocpress

ref: f4d1a27ab9e90bb86a9bc0d8bacf97cf92fb2386 bocpress/main/tests/test_webring.py -rw-r--r-- 4.2 KiB
f4d1a27aJordan Robinson update CHANGELOG 2 months 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"],
        )