def test_latest_article_version_list_only_unpublished(self): "ensure only the latest versions of the articles are returned when unpublished versions exist" self.assertEqual(self.total_version_count, models.ArticleVersion.objects.count()) unpublish_these = [ (3401, 3), (6250, 3), (8025, 2), (9571, 1) ] for msid, version in unpublish_these: self.unpublish(msid, version) total, results = logic.latest_article_version_list(only_published=False) # THIS IS THE IMPORTANT BIT total, results = logic.latest_unpublished_article_versions() self.assertEqual(len(results), self.total_art_count) self.assertEqual(len(results), models.Article.objects.count()) result_idx = {obj.article.manuscript_id: obj for obj in results} expected_result = [ (353, 1), (385, 1), (1328, 1), (2619, 1), (3401, 3), (3665, 1), (6250, 3), (7301, 1), (8025, 2), (9571, 1) ] for msid, v in expected_result: # throws a DoesNotExist if expected not in latest resultset self.assertEqual(result_idx[msid].version, v)
def test_latest_article_version_list_wrapper(self): unpublish_these = [ (9571, 1) ] for msid, version in unpublish_these: self.unpublish(msid, version) wrapped_total, wrapped_results = logic.latest_article_version_list(only_published=False) total, results = logic.latest_unpublished_article_versions() self.assertEqual(wrapped_total, total) self.assertItemsEqual(wrapped_results, results)
def test_latest_article_version_list_wrapper(self): unpublish_these = [(9571, 1)] for msid, version in unpublish_these: self.unpublish(msid, version) wrapper_total, wrapper_results = logic.latest_article_version_list( only_published=False) total, results = logic.latest_unpublished_article_versions() self.assertEqual(wrapper_total, total) # checks the items as well as the length # https://docs.python.org/3/library/unittest.html?highlight=assertcountequal#unittest.TestCase.assertCountEqual self.assertCountEqual(wrapper_results, results)
def test_latest_article_version_list_only_unpublished(self): "ensure only the latest versions of the articles are returned when unpublished versions exist" self.assertEqual(self.total_version_count, models.ArticleVersion.objects.count()) unpublish_these = [(3401, 3), (6250, 3), (8025, 2), (9571, 1)] for msid, version in unpublish_these: self.unpublish(msid, version) total, results = logic.latest_unpublished_article_versions() self.assertEqual(len(results), self.total_art_count) self.assertEqual(len(results), models.Article.objects.count()) result_idx = {obj.article.manuscript_id: obj for obj in results} expected_result = [(353, 1), (385, 1), (1328, 1), (2619, 1), (3401, 3), (3665, 1), (6250, 3), (7301, 1), (8025, 2), (9571, 1)] for msid, v in expected_result: # throws a DoesNotExist if expected not in latest resultset self.assertEqual(result_idx[msid].version, v)