Skip to content

Commit 0dfdc1b

Browse files
committed
Add new streaming success test case that expects 0 retries
Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 4e8370e commit 0dfdc1b

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

tests/streaming/test_grpc_stream_broadcaster.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,43 @@ async def test_streaming_success_retry_on_exhausted(
116116
]
117117

118118

119+
@pytest.mark.parametrize("retry_on_exhausted_stream", [False])
120+
async def test_streaming_success(
121+
ok_helper: streaming.GrpcStreamBroadcaster[
122+
int, str
123+
], # pylint: disable=redefined-outer-name
124+
no_retry: mock.MagicMock, # pylint: disable=redefined-outer-name
125+
receiver_ready_event: asyncio.Event, # pylint: disable=redefined-outer-name
126+
caplog: pytest.LogCaptureFixture,
127+
) -> None:
128+
"""Test streaming success."""
129+
caplog.set_level(logging.INFO)
130+
items: list[str] = []
131+
async with asyncio.timeout(1):
132+
receiver = ok_helper.new_receiver()
133+
receiver_ready_event.set()
134+
async for item in receiver:
135+
items.append(item)
136+
assert (
137+
no_retry.next_interval.call_count == 0
138+
), "next_interval should not be called when streaming is successful"
139+
140+
assert items == [
141+
"transformed_0",
142+
"transformed_1",
143+
"transformed_2",
144+
"transformed_3",
145+
"transformed_4",
146+
]
147+
assert caplog.record_tuples == [
148+
(
149+
"frequenz.client.base.streaming",
150+
logging.INFO,
151+
"test_helper: connection closed, stream exhausted",
152+
)
153+
]
154+
155+
119156
class _NamedMagicMock(mock.MagicMock):
120157
"""Mock with a name."""
121158

0 commit comments

Comments
 (0)