def test_get_pyt_set_correctly(self, command, get_pty_in, get_pty_out): task = SSHOperator(task_id="test", ssh_hook=self.hook, command=command, timeout=TIMEOUT, get_pty=get_pty_in, dag=self.dag) try: task.execute(None) except Exception: # pylint: disable=broad-except pass self.assertEqual(task.get_pty, get_pty_out)
def test_hook_created_correctly(self): timeout = 20 ssh_id = "ssh_default" task = SSHOperator(task_id="test", command=COMMAND, dag=self.dag, timeout=timeout, ssh_conn_id="ssh_default") self.assertIsNotNone(task) task.execute(None) self.assertEqual(timeout, task.ssh_hook.timeout) self.assertEqual(ssh_id, task.ssh_hook.ssh_conn_id)
def test_hook_created_correctly(self): timeout = 20 ssh_id = "ssh_default" task = SSHOperator(task_id="test", command=COMMAND, dag=self.dag, timeout=timeout, ssh_conn_id="ssh_default") assert task is not None task.execute(None) assert timeout == task.ssh_hook.timeout assert ssh_id == task.ssh_hook.ssh_conn_id
def test_arg_checking(self): # Exception should be raised if neither ssh_hook nor ssh_conn_id is provided with self.assertRaisesRegex( AirflowException, "Cannot operate without ssh_hook or ssh_conn_id."): task_0 = SSHOperator(task_id="test", command=COMMAND, timeout=TIMEOUT, dag=self.dag) task_0.execute(None) # if ssh_hook is invalid/not provided, use ssh_conn_id to create SSHHook task_1 = SSHOperator( task_id="test_1", ssh_hook="string_rather_than_SSHHook", # invalid ssh_hook ssh_conn_id=TEST_CONN_ID, command=COMMAND, timeout=TIMEOUT, dag=self.dag, ) try: task_1.execute(None) except Exception: # pylint: disable=broad-except pass self.assertEqual(task_1.ssh_hook.ssh_conn_id, TEST_CONN_ID) task_2 = SSHOperator( task_id="test_2", ssh_conn_id=TEST_CONN_ID, # no ssh_hook provided command=COMMAND, timeout=TIMEOUT, dag=self.dag, ) try: task_2.execute(None) except Exception: # pylint: disable=broad-except pass self.assertEqual(task_2.ssh_hook.ssh_conn_id, TEST_CONN_ID) # if both valid ssh_hook and ssh_conn_id are provided, ignore ssh_conn_id task_3 = SSHOperator( task_id="test_3", ssh_hook=self.hook, ssh_conn_id=TEST_CONN_ID, command=COMMAND, timeout=TIMEOUT, dag=self.dag, ) try: task_3.execute(None) except Exception: # pylint: disable=broad-except pass self.assertEqual(task_3.ssh_hook.ssh_conn_id, self.hook.ssh_conn_id)