Add admin port support with other major refactorations #9
@@ -10,6 +10,7 @@ sys.path.insert(0, os.path.dirname(__file__))
|
||||
|
||||
from openttd import OpenTTDClient, OpenTTDAdminClient
|
||||
from openttd.protocol import OpenTTDProtocol, OpenTTDAdminProtocol
|
||||
import tests.test_e2e as test_e2e
|
||||
|
||||
# 1. Gather public functions dynamically at runtime using reflection
|
||||
classes = [OpenTTDClient, OpenTTDAdminClient, OpenTTDProtocol, OpenTTDAdminProtocol]
|
||||
@@ -48,7 +49,6 @@ for cls in classes:
|
||||
public_funcs[name] = has_params
|
||||
|
||||
# 2. Inspect E2E test module dynamically at runtime using reflection
|
||||
import tests.test_e2e as test_e2e
|
||||
|
||||
calls = {name: [] for name in public_funcs}
|
||||
|
||||
|
||||
@@ -253,7 +253,8 @@ class OpenTTDAdminProtocol(OpenTTDProtocol):
|
||||
updates = {}
|
||||
while True:
|
||||
has_more, data = read_uint8(data)
|
||||
if not has_more: break
|
||||
if not has_more:
|
||||
break
|
||||
ut, data = read_uint16(data)
|
||||
freqs, data = read_uint16(data)
|
||||
updates[ut] = freqs
|
||||
@@ -413,14 +414,19 @@ class OpenTTDAdminProtocol(OpenTTDProtocol):
|
||||
def receive_ServerCompanyEconomy(source, data):
|
||||
import struct
|
||||
cid, data = read_uint8(data)
|
||||
money = struct.unpack("<Q", data[:8])[0]; data = data[8:]
|
||||
loan = struct.unpack("<Q", data[:8])[0]; data = data[8:]
|
||||
income = struct.unpack("<q", data[:8])[0]; data = data[8:]
|
||||
money = struct.unpack("<Q", data[:8])[0]
|
||||
data = data[8:]
|
||||
loan = struct.unpack("<Q", data[:8])[0]
|
||||
data = data[8:]
|
||||
income = struct.unpack("<q", data[:8])[0]
|
||||
data = data[8:]
|
||||
delivered, data = read_uint16(data)
|
||||
val_lq = struct.unpack("<Q", data[:8])[0]; data = data[8:]
|
||||
val_lq = struct.unpack("<Q", data[:8])[0]
|
||||
data = data[8:]
|
||||
perf_lq, data = read_uint16(data)
|
||||
del_lq, data = read_uint16(data)
|
||||
val_pq = struct.unpack("<Q", data[:8])[0]; data = data[8:]
|
||||
val_pq = struct.unpack("<Q", data[:8])[0]
|
||||
data = data[8:]
|
||||
perf_pq, data = read_uint16(data)
|
||||
del_pq, _ = read_uint16(data)
|
||||
return {
|
||||
@@ -456,7 +462,7 @@ class OpenTTDAdminProtocol(OpenTTDProtocol):
|
||||
import json
|
||||
try:
|
||||
return {"data": json.loads(json_str)}
|
||||
except:
|
||||
except Exception:
|
||||
return {"raw_data": json_str}
|
||||
|
||||
@staticmethod
|
||||
|
||||
@@ -4,8 +4,6 @@ import pytest_asyncio
|
||||
import sys
|
||||
import os
|
||||
import random
|
||||
from unittest.mock import MagicMock, AsyncMock
|
||||
|
||||
# Add lib to path
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'lib'))
|
||||
|
||||
@@ -15,8 +13,7 @@ from openttd.protocol import (
|
||||
OpenTTDAdminProtocol,
|
||||
AdminUpdateType,
|
||||
AdminUpdateFrequency,
|
||||
PacketGameType,
|
||||
PacketAdminType
|
||||
PacketGameType
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user