Externalize autochess game data
check / local-gate (push) Failing after 58s

This commit is contained in:
JWeBot Contributors
2026-10-15 18:37:41 +08:00
parent 5125b827c0
commit 2bb2effc04
38 changed files with 3562 additions and 524 deletions
+30
View File
@@ -6,6 +6,7 @@ import json
import re
import tempfile
import unittest
from importlib import resources
from pathlib import Path
from test_jwebot_edge import MODULE, config
@@ -161,6 +162,35 @@ class Release067AutochessTests(unittest.TestCase):
self.assertEqual(new_state["season_number"], 2)
self.assertEqual(new_state["status"], "registration")
def test_autochess_data_files_are_externalized_and_loaded(self):
data_root = resources.files(AUTOCHESS.__package__).joinpath(
AUTOCHESS.DATA_ROOT
)
payloads = {}
for filename in AUTOCHESS.DATA_FILES:
path = data_root.joinpath(filename)
self.assertTrue(path.is_file(), filename)
payload = json.loads(path.read_text(encoding="utf-8"))
self.assertEqual(payload["schema_version"], 1)
payloads[filename] = payload
self.assertEqual(
len(payloads["players.json"]["players"]),
len(AUTOCHESS.PLAYER_POOL),
)
self.assertEqual(
len(payloads["coaches.json"]["coaches"]),
len(AUTOCHESS.COACH_POOL),
)
narrative_count = sum(
len(items)
for items in payloads["narratives.json"]["fragments"].values()
)
self.assertEqual(narrative_count, AUTOCHESS._narrative_inventory_size())
self.assertGreaterEqual(narrative_count, 120)
self.assertEqual(AUTOCHESS.MATCH_BEST_OF["group"], 3)
self.assertEqual(AUTOCHESS.MATCH_BEST_OF["final"], 5)
if __name__ == "__main__":
unittest.main()