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)