コード例 #1
0
    def test__update_feed__updates_feed__if_relation_exists(self) -> None:
        title = 'test2'
        data = FeedParserDict({'feed': {'title': title}})

        FeedUpdater._update_feed(self.feed_subscription, data)
        self.feed.refresh_from_db()

        self.assertEqual(self.feed.title, title)
コード例 #2
0
    def test__update_feed__creates_feed__if_relation_is_missing(self) -> None:
        self.feed.delete()
        title = 'test2'
        data = FeedParserDict({'feed': {'title': title}})

        FeedUpdater._update_feed(self.feed_subscription, data)

        self.assertEqual(self.feed_subscription.feed.title, title)
コード例 #3
0
    def test__update__fail__on_invalid_rss(self) -> None:
        feed_subscription = FeedSubscription.objects.create(
            owner=self.user, url='https://www.google.com/')

        with self.assertRaises(FeedUpdaterInvalidRSSError):
            FeedUpdater.update(feed_subscription.id)

        feed_subscription.refresh_from_db()
        self.assertEqual(feed_subscription.retries, 1)
コード例 #4
0
    def test__update_categories__replace_old_categories_with_new(self) -> None:
        FeedCategory.objects.create(feed=self.feed, keyword='old_keyword')
        new_keyword = 'keyword'
        feed_data = FeedParserDict({'feed': {
            'tags': [{
                'term': 'keyword',
            }]
        }})

        FeedUpdater._update_categories(self.feed, feed_data)

        category_count = FeedCategory.objects.filter(feed=self.feed).count()
        self.assertEqual(category_count, 1)
        feed_category = FeedCategory.objects.filter(feed=self.feed).first()
        self.assertEqual(feed_category.keyword, new_keyword)
コード例 #5
0
    def test__update__save_and_return_data__on_valid_rss(self) -> None:
        feed_subscription = FeedSubscription.objects.create(
            owner=self.user, url='http://www.nu.nl/rss/Algemeen')

        feed, feed_data = FeedUpdater.update(feed_subscription.id)

        self.assertIsNotNone(feed.id)
        self.assertTrue(bool(feed_data))
コード例 #6
0
ファイル: tasks.py プロジェクト: stalavitski/sendcloud-test
def update_feed(feed_subscription_id: int) -> None:
    """
    Update Feed based on FeedSubscription.

    :param feed_subscription_id: FeedSubscription.id for related Feed.
    """
    try:
        feed, feed_items_data = FeedUpdater.update(feed_subscription_id)
    except Exception as e:
        logger.error(e)
        return

    for feed_item_data in feed_items_data:
        update_feed_item.delay(feed.id, feed_item_data)
コード例 #7
0
 def test__get_feed_data__dont_raise_exception__on_valid_url(self) -> None:
     try:
         FeedUpdater._get_feed_data('http://www.nu.nl/rss/Algemeen')
     except FeedUpdaterInvalidRSSError:
         self.fail(
             'clean() raised FeedUpdaterInvalidRSSError unexpectedly.')
コード例 #8
0
 def test__get_feed_data__raise_exception__on_not_rss_url(self) -> None:
     with self.assertRaises(FeedUpdaterInvalidRSSError):
         FeedUpdater._get_feed_data('https://www.google.com/')
コード例 #9
0
 def test__get_feed_data__raise_exception__on_invalid_url(self) -> None:
     with self.assertRaises(FeedUpdaterInvalidRSSError):
         FeedUpdater._get_feed_data('invalid_url')
コード例 #10
0
 def test__get_feed_subscription__return__if_exists(self) -> None:
     feed_subscription = FeedUpdater._get_feed_subscription(
         self.feed_subscription.id)
     self.assertEqual(feed_subscription.id, self.feed_subscription.id)
コード例 #11
0
 def test__get_feed_subscription__raise__if_not_exists(self) -> None:
     with self.assertRaises(FeedUpdaterDoesntExistError):
         FeedUpdater._get_feed_subscription(0)