Add admin port support with other major refactorations
This commit is contained in:
@@ -77,8 +77,9 @@ async def test_client_error_handling():
|
||||
|
||||
client.shutdown_event.clear()
|
||||
await client.receive_ServerError(None, 10) # WrongPassword
|
||||
await client.receive_ServerError(None, 11) # NameInUse
|
||||
await client.receive_ServerError(None, 17) # Timeout
|
||||
await client.receive_ServerError(None, 9) # NameInUse
|
||||
await client.receive_ServerError(None, 11) # CompanyMismatch
|
||||
await client.receive_ServerError(None, 17) # TimeoutComputer
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_client_server_full_banned():
|
||||
@@ -165,3 +166,75 @@ async def test_client_full_handshake_flow():
|
||||
|
||||
client._transport.close()
|
||||
await client.quit()
|
||||
|
||||
|
||||
# --- Game Client Edge Cases & Callback Unit Tests ---
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_unit_client_connection_failure(server_config):
|
||||
client = OpenTTDClient(host=server_config["host"], port=9999)
|
||||
with pytest.raises(OSError):
|
||||
await client.connect()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_unit_client_already_joined_warning(server_config):
|
||||
client = OpenTTDClient(host=server_config["host"], port=server_config["game_port"])
|
||||
client.joined.set()
|
||||
await client.join_company(255)
|
||||
assert client.joined.is_set()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_unit_client_disconnect(server_config):
|
||||
client = OpenTTDClient(host=server_config["host"], port=server_config["game_port"])
|
||||
client.disconnect(None)
|
||||
assert client.shutdown_event.is_set()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_unit_client_receive_chat_no_callback(server_config):
|
||||
client = OpenTTDClient(host=server_config["host"], port=server_config["game_port"])
|
||||
client.on_chat = None
|
||||
await client.receive_ServerChat(None, 1, "hello")
|
||||
assert client.on_chat is None
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_unit_client_receive_chat_with_callback(server_config):
|
||||
client = OpenTTDClient(host=server_config["host"], port=server_config["game_port"])
|
||||
chats = []
|
||||
client.on_chat = lambda cid, msg: chats.append((cid, msg))
|
||||
await client.receive_ServerChat(None, 2, "world")
|
||||
assert chats == [(2, "world")]
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_unit_client_receive_auth_request_invalid_type(server_config):
|
||||
client = OpenTTDClient(host=server_config["host"], port=server_config["game_port"])
|
||||
await client.receive_ServerAuthenticationRequest(None, 2, b"")
|
||||
assert not client.encryption_enabled
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_unit_client_noop_callbacks(server_config):
|
||||
client = OpenTTDClient(host=server_config["host"], port=server_config["game_port"])
|
||||
client.connected(None)
|
||||
await client.receive_ServerUnused(None)
|
||||
await client.receive_ServerCompanyUpdate(None)
|
||||
await client.receive_ServerClientInfo(None)
|
||||
await client.receive_ServerSync(None)
|
||||
await client.receive_ServerClientJoined(None)
|
||||
await client.receive_ServerMapBegin(None)
|
||||
await client.receive_ServerMapSize(None)
|
||||
await client.receive_ServerMapData(None)
|
||||
await client.receive_ServerConfigurationUpdate(None)
|
||||
await client.receive_ServerExternalChat(None)
|
||||
await client.receive_ServerCommand(None)
|
||||
await client.receive_ServerFull(None)
|
||||
await client.receive_ServerBanned(None)
|
||||
await client.receive_ClientAck(None)
|
||||
await client.receive_ClientIdentify(None)
|
||||
assert not client.shutdown_event.is_set()
|
||||
assert not client.joined.is_set()
|
||||
|
||||
|
||||
def test_unit_exclude_call_check_decorator():
|
||||
from openttd import exclude_call_check
|
||||
@exclude_call_check
|
||||
def dummy(): pass
|
||||
assert dummy.__exclude_call_check__ is True
|
||||
|
||||
Reference in New Issue
Block a user