示例#1
0
    def test_different_error_reraised(self, mock_hook):
        op = BigtableUpdateInstanceOperator(
            project_id=PROJECT_ID,
            instance_id=INSTANCE_ID,
            instance_display_name=INSTANCE_DISPLAY_NAME,
            instance_type=INSTANCE_TYPE,
            instance_labels=INSTANCE_LABELS,
            task_id="id",
            gcp_conn_id=GCP_CONN_ID,
            impersonation_chain=IMPERSONATION_CHAIN,
        )
        mock_hook.return_value.update_instance.side_effect = mock.Mock(
            side_effect=google.api_core.exceptions.GoogleAPICallError('error'))

        with self.assertRaises(google.api_core.exceptions.GoogleAPICallError):
            op.execute(None)

        mock_hook.assert_called_once_with(
            gcp_conn_id=GCP_CONN_ID,
            impersonation_chain=IMPERSONATION_CHAIN,
        )
        mock_hook.return_value.update_instance.assert_called_once_with(
            project_id=PROJECT_ID,
            instance_id=INSTANCE_ID,
            instance_display_name=INSTANCE_DISPLAY_NAME,
            instance_type=INSTANCE_TYPE,
            instance_labels=INSTANCE_LABELS,
            timeout=None,
        )
示例#2
0
    def test_update_instance_that_doesnt_exists_empty_project_id(
            self, mock_hook):
        mock_hook.return_value.get_instance.return_value = None

        with self.assertRaises(AirflowException) as e:
            op = BigtableUpdateInstanceOperator(
                instance_id=INSTANCE_ID,
                instance_display_name=INSTANCE_DISPLAY_NAME,
                instance_type=INSTANCE_TYPE,
                instance_labels=INSTANCE_LABELS,
                task_id="id",
                gcp_conn_id=GCP_CONN_ID,
                impersonation_chain=IMPERSONATION_CHAIN,
            )
            op.execute(None)

        err = e.exception
        self.assertEqual(
            str(err),
            "Dependency: instance '{}' does not exist.".format(INSTANCE_ID))

        mock_hook.assert_called_once_with(
            gcp_conn_id=GCP_CONN_ID,
            impersonation_chain=IMPERSONATION_CHAIN,
        )
        mock_hook.return_value.update_instance.assert_not_called()
示例#3
0
    def test_update_instance_that_doesnt_exists(self, mock_hook):
        mock_hook.return_value.get_instance.return_value = None

        with pytest.raises(AirflowException) as ctx:
            op = BigtableUpdateInstanceOperator(
                project_id=PROJECT_ID,
                instance_id=INSTANCE_ID,
                instance_display_name=INSTANCE_DISPLAY_NAME,
                instance_type=INSTANCE_TYPE,
                instance_labels=INSTANCE_LABELS,
                task_id="id",
                gcp_conn_id=GCP_CONN_ID,
                impersonation_chain=IMPERSONATION_CHAIN,
            )
            op.execute(None)

        err = ctx.value
        assert str(
            err) == f"Dependency: instance '{INSTANCE_ID}' does not exist."

        mock_hook.assert_called_once_with(
            gcp_conn_id=GCP_CONN_ID,
            impersonation_chain=IMPERSONATION_CHAIN,
        )
        mock_hook.return_value.update_instance.assert_not_called()
示例#4
0
 def test_update_execute_empty_project_id(self, mock_hook):
     op = BigtableUpdateInstanceOperator(
         instance_id=INSTANCE_ID,
         instance_display_name=INSTANCE_DISPLAY_NAME,
         instance_type=INSTANCE_TYPE,
         instance_labels=INSTANCE_LABELS,
         task_id="id",
         gcp_conn_id=GCP_CONN_ID)
     op.execute(None)
     mock_hook.assert_called_once_with(gcp_conn_id=GCP_CONN_ID)
     mock_hook.return_value.update_instance.assert_called_once_with(
         project_id=None,
         instance_id=INSTANCE_ID,
         instance_display_name=INSTANCE_DISPLAY_NAME,
         instance_type=INSTANCE_TYPE,
         instance_labels=INSTANCE_LABELS,
         timeout=None)
示例#5
0
 def test_delete_execute(self, mock_hook):
     op = BigtableUpdateInstanceOperator(
         project_id=PROJECT_ID,
         instance_id=INSTANCE_ID,
         instance_display_name=INSTANCE_DISPLAY_NAME,
         instance_type=INSTANCE_TYPE,
         instance_labels=INSTANCE_LABELS,
         task_id="id",
         gcp_conn_id=GCP_CONN_ID,
         impersonation_chain=IMPERSONATION_CHAIN,
     )
     op.execute(None)
     mock_hook.assert_called_once_with(
         gcp_conn_id=GCP_CONN_ID,
         impersonation_chain=IMPERSONATION_CHAIN,
     )
     mock_hook.return_value.update_instance.assert_called_once_with(
         project_id=PROJECT_ID,
         instance_id=INSTANCE_ID,
         instance_display_name=INSTANCE_DISPLAY_NAME,
         instance_type=INSTANCE_TYPE,
         instance_labels=INSTANCE_LABELS,
         timeout=None)