f14d780f29
Build and Push Docker Container / build-and-push (push) Successful in 7m53s
- Stream compact live replay updates across local and clustered dashboards. - Render responsive snake bodies as SVG paths with aligned custom icons. - Add cache-busted assets, replay fallback routes, and live-follow playback. - Support PostgreSQL benchmark sampling and idempotent SQLite migration. - Add dry-run cleanup for old low-quality PostgreSQL replay payloads. - Reward safe perimeter lanes and bump Prism to version 1.5.0. - Add backend, migration, dashboard, and perimeter regression coverage.
31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import unittest
|
|
|
|
from server.database.benchmark_states import _build_state, is_postgresql_source
|
|
|
|
class TestBenchmarkStates(unittest.TestCase):
|
|
def test_detects_postgresql_dsn(self):
|
|
self.assertTrue(is_postgresql_source("postgresql://user:pass@example.com/db"))
|
|
self.assertTrue(is_postgresql_source("postgres://user:pass@example.com/db"))
|
|
self.assertFalse(is_postgresql_source("/tmp/gameplay.sqlite3"))
|
|
|
|
def test_builds_normalized_state_from_postgresql_json_values(self):
|
|
row = (
|
|
1, {}, {}, [{"x": 5, "y": 5}], [], "you-id", "You", 11, 11,
|
|
"game-id", "league", "standard", "standard", "v1", 7,
|
|
)
|
|
snake_rows = [
|
|
("you-id", "You", 90, 3, 1, 2, [{"x": 1, "y": 2}], {"head": "default"}),
|
|
]
|
|
|
|
state = _build_state(row, snake_rows)
|
|
|
|
self.assertIsNotNone(state)
|
|
board, metadata = state
|
|
self.assertEqual(board["food"], [{"x": 5, "y": 5}])
|
|
self.assertEqual(board["snakes"][0]["id"], "you-id")
|
|
self.assertEqual(metadata["you"]["id"], "you-id")
|
|
self.assertEqual(metadata["turn"], 7)
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|