def test_order_attribute_returns_order(self): front = load_json_fixture( "kernel-document-front-s1518-8787.2019053000621_sem_pid_v2.json") article = ArticleFactory(document_id=MagicMock(), data=front, issue_id=MagicMock(), document_order="1234", document_xml_url=MagicMock()) self.assertEqual(1234, article.order)
def test_order_attribute_returns_zero_because_pid_v2_is_None_and_order_is_None( self): front = load_json_fixture( "kernel-document-front-s1518-8787.2019053000621_sem_pid_v2.json") with self.assertRaises(InvalidOrderValueError): ArticleFactory(document_id="67TH7T7CyPPmgtVrGXhWXVs", data=front, issue_id="issue-1", document_order=None, document_xml_url="")
def test_order_attribute_returns_last_five_digits_of_pid_v2_if_document_order_is_invalid( self): for order in ("1bla", None): with self.subTest(order=order): article = ArticleFactory(document_id="67TH7T7CyPPmgtVrGXhWXVs", data=self.document_front, issue_id="issue-1", document_order=order, document_xml_url="") self.assertEqual(621, article.order)
def test_sets_aop_url_segs(self, MockIssueObjects, MockArticleObjects): MockArticle = MagicMock(spec=models.Article, aop_url_segs=None, url_segment="10.151/S1518-8787.2019053000621") MockArticle.issue = self.issue MockArticleObjects.get.return_value = MockArticle self.document = ArticleFactory("67TH7T7CyPPmgtVrGXhWXVs", self.document_front, "issue-1", "1", "") self.assertIsNotNone(self.document.aop_url_segs) self.assertIsInstance(self.document.aop_url_segs, models.AOPUrlSegments) self.assertEqual(self.document.aop_url_segs.url_seg_article, "10.151/S1518-8787.2019053000621") self.assertEqual(self.document.aop_url_segs.url_seg_issue, "2019.nahead")
def setUp(self): self.article_objects = patch( "operations.sync_kernel_to_website_operations.models.Article.objects" ) self.issue_objects = patch( "operations.sync_kernel_to_website_operations.models.Issue.objects" ) ArticleObjectsMock = self.article_objects.start() self.issue_objects.start() ArticleObjectsMock.get.side_effect = models.Article.DoesNotExist self.document_front = load_json_fixture( "kernel-document-front-s1518-8787.2019053000621.json") self.document = ArticleFactory("67TH7T7CyPPmgtVrGXhWXVs", self.document_front, "issue-1", 621, "")
def test_has_publication_date_attribute_with_just_month_year(self): document_dict = { "pub_date": [{ "text": ["01 2019"], "pub_type": ["epub"], "pub_format": [], "date_type": [], "day": ["31"], "month": ["01"], "year": ["2019"], "season": [] }] } document = ArticleFactory("67TH7T7CyPPmgtVrGXhWXVs", document_dict, "issue-1", 621, "") self.assertTrue(hasattr(document, "publication_date")) self.assertEqual("2019-01", document.publication_date)