맥락: 클래식 포트를 Python/Cython 구현과 pygame GUI 중심으로 정리한다. 변경: Rust 크레이트, proto 계약, Rust backend shim, 패리티 테스트를 삭제하고 문서와 backend factory를 Python 전용으로 갱신했다. 확인: uv run pre-commit run --all-files; uv run pytest tests/games/classic; uv run lost-cities-classic-gui --help
34 lines
795 B
Python
34 lines
795 B
Python
from __future__ import annotations
|
|
|
|
import pytest
|
|
|
|
from coolrl_lost_cities.games.classic import pygame_pvp
|
|
|
|
|
|
def test_gui_argparser_accepts_classic_options() -> None:
|
|
args = pygame_pvp.build_argparser().parse_args(
|
|
[
|
|
"--mode",
|
|
"pvc",
|
|
"--bot",
|
|
"safe-heuristic",
|
|
"--seed",
|
|
"7",
|
|
"--width",
|
|
"1024",
|
|
"--height",
|
|
"768",
|
|
]
|
|
)
|
|
|
|
assert args.mode == "pvc"
|
|
assert args.bot == "safe-heuristic"
|
|
assert args.seed == 7
|
|
assert args.width == 1024
|
|
assert args.height == 768
|
|
|
|
|
|
def test_gui_argparser_rejects_removed_backend_option() -> None:
|
|
with pytest.raises(SystemExit):
|
|
pygame_pvp.build_argparser().parse_args(["--backend", "native"])
|