def testFeed(self): self.setMockUser() resp = self.app.get('/api/feeds', headers=self.authHeaders()) json_resp = json.loads(resp.data) assert len(json_resp['data']) == 0 self.set_rss_response("http://example.com/rss", content=self.buildRSS('test', items=10), status_code=200) test_feed_url = 'http://example.com/rss' # Should fail validation resp = self.app.post('/api/feeds', data=dict( feed_url=test_feed_url, max_stories_per_period=0, schedule_period=5, ), headers=self.authHeaders()) assert 0 == Feed.query().count() resp = self.app.post('/api/feeds', data=dict( feed_url=test_feed_url, include_summary='true', max_stories_per_period=1, schedule_period=5, ), headers=self.authHeaders()) json_resp = json.loads(resp.data) assert json_resp['data']['feed_url'] == test_feed_url assert 10 == Entry.query(Entry.published == True, Entry.overflow == True).count() feed_id = json_resp['data']['feed_id'] resp = self.app.get('/api/feeds/%s' % feed_id, headers=self.authHeaders()) json_resp = json.loads(resp.data) assert len(json_resp['data']['entries']) == 10 assert json_resp['data']['entries'][0]['guid'] == "http://example.com/buster/test_0" # Shouldn't be able to create two feeds for the same user resp = self.app.post('/api/feeds', data=dict( feed_url=test_feed_url, include_summary='true', max_stories_per_period=1, schedule_period=5, ), headers=self.authHeaders()) json_resp = json.loads(resp.data) assert 1 == Feed.query().count() resp = self.app.get('/api/feeds', headers=self.authHeaders()) json_resp = json.loads(resp.data) assert len(json_resp['data']) == 1 self.set_rss_response("http://example.com/rss", content=self.buildRSS('test2'), status_code=200) feed = Feed.query().get() Entry.update_for_feed(feed) assert 11 == Entry.query().count()