mirror of
https://github.com/mwisnowski/mtg_python_deckbuilder.git
synced 2025-09-22 04:50:46 +02:00
60 lines
1.9 KiB
Python
60 lines
1.9 KiB
Python
from __future__ import annotations
|
|
|
|
from code.web.services.build_utils import start_ctx_from_session, owned_set, owned_names
|
|
|
|
|
|
def _fake_session(**kw):
|
|
# Provide minimal session keys used by start_ctx_from_session
|
|
base = {
|
|
"commander": "Cmdr",
|
|
"tags": ["Aggro", "Spells"],
|
|
"bracket": 3,
|
|
"ideals": {"creatures": 25},
|
|
"tag_mode": "AND",
|
|
"use_owned_only": False,
|
|
"prefer_owned": False,
|
|
"locks": [],
|
|
"custom_export_base": "TestDeck",
|
|
"multi_copy": None,
|
|
"prefer_combos": False,
|
|
"combo_target_count": 2,
|
|
"combo_balance": "mix",
|
|
}
|
|
base.update(kw)
|
|
return base
|
|
|
|
|
|
def test_owned_helpers_do_not_crash():
|
|
# These reflect over the owned store; they should be resilient
|
|
s = owned_set()
|
|
assert isinstance(s, set)
|
|
n = owned_names()
|
|
assert isinstance(n, list)
|
|
|
|
|
|
def test_start_ctx_from_session_minimal(monkeypatch):
|
|
# Avoid integration dependency by faking orchestrator.start_build_ctx
|
|
calls = {}
|
|
def _fake_start_build_ctx(**kwargs):
|
|
calls.update(kwargs)
|
|
return {"builder": object(), "stages": [], "idx": 0, "last_visible_idx": 0}
|
|
import code.web.services.build_utils as bu
|
|
monkeypatch.setattr(bu.orch, "start_build_ctx", _fake_start_build_ctx)
|
|
|
|
sess = _fake_session()
|
|
ctx = start_ctx_from_session(sess, set_on_session=False)
|
|
assert isinstance(ctx, dict)
|
|
assert "builder" in ctx
|
|
assert "stages" in ctx
|
|
assert "idx" in ctx
|
|
|
|
|
|
def test_start_ctx_from_session_sets_on_session(monkeypatch):
|
|
def _fake_start_build_ctx(**kwargs):
|
|
return {"builder": object(), "stages": [], "idx": 0}
|
|
import code.web.services.build_utils as bu
|
|
monkeypatch.setattr(bu.orch, "start_build_ctx", _fake_start_build_ctx)
|
|
|
|
sess = _fake_session()
|
|
ctx = start_ctx_from_session(sess, set_on_session=True)
|
|
assert sess.get("build_ctx") == ctx
|