From f4adb9635aad8b28fd595fe2156cc758ee4551f4 Mon Sep 17 00:00:00 2001 From: sonny Date: Sun, 10 May 2020 23:04:57 +0200 Subject: [PATCH] Skip disabled rules --- src/newsreader/news/collection/base.py | 2 +- .../collection/tests/feed/collector/tests.py | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/newsreader/news/collection/base.py b/src/newsreader/news/collection/base.py index 519f4f8..7fcefff 100644 --- a/src/newsreader/news/collection/base.py +++ b/src/newsreader/news/collection/base.py @@ -23,7 +23,7 @@ class Client: stream = Stream def __init__(self, rules=None): - self.rules = rules if rules else CollectionRule.objects.all() + self.rules = rules if rules else CollectionRule.objects.filter(enabled=True) def __enter__(self): for rule in self.rules: diff --git a/src/newsreader/news/collection/tests/feed/collector/tests.py b/src/newsreader/news/collection/tests/feed/collector/tests.py index e9ae98a..88f2875 100644 --- a/src/newsreader/news/collection/tests/feed/collector/tests.py +++ b/src/newsreader/news/collection/tests/feed/collector/tests.py @@ -245,3 +245,26 @@ class FeedCollectorTestCase(TestCase): self.assertEquals( third_post.title, "Birmingham head teacher threatened over LGBT lessons" ) + + @freeze_time("2019-02-22 12:30:00") + def test_disabled_rules(self): + rules = ( + CollectionRuleFactory(enabled=False), + CollectionRuleFactory(enabled=True), + ) + + 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_suceeded, timezone.now()) + self.assertEquals(rules[1].error, None) + + self.assertEquals(rules[0].last_suceeded, None) + self.assertEquals(rules[0].succeeded, False)