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")
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)
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")], )
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")], )
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")], )
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"]))
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, )
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", )
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"]))
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", )
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", ], )
def test_documents_returns_empty_list(self): documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2") self.assertEqual(documents_bundle.documents, [])
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"] )
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")
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))
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")
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")
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)
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")
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")
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)
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")
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")
def test_supplement_is_empty_str(self): documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2") self.assertEqual(documents_bundle.supplement, "")
def test_number_is_empty_str(self): documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2") self.assertEqual(documents_bundle.number, "")
def test_publication_year_is_empty_str(self): documents_bundle = domain.DocumentsBundle(id="0034-8910-rsp-48-2") self.assertEqual(documents_bundle.publication_year, "")