FIX: deck validator not checking both piles

This commit is contained in:
Brandon Nguyen
2026-07-16 00:20:31 -07:00
parent 216a6eed70
commit 2f1e6bd9a5
2 changed files with 7 additions and 3 deletions

View File

@@ -46,7 +46,8 @@ class DeckValidator:
self.deck_id = deck_dict.get("deckID")
self.deck_name = deck_dict.get("deckName", "Unknown Deck")
piles = deck_dict.get("piles") or {}
self.guids: List[str] = [str(g).lower() for g in (piles.get("deck") or [])]
pile_cards = piles.get("deck") or piles.get("CakePile") or []
self.guids: List[str] = [str(g).lower() for g in pile_cards]
self.owned_counts = owned_counts
self.manager = FormatManager()
if not card_loader.cards:

View File

@@ -21,8 +21,8 @@ def check(cond, label):
FAILURES.append(label)
def deck(guids, name="Test Deck"):
return {"deckID": str(uuid.uuid4()), "deckName": name, "piles": {"deck": list(guids)}}
def deck(guids, name="Test Deck", pile_name="deck"):
return {"deckID": str(uuid.uuid4()), "deckName": name, "piles": {pile_name: list(guids)}}
def failure_types(row):
@@ -74,6 +74,9 @@ def main():
check(set(rules.valid_format_names(legal)) == {"Modified", "Expanded", "Legacy", "Unlimited"}
or set(rules.valid_format_names(legal)) == {"Modified", "Expanded", "Unlimited"},
f"attr-10860 names sane: {rules.valid_format_names(legal)}")
client_legal = deck([swsh_basic.guid] * 4 + [water.guid] * 56, pile_name="CakePile")
rows = rules.validate_deck(client_legal, [std, exp, unl])
check(all(r["valid"] for r in rows), "client CakePile accepted as the main deck pile")
print("[2] deck size must be exactly 60")
for n, label in ((59, "59 cards"), (61, "61 cards")):