Skip to content

Commit

Permalink
Fixup: add events to TeeStream tests
Browse files Browse the repository at this point in the history
  • Loading branch information
asmacdo committed May 6, 2024
1 parent 4750892 commit 1ae2753
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions test/test_prepare_outputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,32 @@
from duct import prepare_outputs


def test_prepare_outputs_all_stdout():
@patch("duct.threading.Event")
def test_prepare_outputs_all_stdout(mock_event):
output_prefix = "test_outputs_"
with patch("duct.TeeStream") as mock_tee_stream, patch(
"builtins.open", new_callable=MagicMock
) as mock_open:
mock_tee_stream.return_value.start = MagicMock()
stdout, stderr = prepare_outputs("all", "stdout", output_prefix)
mock_tee_stream.assert_called_with(f"{output_prefix}stdout")
mock_tee_stream.assert_called_with(
f"{output_prefix}stdout", mock_event.return_value
)
assert stdout == mock_tee_stream.return_value
assert stderr == mock_open.return_value


def test_prepare_outputs_all_stderr():
@patch("duct.threading.Event")
def test_prepare_outputs_all_stderr(mock_event):
output_prefix = "test_outputs_"
with patch("duct.TeeStream") as mock_tee_stream, patch(
"builtins.open", new_callable=MagicMock
) as mock_open:
mock_tee_stream.return_value.start = MagicMock()
stdout, stderr = prepare_outputs("all", "stderr", output_prefix)
mock_tee_stream.assert_called_with(f"{output_prefix}stderr")
mock_tee_stream.assert_called_with(
f"{output_prefix}stderr", mock_event.return_value
)
assert stdout == mock_open.return_value
assert stderr == mock_tee_stream.return_value

Expand Down Expand Up @@ -54,15 +60,16 @@ def test_prepare_outputs_none_stderr():
assert stdout == subprocess.DEVNULL


def test_prepare_outputs_all_all():
@patch("duct.threading.Event")
def test_prepare_outputs_all_all(mock_event):
output_prefix = "test_outputs_"
with patch("duct.TeeStream") as mock_tee_stream:
mock_tee_stream.return_value.start = MagicMock()
stdout, stderr = prepare_outputs("all", "all", output_prefix)
assert stdout == mock_tee_stream.return_value
assert stderr == mock_tee_stream.return_value
calls = [
call(f"{output_prefix}stdout"),
call(f"{output_prefix}stderr"),
call(f"{output_prefix}stdout", mock_event.return_value),
call(f"{output_prefix}stderr", mock_event.return_value),
]
mock_tee_stream.assert_has_calls(calls, any_order=True)

0 comments on commit 1ae2753

Please sign in to comment.