Download tests/test_server_admin_config.py from Erinaldordso/Minecraft-Friends-AI-ZeroGPU: direct link, hf CLI and curl.
- Browser
- Download file 2.88 kB
-
https://huggingface.co/spaces/Erinaldordso/Minecraft-Friends-AI-ZeroGPU/resolve/main/tests/test_server_admin_config.py
- Command line
-
hf download hf://spaces/Erinaldordso/Minecraft-Friends-AI-ZeroGPU/tests/test_server_admin_config.py
-
curl -L -o test_server_admin_config.py https://huggingface.co/spaces/Erinaldordso/Minecraft-Friends-AI-ZeroGPU/resolve/main/tests/test_server_admin_config.py
2.88 kB
| import json | |
| import tempfile | |
| from pathlib import Path | |
| import minecraft_stack as mc | |
| def test_operator_seed_preserves_other_operators(): | |
| with tempfile.TemporaryDirectory() as tmp: | |
| path = Path(tmp) / "ops.json" | |
| other = {"uuid": "other", "name": "ExistingAdmin", "level": 3, "bypassesPlayerLimit": False} | |
| path.write_text(json.dumps([other]), encoding="utf-8") | |
| mc._ensure_admin_operator(path, "IffyBinkie6134") | |
| mc._ensure_admin_operator(path, "IffyBinkie6134") | |
| entries = json.loads(path.read_text(encoding="utf-8")) | |
| assert entries[0] == other | |
| assert len(entries) == 2 | |
| assert entries[1] == { | |
| "uuid": mc._offline_player_uuid("IffyBinkie6134"), | |
| "name": "IffyBinkie6134", "level": 4, "bypassesPlayerLimit": True, | |
| } | |
| try: | |
| mc._ensure_admin_operator(path, "bad name; op someone") | |
| except ValueError: | |
| pass | |
| else: | |
| raise AssertionError("invalid username accepted") | |
| assert json.loads(path.read_text(encoding="utf-8")) == entries | |
| def test_status_reports_real_configured_limits_and_operator(): | |
| with tempfile.TemporaryDirectory() as tmp: | |
| base = Path(tmp) | |
| old = (mc.JAVA_DIR, mc.RELAY_DIR, mc.WORLD_DIR, mc.LOG_PATH) | |
| try: | |
| mc.JAVA_DIR, mc.RELAY_DIR = base / "java", base / "relay" | |
| mc.WORLD_DIR, mc.LOG_PATH = base / "world", base / "stack.log" | |
| mc.JAVA_DIR.mkdir() | |
| mc.RELAY_DIR.mkdir() | |
| mc.WORLD_DIR.mkdir() | |
| (mc.JAVA_DIR / "server.properties").write_text("max-players=100\n", encoding="utf-8") | |
| (mc.RELAY_DIR / "config.json").write_text('{"max_players":100}', encoding="utf-8") | |
| mc._ensure_admin_operator(mc.JAVA_DIR / "ops.json", mc.ADMIN_USERNAME) | |
| status = mc.MinecraftStack().status() | |
| assert status["player_limit"] == {"java": 100, "xbox_friends": 100} | |
| assert status["world_profile"] == "minecraft:normal" | |
| assert status["world_surface_y"] == 64 | |
| assert status["admin_operator"] is True | |
| assert status["admin_player_file_exists"] is False | |
| (mc.WORLD_DIR / "playerdata").mkdir() | |
| (mc.WORLD_DIR / "playerdata" / f"{mc._offline_player_uuid(mc.ADMIN_USERNAME)}.dat").write_bytes(b"saved") | |
| assert mc.MinecraftStack().status()["admin_player_file_exists"] is True | |
| (mc.JAVA_DIR / "ops.json").write_text("[]", encoding="utf-8") | |
| assert mc.MinecraftStack().status()["admin_operator"] is False | |
| finally: | |
| mc.JAVA_DIR, mc.RELAY_DIR, mc.WORLD_DIR, mc.LOG_PATH = old | |
| if __name__ == "__main__": | |
| test_operator_seed_preserves_other_operators() | |
| test_status_reports_real_configured_limits_and_operator() | |
| print("PASS player limit and persistent operator seed") | |