nuclearpinguin commented on a change in pull request #6898: [AIRFLOW-6432] fix
EmrAddStepsOperator broken ref & faulty test & add test case for missing cluster
URL: https://github.com/apache/airflow/pull/6898#discussion_r362162056
##########
File path: tests/contrib/operators/test_emr_add_steps_operator.py
##########
@@ -107,23 +108,45 @@ def test_execute_returns_step_id(self):
def test_init_with_cluster_name(self):
expected_job_flow_id = 'j-1231231234'
- self.emr_client_mock.get_cluster_id_by_name.return_value =
expected_job_flow_id
self.emr_client_mock.add_job_flow_steps.return_value =
ADD_STEPS_SUCCESS_RETURN
with patch('boto3.session.Session', self.boto3_session_mock):
+ with
patch('airflow.contrib.hooks.emr_hook.EmrHook.get_cluster_id_by_name') \
+ as mock_get_cluster_id_by_name:
+ mock_get_cluster_id_by_name.return_value = expected_job_flow_id
+
+ operator = EmrAddStepsOperator(
+ task_id='test_task',
+ job_flow_name='test_cluster',
+ cluster_states=['RUNNING', 'WAITING'],
+ aws_conn_id='aws_default',
+ dag=DAG('test_dag_id', default_args=self.args)
+ )
+
+ operator.execute(self.mock_context)
+
+ ti = self.mock_context['ti']
+
+ ti.xcom_push.assert_called_once_with(key='job_flow_id',
value=expected_job_flow_id)
+
+ def test_init_with_nonexistent_cluster_name(self):
+ cluster_name = 'test_cluster'
+
+ with
patch('airflow.contrib.hooks.emr_hook.EmrHook.get_cluster_id_by_name') \
+ as mock_get_cluster_id_by_name:
+ mock_get_cluster_id_by_name.return_value = None
+
operator = EmrAddStepsOperator(
task_id='test_task',
- job_flow_name='test_cluster',
+ job_flow_name=cluster_name,
cluster_states=['RUNNING', 'WAITING'],
aws_conn_id='aws_default',
dag=DAG('test_dag_id', default_args=self.args)
)
- operator.execute(self.mock_context)
-
- ti = self.mock_context['ti']
-
- ti.xcom_push.assert_any_call(key='job_flow_id',
value=expected_job_flow_id)
+ with self.assertRaises(AirflowException) as error:
+ operator.execute(self.mock_context)
+ self.assertEqual(str(error.exception), 'No cluster found for name
= test_cluster')
Review comment:
```suggestion
self.assertEqual(str(error.exception), f'No cluster found for
name: {cluster_name}')
```
The test need an adjustment after the change in core :)
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services