telltale / tests /test_cards.py
smpdl
Deploy ZeroGPU Space snapshot
60daaa6
Raw
History Blame Contribute Delete
942 Bytes
import pytest
from telltale.game.cards import Card, CardError, Deck
def test_deck_has_52_unique_cards():
deck = Deck()
assert len(deck) == 52
assert len(set(deck.cards)) == 52
def test_same_seed_creates_same_order():
assert Deck.shuffled(seed=7).to_strings() == Deck.shuffled(seed=7).to_strings()
def test_different_seeds_usually_create_different_order():
assert Deck.shuffled(seed=7).to_strings() != Deck.shuffled(seed=8).to_strings()
def test_drawing_reduces_deck_size():
deck = Deck()
drawn = deck.draw()
assert isinstance(drawn, Card)
assert len(deck) == 51
@pytest.mark.parametrize("value", ["1h", "Acx", "TT", ""])
def test_invalid_card_strings_fail_validation(value):
with pytest.raises(CardError):
Card.parse(value)
def test_drawing_beyond_deck_length_raises_clear_error():
deck = Deck()
with pytest.raises(CardError, match="cannot draw"):
deck.draw(53)