async def test_on_connect_restore(tmpdir, valid_session: bool): client = NetworkClient(Path(tmpdir), {"server_address": "http://*****:*****@30VtI6Ba{' }} else: call_result = InvalidSession().as_json client.sio = MagicMock() client.sio.call = AsyncMock(return_value=call_result) # Run await client.on_connect() # Assert client.sio.call.assert_awaited_once_with("restore_user_session", (b"foo", None), namespace=None, timeout=30) if valid_session: assert client.connection_state == ConnectionState.Connected assert session_data_path.read_bytes() == b"new_bytes" else: assert client.connection_state == ConnectionState.ConnectedNotLogged assert not session_data_path.is_file()
async def test_emit_with_result_timeout(client: NetworkClient): # Setup client._connection_state = ConnectionState.Connected client.sio = AsyncMock() client.sio.call.side_effect = socketio.exceptions.TimeoutError() # Run with pytest.raises(RequestTimeout, match="Timeout after "): await client._emit_with_result("test_event")
async def test_connect_to_server(tmpdir): # Setup client = NetworkClient(Path(tmpdir), { "server_address": "http://localhost:5000", "socketio_path": "/path" }) client.sio = MagicMock() client.sio.connect = AsyncMock() client.sio.connected = False # Run await client.connect_to_server() # Assert assert client.connection_state == ConnectionState.Connecting client.sio.connect.assert_awaited_once_with( "http://localhost:5000", socketio_path="/path", headers={"X-Randovania-Version": randovania.VERSION})
async def test_connect_to_server(tmpdir): # Setup client = NetworkClient(Path(tmpdir), {"server_address": "http://localhost:5000", "socketio_path": "/path"}) async def connect(*args, **kwargs): client._waiting_for_on_connect.set_result(True) client.sio = MagicMock() client.sio.connect = AsyncMock(side_effect=connect) client.sio.connected = False # Run await client.connect_to_server() # Assert assert client.connection_state == ConnectionState.Connecting client.sio.connect.assert_awaited_once_with("http://localhost:5000", socketio_path="/path", transports=["websocket"], headers={"X-Randovania-Version": randovania.VERSION})