From b541b4a2f3c4b6bf551e6479ebbc2cc46f277fc4 Mon Sep 17 00:00:00 2001 From: kaxil Date: Fri, 6 Dec 2019 17:08:41 +0000 Subject: [PATCH 1/2] [AIRFLOW-6192] Stop creating Hook from SFTPSensor.__init__ --- airflow/contrib/sensors/sftp_sensor.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/airflow/contrib/sensors/sftp_sensor.py b/airflow/contrib/sensors/sftp_sensor.py index 39dc0d953c8418..f58bc27bd9c907 100644 --- a/airflow/contrib/sensors/sftp_sensor.py +++ b/airflow/contrib/sensors/sftp_sensor.py @@ -39,9 +39,11 @@ class SFTPSensor(BaseSensorOperator): def __init__(self, path, sftp_conn_id='sftp_default', *args, **kwargs): super().__init__(*args, **kwargs) self.path = path - self.hook = SFTPHook(sftp_conn_id) + self.hook = None + self.sftp_conn_id = sftp_conn_id def poke(self, context): + self.hook = SFTPHook(self.sftp_conn_id) self.log.info('Poking for %s', self.path) try: self.hook.get_mod_time(self.path) From 5fb85fb3c90d589da53391654e78eb937f883164 Mon Sep 17 00:00:00 2001 From: kaxil Date: Fri, 6 Dec 2019 17:11:22 +0000 Subject: [PATCH 2/2] Add test --- tests/contrib/sensors/test_sftp_sensor.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/contrib/sensors/test_sftp_sensor.py b/tests/contrib/sensors/test_sftp_sensor.py index eba8ef5e62cb20..351dac84084951 100644 --- a/tests/contrib/sensors/test_sftp_sensor.py +++ b/tests/contrib/sensors/test_sftp_sensor.py @@ -69,3 +69,9 @@ def test_sftp_failure(self, sftp_hook_mock): sftp_sensor.poke(context) sftp_hook_mock.return_value.get_mod_time.assert_called_once_with( '/path/to/file/1970-01-01.txt') + + def test_hook_not_created_during_init(self): + sftp_sensor = SFTPSensor( + task_id='unit_test', + path='/path/to/file/1970-01-01.txt') + self.assertIsNone(sftp_sensor.hook)