コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
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)