def test_has_orphans_when_try_register_an_orphan_rendition(self): article_rendition_factory_mock = MagicMock() article_rendition_factory_mock.side_effect = [ models.Article.DoesNotExist ] orphans = try_register_documents_renditions( documents=self.documents, get_rendition_data=lambda document_id: self.renditions, article_rendition_factory=article_rendition_factory_mock, ) self.assertEqual(self.documents, orphans)
def test_try_register_documents_renditions_call_save_methods_from_article_instance( self): article_rendition_factory_mock = MagicMock() article_instance_mock = MagicMock() article_rendition_factory_mock.return_value = article_instance_mock orphans = try_register_documents_renditions( documents=self.documents, get_rendition_data=lambda document_id: self.renditions, article_rendition_factory=article_rendition_factory_mock, ) article_instance_mock.save.assert_called() self.assertEqual([], orphans)
def register_documents_renditions(**kwargs): """Registra as manifestações de documentos processados na base de dados do OPAC""" mongo_connect() tasks = kwargs["ti"].xcom_pull(key="tasks", task_ids="read_changes_task") renditions_to_get = itertools.chain( Variable.get("orphan_renditions", default_var=[], deserialize_json=True), (get_id(task["id"]) for task in filter_changes(tasks, "renditions", "get")), ) orphans = try_register_documents_renditions(renditions_to_get, fetch_documents_renditions, ArticleRenditionFactory) Variable.set("orphan_renditions", orphans, serialize_json=True)