Remove catching KeyError from FeedBuilder

This builder is programmed defensively
This commit is contained in:
Sonny Bakker 2020-10-13 22:16:31 +02:00
parent 062cb9f012
commit cffcd954d7
2 changed files with 2 additions and 26 deletions

View file

@ -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
instances.append(post)
self.instances = duplicate_handler.check(instances)

View file

@ -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,))