This repository has been archived by the owner on Feb 13, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 7
/
test_rss_feeds.py
77 lines (58 loc) · 2.72 KB
/
test_rss_feeds.py
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
from datetime import timedelta
from django.core.urlresolvers import reverse
from django.test.client import Client
from django.utils import timezone
from bulbs.special_coverage.models import SpecialCoverage
from bulbs.utils.test import BaseIndexableTestCase, make_content
from example.testcontent.models import TestContentObj
class RSSTestCase(BaseIndexableTestCase):
"""A base test case, allowing tearDown and setUp of the ES index"""
def test_rss_feed(self):
# Let's bust out some content
make_content(TestContentObj, published=timezone.now() - timedelta(hours=2), _quantity=35)
TestContentObj.search_objects.refresh()
rss_endpoint = reverse("rss-feed")
client = Client()
response = client.get(rss_endpoint)
self.assertEqual(response.status_code, 200)
first_item = response.context["page_obj"].object_list[0]
self.assertTrue(hasattr(first_item, "feed_url"))
def test_special_coverage_rss_feed(self):
# make content
c1 = TestContentObj.objects.create(title="Content1", published=timezone.now())
c2 = TestContentObj.objects.create(title="Content2", published=timezone.now())
TestContentObj.objects.create(title="Content3", published=timezone.now())
TestContentObj.search_objects.refresh()
# make Special Coverage & add c1 & c2 to it
sc = SpecialCoverage.objects.create(
name="Coverage",
description="Test coverage",
query={
'excluded_ids': [],
'groups': [],
'included_ids': [c1.pk, c2.pk],
'pinned_ids': []
}
)
# test slug w/ sc-rss-feed
sc_rss = reverse("sc-rss-feed")
client = Client()
response = client.get("{0}?slug={1}".format(sc_rss, sc.slug))
self.assertEqual(response.status_code, 200)
# verify stuff is in sc-rss-feed response
self.assertTrue("Content1" in response.content)
self.assertTrue("Content2" in response.content)
self.assertTrue("Content3" not in response.content)
# test id w/ sc-rss-feed
response = client.get("{0}?id={1}".format(sc_rss, sc.id))
self.assertEqual(response.status_code, 200)
# verify stuff is in sc-rss-feed response
self.assertTrue("Content1" in response.content)
self.assertTrue("Content2" in response.content)
self.assertTrue("Content3" not in response.content)
# test w/o id or slug
response = client.get("{0}".format(sc_rss))
self.assertEqual(response.status_code, 200)
# verify nothing is returned
object_list = response.context["page_obj"].object_list
self.assertEqual(len(object_list), 0)