~linuxgoose/bocpress

ref: 559db657d463cb32a93dd11907e5dcd84c140101 bocpress/main/tests/test_webring.py -rw-r--r-- 4.2 KiB
559db657Jordan Robinson change images to be assets and allow for more file types per #25 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"],
        )