def test_instance_db_patch(self, mock_hook, _check_if_db_exists): _check_if_db_exists.return_value = True op = CloudSqlInstanceDatabasePatchOperator(project_id=PROJECT_ID, instance=INSTANCE_NAME, database=DB_NAME, body=DATABASE_PATCH_BODY, task_id="id") result = op.execute(None) mock_hook.assert_called_once_with(api_version="v1beta4", gcp_conn_id="google_cloud_default") mock_hook.return_value.patch_database.assert_called_once_with( PROJECT_ID, INSTANCE_NAME, DB_NAME, DATABASE_PATCH_BODY) self.assertTrue(result)
def test_instance_db_patch_should_throw_ex_when_empty_database( self, mock_hook): with self.assertRaises(AirflowException) as cm: op = CloudSqlInstanceDatabasePatchOperator( project_id=PROJECT_ID, instance=INSTANCE_NAME, database="", body=DATABASE_INSERT_BODY, task_id="id") op.execute(None) err = cm.exception self.assertIn("The required parameter 'database' is empty", str(err)) mock_hook.assert_not_called() mock_hook.return_value.patch_database.assert_not_called()
def test_instance_db_patch_should_throw_ex_if_not_exists( self, mock_hook, _check_if_db_exists): _check_if_db_exists.return_value = False with self.assertRaises(AirflowException) as cm: op = CloudSqlInstanceDatabasePatchOperator( project_id=PROJECT_ID, instance=INSTANCE_NAME, database=DB_NAME, body=DATABASE_PATCH_BODY, task_id="id") op.execute(None) err = cm.exception self.assertIn("Cloud SQL instance with ID", str(err)) self.assertIn("does not contain database", str(err)) mock_hook.assert_called_once_with(api_version="v1beta4", gcp_conn_id="google_cloud_default") mock_hook.return_value.patch_database.assert_not_called()
task_id='sql_instance_patch_task' ) # [END howto_operator_cloudsql_patch] # [START howto_operator_cloudsql_db_create] sql_db_create_task = CloudSqlInstanceDatabaseCreateOperator( project_id=PROJECT_ID, body=db_create_body, instance=INSTANCE_NAME, task_id='sql_db_create_task' ) # [END howto_operator_cloudsql_db_create] # [START howto_operator_cloudsql_db_patch] sql_db_patch_task = CloudSqlInstanceDatabasePatchOperator( project_id=PROJECT_ID, body=db_patch_body, instance=INSTANCE_NAME, database=DB_NAME, task_id='sql_db_patch_task' ) # [END howto_operator_cloudsql_db_patch] # [START howto_operator_cloudsql_db_delete] sql_db_delete_task = CloudSqlInstanceDatabaseDeleteOperator( project_id=PROJECT_ID, instance=INSTANCE_NAME, database=DB_NAME, task_id='sql_db_delete_task' ) # [END howto_operator_cloudsql_db_delete] # [START howto_operator_cloudsql_delete] sql_instance_delete_task = CloudSqlInstanceDeleteOperator( project_id=PROJECT_ID,