mirror of
https://github.com/mwisnowski/mtg_python_deckbuilder.git
synced 2025-12-16 15:40:12 +01:00
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
from types import MethodType
|
|
|
|
from deck_builder.builder import DeckBuilder
|
|
|
|
|
|
def _builder_with_forest() -> DeckBuilder:
|
|
builder = DeckBuilder(output_func=lambda *_: None, input_func=lambda *_: "", headless=True)
|
|
builder.card_library = {
|
|
"Forest": {"Card Name": "Forest", "Card Type": "Land", "Count": 5},
|
|
}
|
|
return builder
|
|
|
|
|
|
def _stub_modal_matrix(builder: DeckBuilder) -> None:
|
|
def fake_matrix(self: DeckBuilder):
|
|
return {
|
|
"Bala Ged Recovery": {"G": 1, "_dfc_counts_as_extra": True},
|
|
"Forest": {"G": 1},
|
|
}
|
|
|
|
builder._compute_color_source_matrix = MethodType(fake_matrix, builder)
|
|
|
|
|
|
def test_modal_dfc_swaps_basic_when_enabled():
|
|
builder = _builder_with_forest()
|
|
builder.swap_mdfc_basics = True
|
|
_stub_modal_matrix(builder)
|
|
|
|
builder.add_card("Bala Ged Recovery", card_type="Instant")
|
|
|
|
assert builder.card_library["Forest"]["Count"] == 4
|
|
assert "Bala Ged Recovery" in builder.card_library
|
|
|
|
|
|
def test_modal_dfc_does_not_swap_when_disabled():
|
|
builder = _builder_with_forest()
|
|
builder.swap_mdfc_basics = False
|
|
_stub_modal_matrix(builder)
|
|
|
|
builder.add_card("Bala Ged Recovery", card_type="Instant")
|
|
|
|
assert builder.card_library["Forest"]["Count"] == 5
|
|
assert "Bala Ged Recovery" in builder.card_library
|