Skip to content

Commit aa0cc88

Browse files
committed
CHG: caplog -> patch.object style
1 parent ee8c977 commit aa0cc88

1 file changed

Lines changed: 27 additions & 16 deletions

File tree

providers/microsoft/azure/tests/unit/microsoft/azure/transfers/test_sftp_to_wasb.py

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -59,34 +59,45 @@ def test_init(self):
5959
assert operator.create_container is False
6060

6161
@pytest.mark.skipif(not AIRFLOW_V_3_0_PLUS, reason="dry_run only exists in Airflow 3.0+")
62-
@mock.patch("airflow.providers.microsoft.azure.transfers.sftp_to_wasb.WasbHook")
63-
@mock.patch("airflow.providers.microsoft.azure.transfers.sftp_to_wasb.SFTPHook")
64-
def test_dry_run_logs_and_skips_real_action(self, mock_sftp_hook, mock_wasb_hook, caplog):
65-
mock_sftp_hook.return_value.get_tree_map.return_value = [
66-
["main_dir/test_object3.json"], # files
67-
[], # dirs
68-
[], # links
69-
]
62+
@pytest.mark.parametrize(
63+
"move_object, expect_delete_log",
64+
[
65+
(True, True),
66+
(False, False),
67+
],
68+
)
69+
def test_dry_run_logs_and_skips_real_action(self, move_object, expect_delete_log):
7070
operator = SFTPToWasbOperator(
7171
task_id=TASK_ID,
7272
sftp_source_path=SOURCE_PATH_NO_WILDCARD,
7373
sftp_conn_id=SFTP_CONN_ID,
7474
container_name=CONTAINER_NAME,
7575
wasb_conn_id=WASB_CONN_ID,
7676
blob_prefix="sponge-bob/",
77-
move_object=True,
77+
move_object=move_object,
7878
)
79+
with (
80+
mock.patch.object(operator.log, "info") as mock_info,
81+
mock.patch("airflow.providers.microsoft.azure.transfers.sftp_to_wasb.WasbHook"),
82+
mock.patch("airflow.providers.microsoft.azure.transfers.sftp_to_wasb.SFTPHook") as mock_sftp_hook,
83+
):
84+
mock_sftp_hook.return_value.get_tree_map.return_value = [
85+
["main_dir/test_object3.json"],
86+
[],
87+
[],
88+
]
7989

80-
caplog.clear()
81-
with caplog.at_level("INFO"):
8290
operator.dry_run()
8391

84-
assert "Process will upload file from (SFTP) main_dir/test_object3.json" in caplog.text
85-
assert "as sponge-bob/test_object3.json" in caplog.text
86-
assert "Executing delete of" in caplog.text
92+
logged_messages = [call.args[0] for call in mock_info.call_args_list]
93+
assert "Dry run" in logged_messages
94+
assert "Process will upload file from (SFTP) %s to wasb://%s as %s" in logged_messages
8795

88-
assert not mock_wasb_hook.return_value.load_file.called
89-
assert not mock_sftp_hook.return_value.delete_file.called
96+
delete_log = "Executing delete of %s"
97+
if expect_delete_log:
98+
assert delete_log in logged_messages
99+
else:
100+
assert delete_log not in logged_messages
90101

91102
@mock.patch("airflow.providers.microsoft.azure.transfers.sftp_to_wasb.AIRFLOW_V_3_0_PLUS", False)
92103
def test_dry_run_raises_not_implemented(mock_version_tuple):

0 commit comments

Comments
 (0)