mtg_python_deckbuilder/code/tests/test_random_full_build_api.py

25 lines
920 B
Python

from __future__ import annotations
import importlib
import os
from starlette.testclient import TestClient
def test_random_full_build_api_returns_deck_and_permalink(monkeypatch):
# Enable Random Modes and use tiny dataset
monkeypatch.setenv("RANDOM_MODES", "1")
monkeypatch.setenv("CSV_FILES_DIR", os.path.join("csv_files", "testdata"))
app_module = importlib.import_module('code.web.app')
client = TestClient(app_module.app)
payload = {"seed": 4242, "theme": "Goblin Kindred"}
r = client.post('/api/random_full_build', json=payload)
assert r.status_code == 200
data = r.json()
assert data["seed"] == 4242
assert isinstance(data.get("commander"), str) and data["commander"]
assert isinstance(data.get("decklist"), list)
# Permalink present and shaped like /build/from?state=...
assert data.get("permalink")
assert "/build/from?state=" in data["permalink"]