2010-10-23 13:06:28 -04:00
|
|
|
from utils import json_functions as json
|
2009-07-08 02:05:45 +00:00
|
|
|
from django.test.client import Client
|
2009-07-28 22:51:16 +00:00
|
|
|
from django.test import TestCase
|
2009-08-08 16:52:11 +00:00
|
|
|
from django.core import management
|
2010-08-21 13:57:39 -04:00
|
|
|
from apps.rss_feeds.models import Feed, MStory
|
2009-07-08 02:05:45 +00:00
|
|
|
|
2009-07-28 22:51:16 +00:00
|
|
|
class FeedTest(TestCase):
|
2009-08-08 16:52:11 +00:00
|
|
|
fixtures = ['rss_feeds.json']
|
2009-07-08 02:05:45 +00:00
|
|
|
|
|
|
|
def setUp(self):
|
|
|
|
self.client = Client()
|
|
|
|
|
2009-08-30 00:43:13 +00:00
|
|
|
def test_load_feeds__gawker(self):
|
2009-12-18 20:47:44 +00:00
|
|
|
self.client.login(username='conesus', password='test')
|
2009-08-30 00:43:13 +00:00
|
|
|
|
|
|
|
management.call_command('loaddata', 'gawker1.json', verbosity=0)
|
|
|
|
|
2010-07-07 18:40:10 -04:00
|
|
|
feed = Feed.objects.get(feed_link__contains='gawker')
|
2010-08-21 13:57:39 -04:00
|
|
|
stories = MStory.objects(story_feed_id=feed.pk)
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(stories.count(), 0)
|
|
|
|
|
2010-04-09 16:37:19 -04:00
|
|
|
management.call_command('refresh_feed', force=1, feed=1, single_threaded=True, daemonize=False)
|
2009-08-30 00:43:13 +00:00
|
|
|
|
2010-08-21 13:57:39 -04:00
|
|
|
stories = MStory.objects(story_feed_id=feed.pk)
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(stories.count(), 38)
|
2009-08-30 00:43:13 +00:00
|
|
|
|
2010-07-07 18:40:10 -04:00
|
|
|
management.call_command('loaddata', 'gawker2.json', verbosity=0)
|
|
|
|
management.call_command('refresh_feed', force=1, feed=1, single_threaded=True, daemonize=False)
|
2009-08-30 00:43:13 +00:00
|
|
|
|
|
|
|
# Test: 1 changed char in content
|
2010-08-21 13:57:39 -04:00
|
|
|
stories = MStory.objects(story_feed_id=feed.pk)
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(stories.count(), 38)
|
|
|
|
|
2011-04-20 09:35:59 -04:00
|
|
|
response = self.client.post('/reader/feed', { "feed_id": 1 })
|
2010-07-07 18:40:10 -04:00
|
|
|
feed = json.decode(response.content)
|
|
|
|
self.assertEquals(len(feed['stories']), 30)
|
2009-08-30 00:43:13 +00:00
|
|
|
|
|
|
|
def test_load_feeds__gothamist(self):
|
2009-12-18 20:47:44 +00:00
|
|
|
self.client.login(username='conesus', password='test')
|
2009-08-08 16:52:11 +00:00
|
|
|
|
2009-12-18 20:47:44 +00:00
|
|
|
management.call_command('loaddata', 'gothamist_aug_2009_1.json', verbosity=0)
|
2010-07-07 18:40:10 -04:00
|
|
|
feed = Feed.objects.get(feed_link__contains='gothamist')
|
2010-08-21 13:57:39 -04:00
|
|
|
stories = MStory.objects(story_feed_id=feed.pk)
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(stories.count(), 0)
|
|
|
|
|
2010-04-09 18:30:25 -04:00
|
|
|
management.call_command('refresh_feed', force=1, feed=4, single_threaded=True, daemonize=False)
|
|
|
|
|
2010-08-21 13:57:39 -04:00
|
|
|
stories = MStory.objects(story_feed_id=feed.pk)
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(stories.count(), 42)
|
|
|
|
|
2011-04-20 09:35:59 -04:00
|
|
|
response = self.client.post('/reader/feed', { "feed_id": 4 })
|
2010-07-07 18:40:10 -04:00
|
|
|
content = json.decode(response.content)
|
|
|
|
self.assertEquals(len(content['stories']), 30)
|
2009-08-08 16:52:11 +00:00
|
|
|
|
2009-12-18 20:47:44 +00:00
|
|
|
management.call_command('loaddata', 'gothamist_aug_2009_2.json', verbosity=0)
|
2010-04-09 18:30:25 -04:00
|
|
|
management.call_command('refresh_feed', force=1, feed=4, single_threaded=True, daemonize=False)
|
|
|
|
|
2010-08-21 13:57:39 -04:00
|
|
|
stories = MStory.objects(story_feed_id=feed.pk)
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(stories.count(), 42)
|
|
|
|
|
2011-04-20 09:35:59 -04:00
|
|
|
response = self.client.get('/reader/feed', { "feed_id": 4 })
|
2010-04-09 18:30:25 -04:00
|
|
|
# print [c['story_title'] for c in json.decode(response.content)]
|
2010-07-07 18:40:10 -04:00
|
|
|
content = json.decode(response.content)
|
2009-08-30 00:43:13 +00:00
|
|
|
# Test: 1 changed char in title
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(len(content['stories']), 30)
|
2009-09-07 01:56:52 +00:00
|
|
|
|
|
|
|
def test_load_feeds__slashdot(self):
|
2009-12-18 20:47:44 +00:00
|
|
|
self.client.login(username='conesus', password='test')
|
2009-09-07 01:56:52 +00:00
|
|
|
|
|
|
|
management.call_command('loaddata', 'slashdot1.json', verbosity=0)
|
2010-07-07 18:40:10 -04:00
|
|
|
|
|
|
|
feed = Feed.objects.get(feed_link__contains='slashdot')
|
2010-08-21 13:57:39 -04:00
|
|
|
stories = MStory.objects(story_feed_id=feed.pk)
|
2010-07-07 18:40:10 -04:00
|
|
|
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)
|
2009-09-07 01:56:52 +00:00
|
|
|
|
2010-08-21 13:57:39 -04:00
|
|
|
stories = MStory.objects(story_feed_id=feed.pk)
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(stories.count(), 38)
|
|
|
|
|
2009-09-07 01:56:52 +00:00
|
|
|
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)
|
2009-09-07 01:56:52 +00:00
|
|
|
|
2010-08-21 13:57:39 -04:00
|
|
|
stories = MStory.objects(story_feed_id=feed.pk)
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(stories.count(), 38)
|
|
|
|
|
2011-04-20 09:35:59 -04:00
|
|
|
response = self.client.post('/reader/feed', { "feed_id": 5 })
|
2009-09-07 01:56:52 +00:00
|
|
|
|
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)
|
2009-09-07 01:56:52 +00:00
|
|
|
|
|
|
|
# Test: 1 changed char in title
|
2010-07-07 18:40:10 -04:00
|
|
|
self.assertEquals(len(feed['stories']), 30)
|
|
|
|
|
|
|
|
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)
|
|
|
|
|
2011-04-20 09:35:59 -04:00
|
|
|
response = self.client.post('/reader/feed', { "feed_id": 6 })
|
2010-07-07 18:40:10 -04:00
|
|
|
|
|
|
|
# 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']), 10)
|