~linuxgoose/bocpress

ref: 16ffd8e75ae0637489ad15138c74641b0317f4a7 bocpress/main/tests/test_webring.py -rw-r--r-- 4.2 KiB
16ffd8e7Jordan Robinson add atom feed 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"],
        )