From ac286f4a72fdf9c57bdc6b64037a78da9950ee90 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Fri, 4 Sep 2026 04:00:34 +0900 Subject: [PATCH] chore: add metadata test --- tests/test_server_metadata.py | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tests/test_server_metadata.py diff --git a/tests/test_server_metadata.py b/tests/test_server_metadata.py new file mode 100644 index 0000000..bdde14b --- /dev/null +++ b/tests/test_server_metadata.py @@ -0,0 +1,45 @@ +import pytest +import re + +from dzgui.api.servers import Details, Record, get_details + + +@pytest.fixture +def details() -> Details: + """ + Static official server, metadata is expected to be invariate + """ + r = Record("85.190.157.111", 10400, 10401) + return get_details(r) + + +def test_invalid_server() -> None: + r = Record("127.0.0.1", 10400, 10401) + assert get_details(r) is None + + +@pytest.mark.parametrize("key, expect", [("day_accel", 2.3), ("night_accel", 6.8)]) +def test_time_accel(details, key, expect) -> None: + assert getattr(details, key) == expect + + +def test_gametime(details) -> None: + time_reg = r"^(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]$)" + match = re.match(time_reg, details.gametime) + assert match is not None + + +def test_metadata(details) -> None: + for row in details.data: + label, value = row + match label: + case "Password": + assert value == "Disabled" + case "Platform": + assert value == "Windows" + case "Battleye": + assert value == "Enabled" + case "Valve Anti-Cheat": + assert value == "Enabled" + case _: + pass