def test_fixutre(*args, **kwargs):
     self.called = True
     raise AlreadyExists("MESSAGE")
Esempio n. 2
0
 def test_create_preexisting_topic_nofailifexists(self, mock_service):
     mock_service.return_value.create_topic.side_effect = AlreadyExists(
         'Topic already exists: %s' % EXPANDED_TOPIC
     )
     self.pubsub_hook.create_topic(project_id=TEST_PROJECT, topic=TEST_TOPIC)
class TestCloudDataCatalogCreateEntryOperator(TestCase):
    @mock.patch(
        "airflow.providers.google.cloud.operators.datacatalog.CloudDataCatalogHook",
        **{"return_value.create_entry.return_value": TEST_ENTRY},
    )
    def test_assert_valid_hook_call(self, mock_hook) -> None:
        task = CloudDataCatalogCreateEntryOperator(
            task_id="task_id",
            location=TEST_LOCATION,
            entry_group=TEST_ENTRY_GROUP_ID,
            entry_id=TEST_ENTRY_ID,
            entry=TEST_ENTRY,
            project_id=TEST_PROJECT_ID,
            retry=TEST_RETRY,
            timeout=TEST_TIMEOUT,
            metadata=TEST_METADATA,
            gcp_conn_id=TEST_GCP_CONN_ID,
        )
        ti = mock.MagicMock()
        result = task.execute(context={"task_instance": ti})
        mock_hook.assert_called_once_with(gcp_conn_id=TEST_GCP_CONN_ID)
        mock_hook.return_value.create_entry.assert_called_once_with(
            location=TEST_LOCATION,
            entry_group=TEST_ENTRY_GROUP_ID,
            entry_id=TEST_ENTRY_ID,
            entry=TEST_ENTRY,
            project_id=TEST_PROJECT_ID,
            retry=TEST_RETRY,
            timeout=TEST_TIMEOUT,
            metadata=TEST_METADATA,
        )
        ti.xcom_push.assert_called_once_with(key="entry_id", value=TEST_ENTRY_ID)
        self.assertEqual(TEST_ENTRY_DICT, result)

    @mock.patch(
        "airflow.providers.google.cloud.operators.datacatalog.CloudDataCatalogHook",
        **{
            "return_value.create_entry.side_effect": AlreadyExists(message="message"),
            "return_value.get_entry.return_value": TEST_ENTRY,
        },
    )
    def test_assert_valid_hook_call_when_exists(self, mock_hook) -> None:
        task = CloudDataCatalogCreateEntryOperator(
            task_id="task_id",
            location=TEST_LOCATION,
            entry_group=TEST_ENTRY_GROUP_ID,
            entry_id=TEST_ENTRY_ID,
            entry=TEST_ENTRY,
            project_id=TEST_PROJECT_ID,
            retry=TEST_RETRY,
            timeout=TEST_TIMEOUT,
            metadata=TEST_METADATA,
            gcp_conn_id=TEST_GCP_CONN_ID,
        )
        ti = mock.MagicMock()
        result = task.execute(context={"task_instance": ti})
        mock_hook.assert_called_once_with(gcp_conn_id=TEST_GCP_CONN_ID)
        mock_hook.return_value.create_entry.assert_called_once_with(
            location=TEST_LOCATION,
            entry_group=TEST_ENTRY_GROUP_ID,
            entry_id=TEST_ENTRY_ID,
            entry=TEST_ENTRY,
            project_id=TEST_PROJECT_ID,
            retry=TEST_RETRY,
            timeout=TEST_TIMEOUT,
            metadata=TEST_METADATA,
        )
        mock_hook.return_value.get_entry.assert_called_once_with(
            location=TEST_LOCATION,
            entry_group=TEST_ENTRY_GROUP_ID,
            entry=TEST_ENTRY_ID,
            project_id=TEST_PROJECT_ID,
            retry=TEST_RETRY,
            timeout=TEST_TIMEOUT,
            metadata=TEST_METADATA,
        )
        ti.xcom_push.assert_called_once_with(key="entry_id", value=TEST_ENTRY_ID)
        self.assertEqual(TEST_ENTRY_DICT, result)