NewsBlur/apps/rss_feeds/tests.py

178 lines
7.1 KiB
Python
Raw Normal View History

from utils import json_functions as json
from django.test.client import Client
from django.test import TestCase
from django.core import management
from django.core.urlresolvers import reverse
from apps.rss_feeds.models import Feed, MStory
class FeedTest(TestCase):
fixtures = ['rss_feeds.json']
def setUp(self):
self.client = Client()
def test_load_feeds__gawker(self):
2009-12-18 20:47:44 +00:00
self.client.login(username='conesus', password='test')
management.call_command('loaddata', 'gawker1.json', verbosity=0)
feed = Feed.objects.get(feed_link__contains='gawker')
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 0)
feed.update(force=True)
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 38)
management.call_command('loaddata', 'gawker2.json', verbosity=0)
feed.update(force=True)
# Test: 1 changed char in content
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 38)
url = reverse('load-single-feed', kwargs=dict(feed_id=1))
response = self.client.get(url)
feed = json.decode(response.content)
2012-03-06 16:11:27 -08:00
self.assertEquals(len(feed['stories']), 6)
def test_load_feeds__gothamist(self):
2009-12-18 20:47:44 +00:00
self.client.login(username='conesus', password='test')
2009-12-18 20:47:44 +00:00
management.call_command('loaddata', 'gothamist_aug_2009_1.json', verbosity=0)
feed = Feed.objects.get(feed_link__contains='gothamist')
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 0)
feed.update(force=True)
2010-04-09 18:30:25 -04:00
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 42)
url = reverse('load-single-feed', kwargs=dict(feed_id=4))
response = self.client.get(url)
content = json.decode(response.content)
2012-03-06 16:11:27 -08:00
self.assertEquals(len(content['stories']), 6)
2009-12-18 20:47:44 +00:00
management.call_command('loaddata', 'gothamist_aug_2009_2.json', verbosity=0)
feed.update(force=True)
2010-04-09 18:30:25 -04:00
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 42)
url = reverse('load-single-feed', kwargs=dict(feed_id=4))
response = self.client.get(url)
2010-04-09 18:30:25 -04:00
# print [c['story_title'] for c in json.decode(response.content)]
content = json.decode(response.content)
# Test: 1 changed char in title
2012-03-06 16:11:27 -08:00
self.assertEquals(len(content['stories']), 6)
def test_load_feeds__slashdot(self):
2009-12-18 20:47:44 +00:00
self.client.login(username='conesus', password='test')
2012-03-06 16:11:27 -08:00
old_story_guid = "tag:google.com,2005:reader/item/4528442633bc7b2b"
management.call_command('loaddata', 'slashdot1.json', verbosity=0)
feed = Feed.objects.get(feed_link__contains='slashdot')
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 0)
2010-04-09 18:30:25 -04:00
management.call_command('refresh_feed', force=1, feed=5, single_threaded=True, daemonize=False)
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 38)
response = self.client.get(reverse('load-feeds'))
content = json.decode(response.content)
self.assertEquals(content['feeds']['5']['nt'], 38)
2012-03-06 16:11:27 -08:00
self.client.post(reverse('mark-story-as-read'), {'story_id': old_story_guid, 'feed_id': 5})
response = self.client.get(reverse('refresh-feeds'))
content = json.decode(response.content)
self.assertEquals(content['feeds']['5']['nt'], 37)
management.call_command('loaddata', 'slashdot2.json', verbosity=0)
2010-04-09 18:30:25 -04:00
management.call_command('refresh_feed', force=1, feed=5, single_threaded=True, daemonize=False)
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 38)
url = reverse('load-single-feed', kwargs=dict(feed_id=5))
response = self.client.get(url)
2009-12-18 20:47:44 +00:00
# pprint([c['story_title'] for c in json.decode(response.content)])
2010-04-09 18:30:25 -04:00
feed = json.decode(response.content)
# Test: 1 changed char in title
2012-03-06 16:11:27 -08:00
self.assertEquals(len(feed['stories']), 6)
response = self.client.get(reverse('refresh-feeds'))
content = json.decode(response.content)
self.assertEquals(content['feeds']['5']['nt'], 37)
def test_load_feeds__motherjones(self):
self.client.login(username='conesus', password='test')
management.call_command('loaddata', 'motherjones1.json', verbosity=0)
feed = Feed.objects.get(feed_link__contains='motherjones')
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 0)
management.call_command('refresh_feed', force=1, feed=feed.pk, single_threaded=True, daemonize=False)
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 10)
response = self.client.get(reverse('load-feeds'))
content = json.decode(response.content)
self.assertEquals(content['feeds'][str(feed.pk)]['nt'], 10)
self.client.post(reverse('mark-story-as-read'), {'story_id': stories[0].story_guid, 'feed_id': feed.pk})
response = self.client.get(reverse('refresh-feeds'))
content = json.decode(response.content)
self.assertEquals(content['feeds'][str(feed.pk)]['nt'], 9)
management.call_command('loaddata', 'motherjones2.json', verbosity=0)
management.call_command('refresh_feed', force=1, feed=feed.pk, single_threaded=True, daemonize=False)
stories = MStory.objects(story_feed_id=feed.pk)
self.assertEquals(stories.count(), 10)
url = reverse('load-single-feed', kwargs=dict(feed_id=feed.pk))
response = self.client.get(url)
# pprint([c['story_title'] for c in json.decode(response.content)])
feed = json.decode(response.content)
# Test: 1 changed char in title
self.assertEquals(len(feed['stories']), 6)
response = self.client.get(reverse('refresh-feeds'))
content = json.decode(response.content)
self.assertEquals(content['feeds'][str(feed['feed_id'])]['nt'], 9)
2012-03-06 16:11:27 -08:00
def test_load_feeds__brokelyn__invalid_xml(self):
self.client.login(username='conesus', password='test')
management.call_command('loaddata', 'brokelyn.json', verbosity=0)
management.call_command('refresh_feed', force=1, feed=6, single_threaded=True, daemonize=False)
url = reverse('load-single-feed', kwargs=dict(feed_id=6))
response = self.client.get(url)
# pprint([c['story_title'] for c in json.decode(response.content)])
feed = json.decode(response.content)
# Test: 1 changed char in title
2012-03-06 16:11:27 -08:00
self.assertEquals(len(feed['stories']), 6)
def test_all_feeds(self):
pass