Skip to content

Commit 0f0a1a7

Browse files
authored
Fix to CloudBuildRunBuildTriggerOperator fails to find build id. (#22419)
* Fix CloudBuildRunBuildTriggerOperator: 'property' object has no attribute 'build' #22398
1 parent f51a674 commit 0f0a1a7

File tree

2 files changed

+18
-6
lines changed

2 files changed

+18
-6
lines changed

airflow/providers/google/cloud/hooks/cloud_build.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ def create_build(
162162
metadata=metadata,
163163
)
164164

165-
id_ = self._get_build_id_from_operation(Operation)
165+
id_ = self._get_build_id_from_operation(operation)
166166

167167
if not wait:
168168
return self.get_build(id_=id_, project_id=project_id)
@@ -460,7 +460,7 @@ def retry_build(
460460
metadata=metadata,
461461
)
462462

463-
id_ = self._get_build_id_from_operation(Operation)
463+
id_ = self._get_build_id_from_operation(operation)
464464

465465
if not wait:
466466
return self.get_build(id_=id_, project_id=project_id)
@@ -510,7 +510,7 @@ def run_build_trigger(
510510
metadata=metadata,
511511
)
512512

513-
id_ = self._get_build_id_from_operation(Operation)
513+
id_ = self._get_build_id_from_operation(operation)
514514

515515
if not wait:
516516
return self.get_build(id_=id_, project_id=project_id)

tests/providers/google/cloud/hooks/test_cloud_build.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,14 +106,18 @@ def test_create_build_without_wait(self, get_conn, mock_get_id_from_operation):
106106

107107
self.hook.create_build(build=BUILD, project_id=PROJECT_ID, wait=False)
108108

109-
get_conn.return_value.create_build.assert_called_once_with(
109+
mock_operation = get_conn.return_value.create_build
110+
111+
mock_operation.assert_called_once_with(
110112
request={'project_id': PROJECT_ID, 'build': BUILD}, retry=None, timeout=None, metadata=()
111113
)
112114

113115
get_conn.return_value.get_build.assert_called_once_with(
114116
request={'project_id': PROJECT_ID, 'id': BUILD_ID}, retry=None, timeout=None, metadata=()
115117
)
116118

119+
mock_get_id_from_operation.assert_called_once_with(mock_operation())
120+
117121
@patch("airflow.providers.google.cloud.hooks.cloud_build.CloudBuildHook.get_conn")
118122
def test_create_build_trigger(self, get_conn):
119123
self.hook.create_build_trigger(trigger=BUILD_TRIGGER, project_id=PROJECT_ID)
@@ -194,7 +198,9 @@ def test_retry_build_with_wait(self, get_conn, wait_time, mock_get_id_from_opera
194198

195199
self.hook.retry_build(id_=BUILD_ID, project_id=PROJECT_ID)
196200

197-
get_conn.return_value.retry_build.assert_called_once_with(
201+
mock_operation = get_conn.return_value.retry_build
202+
203+
mock_operation.assert_called_once_with(
198204
request={'project_id': PROJECT_ID, 'id': BUILD_ID}, retry=None, timeout=None, metadata=()
199205
)
200206

@@ -204,6 +210,8 @@ def test_retry_build_with_wait(self, get_conn, wait_time, mock_get_id_from_opera
204210
request={'project_id': PROJECT_ID, 'id': BUILD_ID}, retry=None, timeout=None, metadata=()
205211
)
206212

213+
mock_get_id_from_operation.assert_called_once_with(mock_operation())
214+
207215
@patch("airflow.providers.google.cloud.hooks.cloud_build.CloudBuildHook._get_build_id_from_operation")
208216
@patch("airflow.providers.google.cloud.hooks.cloud_build.CloudBuildHook.get_conn")
209217
def test_retry_build_without_wait(self, get_conn, mock_get_id_from_operation):
@@ -233,7 +241,9 @@ def test_run_build_trigger_with_wait(self, get_conn, wait_time, mock_get_id_from
233241
trigger_id=TRIGGER_ID, source=REPO_SOURCE['repo_source'], project_id=PROJECT_ID
234242
)
235243

236-
get_conn.return_value.run_build_trigger.assert_called_once_with(
244+
mock_operation = get_conn.return_value.run_build_trigger
245+
246+
mock_operation.assert_called_once_with(
237247
request={
238248
'project_id': PROJECT_ID,
239249
'trigger_id': TRIGGER_ID,
@@ -250,6 +260,8 @@ def test_run_build_trigger_with_wait(self, get_conn, wait_time, mock_get_id_from
250260
request={'project_id': PROJECT_ID, 'id': BUILD_ID}, retry=None, timeout=None, metadata=()
251261
)
252262

263+
mock_get_id_from_operation.assert_called_once_with(mock_operation())
264+
253265
@patch("airflow.providers.google.cloud.hooks.cloud_build.CloudBuildHook._get_build_id_from_operation")
254266
@patch("airflow.providers.google.cloud.hooks.cloud_build.CloudBuildHook.get_conn")
255267
def test_run_build_trigger_without_wait(self, get_conn, mock_get_id_from_operation):

0 commit comments

Comments
 (0)