コード例 #1
0
 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:
         pass
     self.assertEqual(task.get_pty, get_pty_out)
コード例 #2
0
    def test_hook_created_correctly(self):
        TIMEOUT = 20
        SSH_ID = "ssh_default"
        task = SSHOperator(task_id="test",
                           command="echo -n airflow",
                           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)
コード例 #3
0
    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)
コード例 #4
0
ファイル: test_ssh_operator.py プロジェクト: zyh1690/airflow
    def test_arg_checking(self):
        import os
        from airflow.exceptions import AirflowException
        conn_id = "conn_id_for_testing"
        TIMEOUT = 5
        os.environ['AIRFLOW_CONN_' +
                   conn_id.upper()] = "ssh://test_id@localhost"

        # Exception should be raised if neither ssh_hook nor ssh_conn_id is provided
        if six.PY2:
            self.assertRaisesRegex = self.assertRaisesRegexp
        with self.assertRaisesRegex(
                AirflowException,
                "Cannot operate without ssh_hook or ssh_conn_id."):
            task_0 = SSHOperator(task_id="test",
                                 command="echo -n airflow",
                                 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=conn_id,
            command="echo -n airflow",
            timeout=TIMEOUT,
            dag=self.dag)
        try:
            task_1.execute(None)
        except Exception:
            pass
        self.assertEqual(task_1.ssh_hook.ssh_conn_id, conn_id)

        task_2 = SSHOperator(
            task_id="test_2",
            ssh_conn_id=conn_id,  # no ssh_hook provided
            command="echo -n airflow",
            timeout=TIMEOUT,
            dag=self.dag)
        try:
            task_2.execute(None)
        except Exception:
            pass
        self.assertEqual(task_2.ssh_hook.ssh_conn_id, 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=conn_id,
                             command="echo -n airflow",
                             timeout=TIMEOUT,
                             dag=self.dag)
        try:
            task_3.execute(None)
        except Exception:
            pass
        self.assertEqual(task_3.ssh_hook.ssh_conn_id, self.hook.ssh_conn_id)
コード例 #5
0
    def test_arg_checking(self):
        import os
        from airflow.exceptions import AirflowException
        conn_id = "conn_id_for_testing"
        TIMEOUT = 5
        os.environ['AIRFLOW_CONN_' + conn_id.upper()] = "ssh://test_id@localhost"

        # Exception should be raised if neither ssh_hook nor ssh_conn_id is provided
        if six.PY2:
            self.assertRaisesRegex = self.assertRaisesRegexp
        with self.assertRaisesRegex(AirflowException,
                                    "Cannot operate without ssh_hook or ssh_conn_id."):
            task_0 = SSHOperator(task_id="test", command="echo -n airflow",
                                 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=conn_id,
            command="echo -n airflow",
            timeout=TIMEOUT,
            dag=self.dag
        )
        try:
            task_1.execute(None)
        except Exception:
            pass
        self.assertEqual(task_1.ssh_hook.ssh_conn_id, conn_id)

        task_2 = SSHOperator(
            task_id="test_2",
            ssh_conn_id=conn_id,  # no ssh_hook provided
            command="echo -n airflow",
            timeout=TIMEOUT,
            dag=self.dag
        )
        try:
            task_2.execute(None)
        except Exception:
            pass
        self.assertEqual(task_2.ssh_hook.ssh_conn_id, 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=conn_id,
            command="echo -n airflow",
            timeout=TIMEOUT,
            dag=self.dag
        )
        try:
            task_3.execute(None)
        except Exception:
            pass
        self.assertEqual(task_3.ssh_hook.ssh_conn_id, self.hook.ssh_conn_id)
コード例 #6
0
    def test_hook_created_correctly(self):
        TIMEOUT = 20
        SSH_ID = "ssh_default"
        task = SSHOperator(
            task_id="test",
            command="echo -n airflow",
            dag=self.dag,
            timeout=TIMEOUT,
            ssh_conn_id="ssh_default"
        )
        self.assertIsNotNone(task)

        task.execute(None)

        self.assertEquals(TIMEOUT, task.ssh_hook.timeout)
        self.assertEquals(SSH_ID, task.ssh_hook.ssh_conn_id)
コード例 #7
0
    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:
            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:
            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:
            pass
        self.assertEqual(task_3.ssh_hook.ssh_conn_id, self.hook.ssh_conn_id)
コード例 #8
0
 def _actual_execution(self, context):
     SSHOperator.execute(self, context)