def _execute_delete(self, delete_func: callable, filter: dict) -> None: try: _result = delete_func(filter) except pymongo.errors.PyMongoError as exc: raise ds_exceptions.DoesNotExist( f'Could not remove data with "{filter}": {exc}') from None else: if not _result.deleted_count > 0: raise ds_exceptions.DoesNotExist( f'Could not remove data with "{filter}": ' f'delete command returned "{_result.deleted_count}"')
def test_should_raise_exception_if_journal_does_not_exists(self): self.request.matchdict = {"journal_id": "random-journal-id"} self.request.validated = {"aop": "001"} self.request.services["set_ahead_of_print_bundle_to_journal"] = Mock( side_effect=exceptions.DoesNotExist()) self.assertIsInstance(restfulapi.patch_journal_aop(self.request), HTTPNotFound)
def test_should_return_404_if_journal_not_found(self): self.request.matchdict["journal_id"] = "example-journal-id" self.request.validated = [{"id": "issue-1", "ns": []}] MockUpdateIssuesInJournal = Mock( side_effect=exceptions.DoesNotExist("Does Not Exist")) self.request.services[ "update_issues_in_journal"] = MockUpdateIssuesInJournal response = restfulapi.put_journal_issues(self.request) self.assertIsInstance(response, HTTPNotFound)
def test_should_return_404_if_bundle_not_found(self): self.request.matchdict["bundle_id"] = "example-bundle-id" self.request.validated = [{"id": "doc-1"}] MockUpdateDocumentsInIssues = Mock( side_effect=exceptions.DoesNotExist("Does Not Exist")) self.request.services[ "update_documents_in_documents_bundle"] = MockUpdateDocumentsInIssues response = restfulapi.put_bundles_documents(self.request) self.assertIsInstance(response, HTTPNotFound)
def test_fetch_documents_bundle_raises_not_found_if_bundle_does_not_exist(self): self.request.matchdict["bundle_id"] = "0034-8910-rsp-48-2" MockFetchDocumentsBundle = Mock( side_effect=exceptions.DoesNotExist("Does Not Exist") ) self.request.services["fetch_documents_bundle"] = MockFetchDocumentsBundle response = restfulapi.fetch_documents_bundle(self.request) self.assertIsInstance(response, HTTPNotFound) self.assertEqual(response.message, "Does Not Exist")
def test_delete_journal_issues_returns_404_if_no_journal_nor_issue_found( self): self.request.matchdict["journal_id"] = "1678-4596-cr" self.request.validated = {"issue": "1678-4596-cr-25-3"} MockRemoveIssueFromJournal = Mock( side_effect=exceptions.DoesNotExist("Does Not Exist")) self.request.services[ "remove_issue_from_journal"] = MockRemoveIssueFromJournal response = restfulapi.delete_journal_issues(self.request) self.assertIsInstance(response, HTTPNotFound)
def test_patch_documents_bundle_return_404_if_no_bundle_found(self): self.request.matchdict["bundle_id"] = "0034-8910-rsp-48-2" self.request.validated = apptesting.documents_bundle_registry_data_fixture( ) MockUpdateDocumentsBundle = Mock( side_effect=exceptions.DoesNotExist("Does Not Exist")) self.request.services[ "update_documents_bundle_metadata"] = MockUpdateDocumentsBundle response = restfulapi.patch_documents_bundle(self.request) self.assertIsInstance(response, HTTPNotFound)
def test_returns_HTTPNotFound_when_document_doesnt_exist(self): request = make_request() request.matchdict = {"document_id": "my-testing-doc"} request.validated = { "filename": "0034-8910-rsp-48-2-0347.xml", "data_url": "https://files.scielo.br/aksjhdf/0034-8910-rsp-48-2-0347.pdf", "mimetype": "application/pdf", "lang": "pt", "size_bytes": 23456, } request.services["register_rendition_version"] = Mock( side_effect=exceptions.DoesNotExist()) response = restfulapi.register_rendition_version(request) self.assertIsInstance(response, HTTPNotFound)
def test_patch_journal_issues_returns_404_if_no_journal_found(self): self.request.matchdict["journal_id"] = "1678-4596-cr" commands_data = ( ("add_issue_to_journal", { "issue": "1678-4596-cr-25-3" }), ("insert_issue_to_journal", { "issue": "1678-4596-cr-25-3", "index": 2 }), ) for command, data in commands_data: with self.subTest(command=command, data=data): self.request.validated = data MockPatchJournal = Mock( side_effect=exceptions.DoesNotExist("Does Not Exist")) self.request.services[command] = MockPatchJournal response = restfulapi.patch_journal_issues(self.request) self.assertIsInstance(response, HTTPNotFound)
def fetch(self, id: str) -> dict: try: return self._ids[id] except KeyError: raise exceptions.DoesNotExist()
def fetch(self, id): manifest = self._data_store.get(id) if manifest: return self.DomainClass(manifest=manifest) else: raise exceptions.DoesNotExist()
def test_should_raise_exception_if_journal_does_not_has_aop(self): self.request.matchdict = {"journal_id": "1678-4596-cr-49-02"} self.request.services["set_ahead_of_print_bundle_to_journal"] = Mock( side_effect=exceptions.DoesNotExist()) self.assertIsInstance(restfulapi.delete_journal_aop(self.request), HTTPNotFound)