mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2025-12-12 12:22:12 +00:00
Merge pull request #7 from Neppord/master
I added the use of the builtin pytest.mark.parametrize support
This commit is contained in:
commit
8e10e60244
@ -173,4 +173,4 @@ class TennisGameDefactored3:
|
||||
return "Deuce"
|
||||
s = self.p1N if self.p1 > self.p2 else self.p2N
|
||||
return "Advantage " + s if ((self.p1-self.p2)*(self.p1-self.p2) == 1) else "Win for " + s
|
||||
|
||||
TennisGame = TennisGameDefactored3
|
||||
|
||||
@ -1,67 +1,53 @@
|
||||
|
||||
import pytest
|
||||
from tennis import TennisGame
|
||||
|
||||
# test support code
|
||||
def params(funcarglist):
|
||||
def wrapper(function):
|
||||
function.funcarglist = funcarglist
|
||||
return function
|
||||
return wrapper
|
||||
|
||||
def pytest_generate_tests(metafunc):
|
||||
for funcargs in getattr(metafunc.function, 'funcarglist', ()):
|
||||
if "p1Name" not in funcargs:
|
||||
funcargs["p1Name"] = "player1"
|
||||
if "p2Name" not in funcargs:
|
||||
funcargs["p2Name"] = "player2"
|
||||
metafunc.addcall(funcargs=funcargs)
|
||||
|
||||
# actual test code
|
||||
class TestTennis:
|
||||
|
||||
@params([dict(p1Points=0, p2Points=0, score="Love-All"),
|
||||
dict(p1Points=1, p2Points=1, score="Fifteen-All"),
|
||||
dict(p1Points=2, p2Points=2, score="Thirty-All"),
|
||||
dict(p1Points=3, p2Points=3, score="Forty-All"),
|
||||
dict(p1Points=4, p2Points=4, score="Deuce"),
|
||||
@pytest.mark.parametrize('p1Points p2Points score p1Name p2Name'.split(),[
|
||||
(0, 0, "Love-All", 'player1', 'player2'),
|
||||
(1, 1, "Fifteen-All", 'player1', 'player2'),
|
||||
(2, 2, "Thirty-All", 'player1', 'player2'),
|
||||
(3, 3, "Forty-All", 'player1', 'player2'),
|
||||
(4, 4, "Deuce", 'player1', 'player2'),
|
||||
|
||||
dict(p1Points=1, p2Points=0, score="Fifteen-Love"),
|
||||
dict(p1Points=0, p2Points=1, score="Love-Fifteen"),
|
||||
dict(p1Points=2, p2Points=0, score="Thirty-Love"),
|
||||
dict(p1Points=0, p2Points=2, score="Love-Thirty"),
|
||||
dict(p1Points=3, p2Points=0, score="Forty-Love"),
|
||||
dict(p1Points=0, p2Points=3, score="Love-Forty"),
|
||||
dict(p1Points=4, p2Points=0, score="Win for player1"),
|
||||
dict(p1Points=0, p2Points=4, score="Win for player2"),
|
||||
(1, 0, "Fifteen-Love", 'player1', 'player2'),
|
||||
(0, 1, "Love-Fifteen", 'player1', 'player2'),
|
||||
(2, 0, "Thirty-Love", 'player1', 'player2'),
|
||||
(0, 2, "Love-Thirty", 'player1', 'player2'),
|
||||
(3, 0, "Forty-Love", 'player1', 'player2'),
|
||||
(0, 3, "Love-Forty", 'player1', 'player2'),
|
||||
(4, 0, "Win for player1", 'player1', 'player2'),
|
||||
(0, 4, "Win for player2", 'player1', 'player2'),
|
||||
|
||||
dict(p1Points=2, p2Points=1, score="Thirty-Fifteen"),
|
||||
dict(p1Points=1, p2Points=2, score="Fifteen-Thirty"),
|
||||
dict(p1Points=3, p2Points=1, score="Forty-Fifteen"),
|
||||
dict(p1Points=1, p2Points=3, score="Fifteen-Forty"),
|
||||
dict(p1Points=4, p2Points=1, score="Win for player1"),
|
||||
dict(p1Points=1, p2Points=4, score="Win for player2"),
|
||||
(2, 1, "Thirty-Fifteen", 'player1', 'player2'),
|
||||
(1, 2, "Fifteen-Thirty", 'player1', 'player2'),
|
||||
(3, 1, "Forty-Fifteen", 'player1', 'player2'),
|
||||
(1, 3, "Fifteen-Forty", 'player1', 'player2'),
|
||||
(4, 1, "Win for player1", 'player1', 'player2'),
|
||||
(1, 4, "Win for player2", 'player1', 'player2'),
|
||||
|
||||
dict(p1Points=3, p2Points=2, score="Forty-Thirty"),
|
||||
dict(p1Points=2, p2Points=3, score="Thirty-Forty"),
|
||||
dict(p1Points=4, p2Points=2, score="Win for player1"),
|
||||
dict(p1Points=2, p2Points=4, score="Win for player2"),
|
||||
(3, 2, "Forty-Thirty", 'player1', 'player2'),
|
||||
(2, 3, "Thirty-Forty", 'player1', 'player2'),
|
||||
(4, 2, "Win for player1", 'player1', 'player2'),
|
||||
(2, 4, "Win for player2", 'player1', 'player2'),
|
||||
|
||||
dict(p1Points=4, p2Points=3, score="Advantage player1"),
|
||||
dict(p1Points=3, p2Points=4, score="Advantage player2"),
|
||||
dict(p1Points=5, p2Points=4, score="Advantage player1"),
|
||||
dict(p1Points=4, p2Points=5, score="Advantage player2"),
|
||||
dict(p1Points=15, p2Points=14, score="Advantage player1"),
|
||||
dict(p1Points=14, p2Points=15, score="Advantage player2"),
|
||||
(4, 3, "Advantage player1", 'player1', 'player2'),
|
||||
(3, 4, "Advantage player2", 'player1', 'player2'),
|
||||
(5, 4, "Advantage player1", 'player1', 'player2'),
|
||||
(4, 5, "Advantage player2", 'player1', 'player2'),
|
||||
(15, 14, "Advantage player1", 'player1', 'player2'),
|
||||
(14, 15, "Advantage player2", 'player1', 'player2'),
|
||||
|
||||
dict(p1Points=6, p2Points=4, score="Win for player1"),
|
||||
dict(p1Points=4, p2Points=6, score="Win for player2"),
|
||||
dict(p1Points=16, p2Points=14, score="Win for player1"),
|
||||
dict(p1Points=14, p2Points=16, score="Win for player2"),
|
||||
(6, 4, 'Win for player1', 'player1', 'player2'),
|
||||
(4, 6, 'Win for player2', 'player1', 'player2'),
|
||||
(16, 14, 'Win for player1', 'player1', 'player2'),
|
||||
(14, 16, 'Win for player2', 'player1', 'player2'),
|
||||
|
||||
dict(p1Points=6, p2Points=4, score="Win for One", p1Name='One'),
|
||||
dict(p1Points=4, p2Points=6, score="Win for Two", p2Name="Two"),
|
||||
dict(p1Points=6, p2Points=5, score="Advantage One", p1Name='One'),
|
||||
dict(p1Points=5, p2Points=6, score="Advantage Two", p2Name="Two"),
|
||||
(6, 4, 'Win for One', 'One', 'player2'),
|
||||
(4, 6, 'Win for Two', 'player1', 'Two'),
|
||||
(6, 5, 'Advantage One', 'One', 'player2'),
|
||||
(5, 6, 'Advantage Two', 'player1', 'Two')
|
||||
])
|
||||
def test_get_score(self, p1Points, p2Points, score, p1Name, p2Name):
|
||||
game = TennisGame(p1Name, p2Name)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user