53 lines
1.2 KiB
Python
53 lines
1.2 KiB
Python
import pytest
|
|
|
|
from pyjack.card import Card
|
|
|
|
|
|
@pytest.fixture
|
|
def cards():
|
|
cards = [
|
|
Card("diamonds", "2"),
|
|
Card("hearts", "A"),
|
|
Card("clubs", "9"),
|
|
Card("spades", "Q"),
|
|
]
|
|
return cards
|
|
|
|
|
|
@pytest.fixture
|
|
def expected_values():
|
|
values = [2, 11, 9, 10]
|
|
return values
|
|
|
|
|
|
@pytest.fixture
|
|
def expected_strings():
|
|
strings = [
|
|
"2 of diamonds",
|
|
"A of hearts",
|
|
"9 of clubs",
|
|
"Q of spades",
|
|
]
|
|
return strings
|
|
|
|
|
|
def test_get_value(cards, expected_values):
|
|
"""tests if the correct value is returned by the function"""
|
|
results = []
|
|
for card in cards:
|
|
results.append(card.get_value())
|
|
|
|
# The zip() function takes multiple iterable objects (like lists
|
|
# or tuples) and combines them element-wise, creating an iterator
|
|
# of tuples. Each tuple contains one element from each input
|
|
# iterable at the corresponding index.
|
|
# It effectively allows for parallel iteration.
|
|
for expected_value, result in zip(expected_values, results):
|
|
assert expected_value == result
|
|
|
|
|
|
def test_default_return_value(cards, expected_strings):
|
|
"""Tests if the __str__ method returns the correct value"""
|
|
|
|
assert expected_strings == [card.__str__() for card in cards]
|