34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import unittest
|
|
|
|
from texas_holdem_replay.server import build_core_url, build_game_url
|
|
|
|
|
|
class ReplayServerTests(unittest.TestCase):
|
|
def test_build_game_url_from_base_and_game_id(self) -> None:
|
|
self.assertEqual(
|
|
build_game_url({"base_url": ["http://127.0.0.1:8000/"], "game_id": ["game 1"]}),
|
|
"http://127.0.0.1:8000/games/game%201",
|
|
)
|
|
|
|
def test_build_game_url_accepts_full_url(self) -> None:
|
|
self.assertEqual(
|
|
build_game_url({"url": ["https://example.test/games/demo"]}),
|
|
"https://example.test/games/demo",
|
|
)
|
|
|
|
def test_build_game_url_rejects_non_http_url(self) -> None:
|
|
with self.assertRaises(ValueError):
|
|
build_game_url({"url": ["file:///tmp/game.json"]})
|
|
|
|
def test_build_core_url_preserves_base_path(self) -> None:
|
|
self.assertEqual(
|
|
build_core_url("http://127.0.0.1:8000/api/", "/games/demo/hands/run"),
|
|
"http://127.0.0.1:8000/api/games/demo/hands/run",
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|