def register_update_doc_into_kernel(xml_data): payload = {"data": xml_data["xml_url"], "assets": xml_data["assets"]} try: hooks.kernel_connect( "/documents/{}".format(xml_data["scielo_id"]), "PUT", payload ) except requests.exceptions.HTTPError as exc: raise RegisterUpdateDocIntoKernelException( 'Could not PUT document "{}" in Kernel : {}'.format( xml_data["xml_package_name"], str(exc) ) ) from None else: for pdf_payload in (xml_data or {}).get("pdfs", []): Logger.info('Putting Rendition "%s" to Kernel', pdf_payload["filename"]) try: hooks.kernel_connect( "/documents/{}/renditions".format(xml_data["scielo_id"]), "PATCH", pdf_payload, ) except requests.exceptions.HTTPError as exc: raise RegisterUpdateDocIntoKernelException( 'Could not PATCH rendition "{}" in Kernel : {}'.format( pdf_payload["filename"], str(exc) ) ) from None
def test_register_update_documents_returns_syncronized_documents_metadata_list( self, MockZipFile, mk_put_xml_into_object_store, mk_put_assets_and_pdfs_in_object_store, mk_register_update_doc_into_kernel, ): expected = [self.xmls_data[0], self.xmls_data[2]] mk_put_xml_into_object_store.side_effect = self.xmls_data mk_register_update_doc_into_kernel.side_effect = [ None, RegisterUpdateDocIntoKernelException( "Register Doc in Kernel Error"), None, ] result, _ = register_update_documents(**self.kwargs) self.assertEqual(result, expected)
def test_register_update_documents_call_register_update_doc_into_kernel_raise_error( self, MockZipFile, MockLogger, mk_put_xml_into_object_store, mk_put_assets_and_pdfs_in_object_store, mk_register_update_doc_into_kernel, ): mk_put_assets_and_pdfs_in_object_store.side_effect = self.xmls_data mk_register_update_doc_into_kernel.side_effect = [ None, RegisterUpdateDocIntoKernelException( "Register Doc in Kernel Error"), None, ] register_update_documents(**self.kwargs) MockLogger.error.assert_any_call( 'Could not register or update document "%s" in Kernel: %s', self.kwargs["xmls_to_preserve"][1], "Register Doc in Kernel Error", )