From cffcd954d7a58f83b9cd4523fff26e03cc25542b Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Tue, 13 Oct 2020 22:16:31 +0200 Subject: [PATCH] Remove catching KeyError from FeedBuilder This builder is programmed defensively --- src/newsreader/news/collection/feed.py | 7 +------ .../collection/tests/feed/builder/tests.py | 21 +------------------ 2 files changed, 2 insertions(+), 26 deletions(-) diff --git a/src/newsreader/news/collection/feed.py b/src/newsreader/news/collection/feed.py index f9bf294..379f18e 100644 --- a/src/newsreader/news/collection/feed.py +++ b/src/newsreader/news/collection/feed.py @@ -45,12 +45,7 @@ class FeedBuilder(PostBuilder): entries = self.payload.get("entries", []) for entry in entries: - try: - post = self.build_post(entry) - except KeyError: - logger.exception(f"Failed building post") - continue - + post = self.build_post(entry) instances.append(post) self.instances = duplicate_handler.check(instances) diff --git a/src/newsreader/news/collection/tests/feed/builder/tests.py b/src/newsreader/news/collection/tests/feed/builder/tests.py index 9672186..7f4edf0 100644 --- a/src/newsreader/news/collection/tests/feed/builder/tests.py +++ b/src/newsreader/news/collection/tests/feed/builder/tests.py @@ -1,6 +1,5 @@ from datetime import datetime -from unittest.mock import Mock, patch -from uuid import uuid4 +from unittest.mock import Mock from django.test import TestCase from django.utils import timezone @@ -390,21 +389,3 @@ class FeedBuilderTestCase(TestCase): self.assertEqual(Post.objects.count(), 1) self.assertEqual(post.body, "Yippie\n Ya\n Yee") - - @patch("newsreader.news.collection.feed.FeedBuilder.build_post") - def test_post_key_error(self, mocked_build_post): - rule = FeedFactory() - mock_stream = Mock(rule=rule) - - identifier = str(uuid4()) - build_post = FeedPostFactory.build(rule=rule, remote_identifier=identifier) - - mocked_build_post.side_effect = (KeyError, build_post) - - with FeedBuilder({"entries": [{}, {}]}, mock_stream) as builder: - builder.build() - builder.save() - - posts = Post.objects.values_list("remote_identifier", flat=True) - - self.assertCountEqual(posts, (identifier,))