def test_article_iterator_with_multiple_categories_stops_at_limit(self): category_callback = Mock() callbacks = ArticleIteratorCallbacks(category_callback=category_callback) iterator = ArticleIterator(callbacks) iterator.limit = 10 articles = [Mock()] * 10 category = Mock() category.articles.return_value = articles iterator.categories = [category, category] iterator.iterate_categories() category_callback.assert_called_once_with(category=category, counter=10, article_iterator=iterator)
def test_category_limit_is_respected_together_with_limit(self): category_callback = Mock() article_callback = Mock() callbacks = ArticleIteratorCallbacks(category_callback=category_callback, article_callback=article_callback) iterator = ArticleIterator(callbacks) iterator.limit = 5 iterator.articles_per_category_limit = 3 articles = [Mock()] * 10 category = Mock() category.articles.return_value = articles iterator.categories = [category, category, category, category] iterator.iterate_categories() self.assertEqual(article_callback.call_count, 5) self.assertEqual(category_callback.call_count, 2)