55from __future__ import annotations
66
77import pathlib
8- import platform
98import random
109import string
1110from collections .abc import Callable
3433from tests .mockliveserver .fixture import MockLiveServerInterface
3534
3635
37- # TODO(nm): Remove when stable
38- if platform .system () == "Windows" :
39- pytest .skip (reason = "Skip on Windows due to flakiness" , allow_module_level = True )
40-
41-
4236def test_live_connection_refused (
4337 test_api_key : str ,
4438) -> None :
@@ -439,6 +433,10 @@ async def test_live_start(
439433 schema = Schema .MBO ,
440434 )
441435
436+ _ = await mock_live_server .wait_for_message_of_type (
437+ message_type = gateway .SubscriptionRequest ,
438+ )
439+
442440 assert live_client .is_connected () is True
443441
444442 # Act
@@ -465,14 +463,12 @@ async def test_live_start_twice(
465463 schema = Schema .MBO ,
466464 )
467465
468- # Act
469- live_client .start ()
470-
471466 _ = await mock_live_server .wait_for_message_of_type (
472- message_type = gateway .SessionStart ,
467+ message_type = gateway .AuthenticationRequest ,
473468 )
474469
475- # Assert
470+ # Act, Assert
471+ live_client .start ()
476472 with pytest .raises (ValueError ):
477473 live_client .start ()
478474
@@ -989,6 +985,7 @@ async def test_live_wait_for_close_timeout(
989985 live_client .terminate .assert_called_once () # type: ignore
990986
991987
988+ @pytest .mark .skip ()
992989@pytest .mark .usefixtures ("mock_live_server" )
993990async def test_live_wait_for_close_timeout_stream (
994991 live_client : client .Live ,
@@ -1093,6 +1090,7 @@ def test_live_add_stream_path_directory(
10931090
10941091async def test_live_async_iteration (
10951092 live_client : client .Live ,
1093+ mock_live_server : MockLiveServerInterface ,
10961094) -> None :
10971095 """
10981096 Test async-iteration of DBN records.
@@ -1107,6 +1105,10 @@ async def test_live_async_iteration(
11071105
11081106 records : list [DBNRecord ] = []
11091107
1108+ _ = await mock_live_server .wait_for_message_of_type (
1109+ message_type = gateway .SubscriptionRequest ,
1110+ )
1111+
11101112 # Act
11111113 async for record in live_client :
11121114 records .append (record )
@@ -1122,6 +1124,7 @@ async def test_live_async_iteration(
11221124async def test_live_async_iteration_backpressure (
11231125 monkeypatch : pytest .MonkeyPatch ,
11241126 live_client : client .Live ,
1127+ mock_live_server : MockLiveServerInterface ,
11251128) -> None :
11261129 """
11271130 Test that a full queue disables reading on the transport but will resume it
@@ -1143,6 +1146,10 @@ async def test_live_async_iteration_backpressure(
11431146 pause_mock := MagicMock (),
11441147 )
11451148
1149+ _ = await mock_live_server .wait_for_message_of_type (
1150+ message_type = gateway .SubscriptionRequest ,
1151+ )
1152+
11461153 # Act
11471154 live_it = iter (live_client )
11481155 await live_client .wait_for_close ()
@@ -1160,6 +1167,7 @@ async def test_live_async_iteration_dropped(
11601167 monkeypatch : pytest .MonkeyPatch ,
11611168 live_client : client .Live ,
11621169 test_api_key : str ,
1170+ mock_live_server : MockLiveServerInterface ,
11631171) -> None :
11641172 """
11651173 Test that an artificially small queue size will not drop messages when
@@ -1181,6 +1189,10 @@ async def test_live_async_iteration_dropped(
11811189 pause_mock := MagicMock (),
11821190 )
11831191
1192+ _ = await mock_live_server .wait_for_message_of_type (
1193+ message_type = gateway .SubscriptionRequest ,
1194+ )
1195+
11841196 # Act
11851197 live_it = iter (live_client )
11861198 await live_client .wait_for_close ()
@@ -1196,6 +1208,7 @@ async def test_live_async_iteration_dropped(
11961208
11971209async def test_live_async_iteration_stop (
11981210 live_client : client .Live ,
1211+ mock_live_server : MockLiveServerInterface ,
11991212) -> None :
12001213 """
12011214 Test that stopping in the middle of iteration does not prevent iterating
@@ -1208,8 +1221,13 @@ async def test_live_async_iteration_stop(
12081221 stype_in = SType .RAW_SYMBOL ,
12091222 symbols = "TEST" ,
12101223 )
1224+
12111225 records = []
12121226
1227+ _ = await mock_live_server .wait_for_message_of_type (
1228+ message_type = gateway .SubscriptionRequest ,
1229+ )
1230+
12131231 # Act
12141232 async for record in live_client :
12151233 records .append (record )
@@ -1220,8 +1238,9 @@ async def test_live_async_iteration_stop(
12201238 assert live_client ._session ._dbn_queue .empty ()
12211239
12221240
1223- def test_live_sync_iteration (
1241+ async def test_live_sync_iteration (
12241242 live_client : client .Live ,
1243+ mock_live_server : MockLiveServerInterface ,
12251244) -> None :
12261245 """
12271246 Test synchronous iteration of DBN records.
@@ -1233,8 +1252,13 @@ def test_live_sync_iteration(
12331252 stype_in = SType .RAW_SYMBOL ,
12341253 symbols = "TEST" ,
12351254 )
1255+
12361256 records = []
12371257
1258+ _ = await mock_live_server .wait_for_message_of_type (
1259+ message_type = gateway .SubscriptionRequest ,
1260+ )
1261+
12381262 # Act
12391263 for record in live_client :
12401264 records .append (record )
@@ -1505,6 +1529,7 @@ def test_live_disconnect(
15051529
15061530async def test_live_terminate (
15071531 live_client : client .Live ,
1532+ mock_live_server : MockLiveServerInterface ,
15081533) -> None :
15091534 """
15101535 Test that terminate closes the connection.
@@ -1517,6 +1542,10 @@ async def test_live_terminate(
15171542 symbols = "TEST" ,
15181543 )
15191544
1545+ _ = await mock_live_server .wait_for_message_of_type (
1546+ message_type = gateway .SubscriptionRequest ,
1547+ )
1548+
15201549 # Act
15211550 live_client .terminate ()
15221551 await live_client .wait_for_close ()
@@ -1531,6 +1560,7 @@ async def test_live_terminate(
15311560)
15321561async def test_live_iteration_with_reuse (
15331562 live_client : client .Live ,
1563+ mock_live_server : MockLiveServerInterface ,
15341564 test_data_path : Callable [[Dataset , Schema ], pathlib .Path ],
15351565 schema : Schema ,
15361566) -> None :
@@ -1548,6 +1578,10 @@ async def test_live_iteration_with_reuse(
15481578 symbols = "TEST" ,
15491579 )
15501580
1581+ _ = await mock_live_server .wait_for_message_of_type (
1582+ message_type = gateway .SubscriptionRequest ,
1583+ )
1584+
15511585 assert live_client .is_connected ()
15521586 assert live_client .dataset == Dataset .GLBX_MDP3
15531587
0 commit comments