ferruzzi commented on code in PR #28318:
URL: https://github.com/apache/airflow/pull/28318#discussion_r1046436384


##########
tests/providers/ftp/operators/test_ftp.py:
##########
@@ -184,3 +188,116 @@ def test_unequal_local_remote_file_paths(self):
                 local_filepath=["/tmp/test1", "/tmp/test2"],
                 remote_filepath="/tmp/test1",
             )
+
+
+class TestFTPSFileTransmitOperator:
+    def setup_method(self):
+        self.test_local_dir = "/tmp"
+        self.test_local_dir_int = "/tmp/interdir"
+        self.test_remote_dir = "/ftpshome"
+        self.test_remote_dir_int = "/ftpshome/interdir"
+        self.test_local_filename = "test_local_file"
+        self.test_remote_filename = "test_remote_file"
+        self.test_local_filepath = 
f"{self.test_local_dir}/{self.test_local_filename}"
+        self.test_remote_filepath = 
f"{self.test_remote_dir}/{self.test_remote_filename}"
+        self.test_local_filepath_int_dir = 
f"{self.test_local_dir_int}/{self.test_local_filename}"
+        self.test_remote_filepath_int_dir = 
f"{self.test_remote_dir_int}/{self.test_remote_filename}"
+
+    def teardown_method(self):
+        if os.path.exists(self.test_local_dir_int):
+            os.rmdir(self.test_local_dir_int)
+
+    @mock.patch("airflow.providers.ftp.operators.ftp.FTPSHook.store_file")
+    
@mock.patch("airflow.providers.ftp.operators.ftp.FTPSHook.create_directory")
+    def test_file_transfer_put(self, mock_create_dir, mock_put):
+        ftps_op = FTPSFileTransmitOperator(
+            task_id="test_ftps_put",
+            ftp_conn_id=DEFAULT_CONN_ID,
+            local_filepath=self.test_local_filepath,
+            remote_filepath=self.test_remote_filepath,
+            operation=FTPOperation.PUT,
+        )
+        ftps_op.execute(None)
+        assert mock_put.call_count == 1
+        assert not mock_create_dir.called
+        mock_put.assert_called_with(self.test_remote_filepath, 
self.test_local_filepath)
+
+    @mock.patch("airflow.providers.ftp.operators.ftp.FTPSHook.store_file")
+    
@mock.patch("airflow.providers.ftp.operators.ftp.FTPSHook.create_directory")
+    def test_file_transfer_with_intermediate_dir_put(self, mock_create_dir, 
mock_put):
+        ftps_op = FTPSFileTransmitOperator(
+            task_id="test_ftps_put_imm_dirs",
+            ftp_conn_id=DEFAULT_CONN_ID,
+            local_filepath=self.test_local_filepath,
+            remote_filepath=self.test_remote_filepath_int_dir,
+            operation=FTPOperation.PUT,
+            create_intermediate_dirs=True,
+        )
+        ftps_op.execute(None)
+        assert mock_put.call_count == 1
+        mock_create_dir.assert_called_with(self.test_remote_dir_int)
+        mock_put.assert_called_with(self.test_remote_filepath_int_dir, 
self.test_local_filepath)
+
+    @mock.patch("airflow.providers.ftp.operators.ftp.FTPSHook.retrieve_file")
+    def test_file_transfer_get(self, mock_get):
+        ftps_op = FTPSFileTransmitOperator(
+            task_id="test_ftps_get",
+            ftp_conn_id=DEFAULT_CONN_ID,
+            local_filepath=self.test_local_filepath,
+            remote_filepath=self.test_remote_filepath,
+            operation=FTPOperation.GET,
+        )
+        ftps_op.execute(None)
+        assert mock_get.call_count == 1
+        mock_get.assert_called_with(self.test_remote_filepath, 
self.test_local_filepath)

Review Comment:
   Here and elsewhere in this file, these two asserts can be combined into 
`assert_called_once_with`  ie
   
   ```
   mock_get.assert_called_once_with(self.test_remote_filepath, 
self.test_local_filepath)
   ```



-- 
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.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to