Fix tests

This commit is contained in:
Sonny Bakker 2020-09-21 23:15:04 +02:00
parent 0411d76596
commit b653c210f1
2 changed files with 24 additions and 42 deletions

View file

@ -42,10 +42,10 @@ class FeedCollectorTestCase(TestCase):
def test_simple_batch(self): def test_simple_batch(self):
self.mocked_parse.return_value = multiple_mock self.mocked_parse.return_value = multiple_mock
rule = FeedFactory()
rule = FeedFactory()
collector = FeedCollector() collector = FeedCollector()
collector.collect() collector.collect(rules=[rule])
rule.refresh_from_db() rule.refresh_from_db()
@ -57,10 +57,11 @@ class FeedCollectorTestCase(TestCase):
def test_emtpy_batch(self): def test_emtpy_batch(self):
self.mocked_fetch.return_value = Mock() self.mocked_fetch.return_value = Mock()
self.mocked_parse.return_value = empty_mock self.mocked_parse.return_value = empty_mock
rule = FeedFactory() rule = FeedFactory()
collector = FeedCollector() collector = FeedCollector()
collector.collect() collector.collect(rules=[rule])
rule.refresh_from_db() rule.refresh_from_db()
@ -71,10 +72,10 @@ class FeedCollectorTestCase(TestCase):
def test_not_found(self): def test_not_found(self):
self.mocked_fetch.side_effect = StreamNotFoundException self.mocked_fetch.side_effect = StreamNotFoundException
rule = FeedFactory()
rule = FeedFactory()
collector = FeedCollector() collector = FeedCollector()
collector.collect() collector.collect(rules=[rule])
rule.refresh_from_db() rule.refresh_from_db()
@ -84,11 +85,12 @@ class FeedCollectorTestCase(TestCase):
def test_denied(self): def test_denied(self):
self.mocked_fetch.side_effect = StreamDeniedException self.mocked_fetch.side_effect = StreamDeniedException
old_run = timezone.make_aware(datetime(2019, 10, 30, 12, 30)) old_run = timezone.make_aware(datetime(2019, 10, 30, 12, 30))
rule = FeedFactory(last_run=old_run) rule = FeedFactory(last_run=old_run)
collector = FeedCollector() collector = FeedCollector()
collector.collect() collector.collect(rules=[rule])
rule.refresh_from_db() rule.refresh_from_db()
@ -99,11 +101,12 @@ class FeedCollectorTestCase(TestCase):
def test_forbidden(self): def test_forbidden(self):
self.mocked_fetch.side_effect = StreamForbiddenException self.mocked_fetch.side_effect = StreamForbiddenException
old_run = pytz.utc.localize(datetime(2019, 10, 30, 12, 30)) old_run = pytz.utc.localize(datetime(2019, 10, 30, 12, 30))
rule = FeedFactory(last_run=old_run) rule = FeedFactory(last_run=old_run)
collector = FeedCollector() collector = FeedCollector()
collector.collect() collector.collect(rules=[rule])
rule.refresh_from_db() rule.refresh_from_db()
@ -114,13 +117,14 @@ class FeedCollectorTestCase(TestCase):
def test_timed_out(self): def test_timed_out(self):
self.mocked_fetch.side_effect = StreamTimeOutException self.mocked_fetch.side_effect = StreamTimeOutException
last_run = timezone.make_aware( last_run = timezone.make_aware(
datetime.combine(date=date(2019, 10, 30), time=time(12, 30)) datetime.combine(date=date(2019, 10, 30), time=time(12, 30))
) )
rule = FeedFactory(last_run=last_run) rule = FeedFactory(last_run=last_run)
collector = FeedCollector() collector = FeedCollector()
collector.collect() collector.collect(rules=[rule])
rule.refresh_from_db() rule.refresh_from_db()
@ -133,6 +137,7 @@ class FeedCollectorTestCase(TestCase):
def test_duplicates(self): def test_duplicates(self):
self.mocked_parse.return_value = duplicate_mock self.mocked_parse.return_value = duplicate_mock
rule = FeedFactory() rule = FeedFactory()
aware_datetime = build_publication_date( aware_datetime = build_publication_date(
@ -240,26 +245,3 @@ class FeedCollectorTestCase(TestCase):
self.assertEquals( self.assertEquals(
third_post.title, "Birmingham head teacher threatened over LGBT lessons" third_post.title, "Birmingham head teacher threatened over LGBT lessons"
) )
def test_disabled_rules(self):
old_run = pytz.utc.localize(datetime(2019, 10, 28, 15))
rules = (
FeedFactory(enabled=False, last_run=old_run),
FeedFactory(enabled=True, last_run=old_run),
)
self.mocked_parse.return_value = multiple_mock
collector = FeedCollector()
collector.collect()
for rule in rules:
rule.refresh_from_db()
self.assertEquals(Post.objects.count(), 3)
self.assertEquals(rules[1].succeeded, True)
self.assertEquals(rules[1].last_run, timezone.now())
self.assertEquals(rules[1].error, None)
self.assertEquals(rules[0].last_run, old_run)
self.assertEquals(rules[0].succeeded, False)

View file

@ -8,7 +8,7 @@ import pytz
from ftfy import fix_text from ftfy import fix_text
from newsreader.news.collection.tests.factories import TwitterTimeLineFactory from newsreader.news.collection.tests.factories import TwitterTimelineFactory
from newsreader.news.collection.tests.twitter.builder.mocks import ( from newsreader.news.collection.tests.twitter.builder.mocks import (
gif_mock, gif_mock,
image_mock, image_mock,
@ -31,7 +31,7 @@ class TwitterBuilderTestCase(TestCase):
def test_simple_post(self): def test_simple_post(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder(simple_mock, mock_stream) as builder: with builder(simple_mock, mock_stream) as builder:
@ -91,7 +91,7 @@ class TwitterBuilderTestCase(TestCase):
def test_images_in_post(self): def test_images_in_post(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder(image_mock, mock_stream) as builder: with builder(image_mock, mock_stream) as builder:
@ -134,7 +134,7 @@ class TwitterBuilderTestCase(TestCase):
def test_videos_in_post(self): def test_videos_in_post(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder(video_mock, mock_stream) as builder: with builder(video_mock, mock_stream) as builder:
@ -190,7 +190,7 @@ class TwitterBuilderTestCase(TestCase):
def test_video_without_bitrate(self): def test_video_without_bitrate(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder(video_without_bitrate_mock, mock_stream) as builder: with builder(video_without_bitrate_mock, mock_stream) as builder:
@ -212,7 +212,7 @@ class TwitterBuilderTestCase(TestCase):
def test_GIFs_in_post(self): def test_GIFs_in_post(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder(gif_mock, mock_stream) as builder: with builder(gif_mock, mock_stream) as builder:
@ -241,7 +241,7 @@ class TwitterBuilderTestCase(TestCase):
def test_retweet_post(self): def test_retweet_post(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder(retweet_mock, mock_stream) as builder: with builder(retweet_mock, mock_stream) as builder:
@ -278,7 +278,7 @@ class TwitterBuilderTestCase(TestCase):
def test_quoted_post(self): def test_quoted_post(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder(quoted_mock, mock_stream) as builder: with builder(quoted_mock, mock_stream) as builder:
@ -312,7 +312,7 @@ class TwitterBuilderTestCase(TestCase):
def test_empty_data(self): def test_empty_data(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder([], mock_stream) as builder: with builder([], mock_stream) as builder:
@ -324,7 +324,7 @@ class TwitterBuilderTestCase(TestCase):
def test_html_sanitizing(self): def test_html_sanitizing(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder(unsanitized_mock, mock_stream) as builder: with builder(unsanitized_mock, mock_stream) as builder:
@ -364,7 +364,7 @@ class TwitterBuilderTestCase(TestCase):
def test_urlize_on_urls(self): def test_urlize_on_urls(self):
builder = TwitterBuilder builder = TwitterBuilder
profile = TwitterTimeLineFactory(screen_name="RobertsSpaceInd") profile = TwitterTimelineFactory(screen_name="RobertsSpaceInd")
mock_stream = Mock(rule=profile) mock_stream = Mock(rule=profile)
with builder(simple_mock, mock_stream) as builder: with builder(simple_mock, mock_stream) as builder: