@@ -63,8 +63,8 @@ def stream(self):
6363 yield stream
6464 stream .close ()
6565
66- @pytest . fixture
67- async def writer_and_stream ( self , stream , request ) -> WriterWithMockedStream :
66+ @staticmethod
67+ async def get_started_writer ( stream , * args , ** kwargs ) -> WriterAsyncIOStream :
6868 stream .from_server .put_nowait (
6969 StreamWriteMessage .InitResponse (
7070 last_seq_no = 4 ,
@@ -75,9 +75,7 @@ async def writer_and_stream(self, stream, request) -> WriterWithMockedStream:
7575 )
7676 )
7777
78- params = getattr (request , "param" , ())
79- writer = WriterAsyncIOStream (* params )
80-
78+ writer = WriterAsyncIOStream (* args , ** kwargs )
8179 await writer ._start (
8280 stream ,
8381 init_message = StreamWriteMessage .InitRequest (
@@ -91,6 +89,11 @@ async def writer_and_stream(self, stream, request) -> WriterWithMockedStream:
9189 ),
9290 )
9391 await stream .from_client .get ()
92+ return writer
93+
94+ @pytest .fixture
95+ async def writer_and_stream (self , stream ) -> WriterWithMockedStream :
96+ writer = await self .get_started_writer (stream )
9497
9598 yield TestWriterAsyncIOStream .WriterWithMockedStream (
9699 stream = stream ,
@@ -164,25 +167,23 @@ async def test_write_a_message(self, writer_and_stream: WriterWithMockedStream):
164167 sent_message = await writer_and_stream .stream .from_client .get ()
165168 assert expected_message == sent_message
166169
167- @ pytest . mark . parametrize (
168- "writer_and_stream" , [( 0.1 , lambda : "foo-bar" )], indirect = True
169- )
170- async def test_update_token ( self , writer_and_stream : WriterWithMockedStream ):
171- assert writer_and_stream . stream .from_client .empty ()
170+ async def test_update_token ( self , stream : StreamMock ):
171+ writer = await self . get_started_writer (
172+ stream , update_token_interval = 0.1 , get_token_function = lambda : "foo-bar"
173+ )
174+ assert stream .from_client .empty ()
172175
173176 expected = StreamWriteMessage .FromClient (UpdateTokenRequest (token = "foo-bar" ))
174- got = await wait_for_fast (writer_and_stream . stream .from_client .get ())
177+ got = await wait_for_fast (stream .from_client .get ())
175178 assert expected == got , "send update token request"
176179
177180 await asyncio .sleep (0.2 )
178- assert (
179- writer_and_stream .stream .from_client .empty ()
180- ), "no answer - no new update request"
181+ assert stream .from_client .empty (), "no answer - no new update request"
181182
182- await writer_and_stream . stream .from_server .put (UpdateTokenResponse ())
183- receive_task = asyncio .create_task (writer_and_stream . writer .receive ())
183+ await stream .from_server .put (UpdateTokenResponse ())
184+ receive_task = asyncio .create_task (writer .receive ())
184185
185- got = await wait_for_fast (writer_and_stream . stream .from_client .get ())
186+ got = await wait_for_fast (stream .from_client .get ())
186187 assert expected == got
187188
188189 receive_task .cancel ()
0 commit comments