コード例 #1
0
    def test_update_bundle_without_rolledback_document(self):
        fake_bundle_manifest = {
            "_id" : "0102-6720-2020-v1-n2",
            "id" : "0102-6720-2020-v1-n2",
            "created" : "2020-08-09T06:49:55.118012Z",
            "updated" : "2020-08-09T06:49:55.118245Z",
            "items" : [
                {"id": "document-id", "order" : "00123"},
                {"id": "document-2", "order" : "00321"},
            ],
            "metadata" : {}
        }
        fake_bundle = ds_domain.DocumentsBundle(manifest=fake_bundle_manifest)
        self.session.documents_bundles.fetch.return_value = fake_bundle
        doc_info = {
            "pid_v3": "document-id",
            "eissn": "2317-6326",
            "pissn": "0102-6720",
            "issn": "0102-6720",
            "pid": "document-pid-v2",
            "year": "2020",
            "volume": "1",
            "number": "2",
        }

        _result = rollback.rollback_bundle(doc_info, self.session, self.fake_journals)
        self.session.documents_bundles.update.assert_called_once_with(fake_bundle)
        self.assertNotIn(
            {"id": "document-id", "order" : "00123"}, fake_bundle.documents
        )
        self.assertEqual(_result, "0102-6720-2020-v1-n2")
コード例 #2
0
    def test_error_if_no_document_in_bundle(self):
        fake_bundle_manifest = {
            "_id" : "0102-6720-2020-v1-n2",
            "id" : "0102-6720-2020-v1-n2",
            "created" : "2020-08-09T06:49:55.118012Z",
            "updated" : "2020-08-09T06:49:55.118245Z",
            "items" : [
                {"id": "document-2", "order" : "00321"},
            ],
            "metadata" : {}
        }
        fake_bundle = ds_domain.DocumentsBundle(manifest=fake_bundle_manifest)
        self.session.documents_bundles.fetch.return_value = fake_bundle
        doc_info = {
            "pid_v3": "document-id",
            "eissn": "2317-6326",
            "pissn": "0102-6720",
            "issn": "0102-6720",
            "pid": "document-pid-v2",
            "year": "2020",
            "volume": "1",
            "number": "2",
        }

        _result = rollback.rollback_bundle(doc_info, self.session, self.fake_journals)
        self.assertIsNone(_result)
コード例 #3
0
 def test_set_volume(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.volume = "25"
     self.assertEqual(documents_bundle.volume, "25")
     self.assertEqual(
         documents_bundle.manifest["metadata"]["volume"],
         [("2018-08-05T22:33:49.795151Z", "25")],
     )
コード例 #4
0
 def test_set_supplement(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.supplement = "3"
     self.assertEqual(documents_bundle.supplement, "3")
     self.assertEqual(
         documents_bundle.manifest["metadata"]["supplement"],
         [("2018-08-05T22:33:49.795151Z", "3")],
     )
コード例 #5
0
 def test_set_publication_year(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.publication_year = "2018"
     self.assertEqual(documents_bundle.publication_year, "2018")
     self.assertEqual(
         documents_bundle.manifest["metadata"]["publication_year"],
         [("2018-08-05T22:33:49.795151Z", "2018")],
     )
コード例 #6
0
 def test_insert_document(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0275")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0276")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0277")
     documents_bundle.insert_document(1, "/documents/0034-8910-rsp-48-2-0271")
     self.assertEqual(
         "/documents/0034-8910-rsp-48-2-0271", documents_bundle.manifest["items"][1]
     )
     self.assertEqual(4, len(documents_bundle.manifest["items"]))
コード例 #7
0
 def test_set_publication_year_validates_four_digits_year(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     self._assert_raises_with_message(
         ValueError,
         "cannot set publication_year with value " '"18": the value is not valid',
         setattr,
         documents_bundle,
         "publication_year",
         18,
     )
コード例 #8
0
 def test_add_document_raises_exception_if_item_already_exists(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0275")
     self._assert_raises_with_message(
         exceptions.AlreadyExists,
         'cannot add item "/documents/0034-8910-rsp-48-2-0275" in bundle: '
         "the item already exists",
         documents_bundle.add_document,
         "/documents/0034-8910-rsp-48-2-0275",
     )
コード例 #9
0
 def test_remove_document(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0275")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0276")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0277")
     documents_bundle.remove_document("/documents/0034-8910-rsp-48-2-0275")
     self.assertNotIn(
         "/documents/0034-8910-rsp-48-2-0275", documents_bundle.manifest["items"]
     )
     self.assertEqual(2, len(documents_bundle.manifest["items"]))
コード例 #10
0
 def test_remove_document_raises_exception_if_item_does_not_exist(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0276")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0277")
     self._assert_raises_with_message(
         exceptions.DoesNotExist,
         'cannot remove item "/documents/0034-8910-rsp-48-2-0275" from bundle: '
         "the item does not exist",
         documents_bundle.remove_document,
         "/documents/0034-8910-rsp-48-2-0275",
     )
コード例 #11
0
 def test_documents_returns_added_documents_list(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0275")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0276")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0277")
     self.assertEqual(
         documents_bundle.documents,
         [
             "/documents/0034-8910-rsp-48-2-0275",
             "/documents/0034-8910-rsp-48-2-0276",
             "/documents/0034-8910-rsp-48-2-0277",
         ],
     )
コード例 #12
0
 def test_documents_returns_empty_list(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     self.assertEqual(documents_bundle.documents, [])
コード例 #13
0
 def test_add_document(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.add_document("/documents/0034-8910-rsp-48-2-0275")
     self.assertIn(
         "/documents/0034-8910-rsp-48-2-0275", documents_bundle.manifest["items"]
     )
コード例 #14
0
 def test_set_supplement_convert_to_str(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.supplement = 3
     self.assertEqual(documents_bundle.supplement, "3")
コード例 #15
0
 def test_manifest_is_generated_on_init(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     self.assertTrue(isinstance(documents_bundle.manifest, dict))
コード例 #16
0
 def test_id_returns_id(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     self.assertEqual(documents_bundle.id(), "0034-8910-rsp-48-2")
コード例 #17
0
 def test_set_number_convert_to_str(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.number = 3
     self.assertEqual(documents_bundle.number, "3")
コード例 #18
0
 def test_manifest_as_arg_on_init(self):
     existing_manifest = new_bundle("0034-8910-rsp-48-2")
     documents_bundle = domain.DocumentsBundle(manifest=existing_manifest)
     self.assertEqual(existing_manifest, documents_bundle.manifest)
コード例 #19
0
 def test_set_volume_content_is_not_validated(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.volume = "25.A"
     self.assertEqual(documents_bundle.volume, "25.A")
コード例 #20
0
 def test_set_volume_convert_to_str(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.volume = 25
     self.assertEqual(documents_bundle.volume, "25")
コード例 #21
0
 def test_manifest_schema_is_not_validated_on_init(self):
     existing_manifest = {"versions": []}
     documents_bundle = domain.DocumentsBundle(manifest=existing_manifest)
     self.assertEqual(existing_manifest, documents_bundle.manifest)
コード例 #22
0
 def test_set_publication_year_convert_to_str(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.publication_year = 2018
     self.assertEqual(documents_bundle.publication_year, "2018")
コード例 #23
0
 def test_set_number_content_is_not_validated(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     documents_bundle.number = "3.A"
     self.assertEqual(documents_bundle.number, "3.A")
コード例 #24
0
 def test_supplement_is_empty_str(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     self.assertEqual(documents_bundle.supplement, "")
コード例 #25
0
 def test_number_is_empty_str(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     self.assertEqual(documents_bundle.number, "")
コード例 #26
0
 def test_publication_year_is_empty_str(self):
     documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2")
     self.assertEqual(documents_bundle.publication_year, "")