uwarp-space 2026-02-17
Corporation persistence corrected, 24 failing tests fixed by updating asyncio pattern, and test infrastructure reorganized
291 files · 3,508+ · 1,797-

Corporation persistence fixes

2 files changed
  • corporation.py Corp IDs corrected to 1-indexed; mark_dirty calls added; model_dump used correctly
  • models.py Corp binary parser: correct 110-byte format field layout
  • Corp IDs are now correctly 1-indexed instead of 0-indexed decouple internal
    1 file
    • corporation.py
  • Added mark_dirty calls so corp changes are flushed to storage instantiate internal
    1 file
    • corporation.py
  • Fixed serialization: model_dump() used correctly for corp data remediate internal
    1 file
    • corporation.py
  • Fixed corp binary parser: correct 110-byte format field layout remediate errata
    1 file
    • models.py

TWGS round-trip parser fixes

1 file changed
  • sqlite.py Two parser bugs fixed that caused data corruption on load/save
  • Fixed two bugs in the TWGS round-trip parser that caused data corruption on load/save remediate internal
    1 file
    • sqlite.py
  • Fixed twgs_roundtrip test path: parents[3]parents[2] (wrong directory depth) qualify internal
    1 file
    • test_alias_persistence.py

Test suite — 24 failing tests fixed

4 files changed
  • admin.py Engine commands updated for new asyncio pattern
  • game_loop.py Session game loop updated for new asyncio pattern
  • conftest.py Replaced deprecated asyncio event loop fixture; session-scoped _proof_player_id fixture
  • test_game_state.py Tests updated to use pytest-asyncio current recommended approach
  • Replaced deprecated asyncio.get_event_loop() / custom event loop fixture pattern with pytest-asyncio’s current recommended approach across 24 test files qualify behavioral
    2 files
    • conftest.py
    • test_game_state.py
  • Fixed _proof_player_id state sharing bug: switched to session-scoped fixture to avoid cross-test contamination qualify internal
    1 file
    • conftest.py

Test infrastructure — seed players and fixtures

3 files changed
  • seed_players.py Canonical seed player generator script (13 players)
  • constants.py seeds/players.yml registered as sole source of truth for uwarp/tim credentials
  • test_game_state.py GameD test fixtures updated; universe game.db updated
  • Added scripts/seed_players.py to generate canonical seed players instantiate internal
    1 file
    • seed_players.py
  • Expanded seed roster to 13 players: uwarp/tim sysops + 11 varied characters (traders, combatants, corp members) decouple internal
    1 file
    • seed_players.py
  • seeds/players.yml is now the sole source of truth for uwarp/tim credentials decouple internal
    1 file
    • constants.py
  • Added GameD test fixtures and updated universe game.db qualify internal
    1 file
    • test_game_state.py
  • Removed old screenshots committed during testing qualify internal
    1 file
    • screenshots

Tests directory reorganization

4 files changed
  • test_game_state_sqlite.py Stardock e2e tests organized into per-facility files
  • test_alias_persistence.py Storage tests consolidated
  • test_mercenary_expiration.py Storage tests consolidated
  • test_menu_system.py WebSocket test helpers consolidated into ws_helpers module
  • Reorganized tests/ structure: fixed e2e naming conventions, consolidated scattered test directories qualify internal
    1 file
    • conftest.py
  • Reorganized Stardock e2e tests into per-facility files (tavern, police, underground) qualify internal
    1 file
    • test_game_state_sqlite.py
  • Consolidated duplicated WebSocket test helpers into shared ws_helpers module qualify internal
    1 file
    • test_menu_system.py
  • Fixed warnings, hardcoded paths, and stale xfail markers remediate internal
    1 file
    • conftest.py

Merge: evaluate-uwarp-rename PR

1 file changed
  • __init__.py game_loop import corrected after merge
  • Merged PR #1 (claude/evaluate-uwarp-rename-W21IW) — the branch evaluating the UWARP rename from TWERK — into main decouple internal
    1 file
    • __init__.py
  • Resolved merge issues: corrected game_loop import and skipped test with hardcoded path qualify internal
    1 file
    • __init__.py

Admin load fix

1 file changed
  • service.py is_admin flag now loaded from SQLite on game startup
  • Fixed is_admin flag never being loaded from SQLite on game startup remediate behavioral
    1 file
    • service.py