-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtest.py
More file actions
121 lines (93 loc) · 4.55 KB
/
Copy pathtest.py
File metadata and controls
121 lines (93 loc) · 4.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
import unittest
from unittest.mock import patch
from board import Board
from player import Player
from game import Game
from error import InvalidInputError, InvalidCardError
class TestBoard(unittest.TestCase):
"""Test que le plateau de jeu est correctement généré"""
board = Board()
def testCardNumber(self):
"""Test qu'il y ait le bon nombre de carte sur le plateau"""
self.assertEqual(len(self.board.cards), 16, "Il faut 16 cartes")
def testPairCount(self):
"""Test qu'il y ait le bon nombre de paire de carte sur le plateau"""
cards = [card.value for card in self.board.cards]
pairs = set([card for card in cards if cards.count(card) == 2])
self.assertEqual(len(pairs), 8, "Il faut 8 paires")
def testShowCard(self):
"""Test qu'une carte soit bien affichée sur le plateau"""
self.board.showCard(3)
self.assertTrue(self.board.isShown(3), "La carte devrait être affichée")
def testHideCard(self):
"""Test qu'une carte soit bien cachée sur le plateau"""
self.board.hideCard(3)
self.assertFalse(self.board.isShown(3), "La carte devrait être cachée")
def test5IsOnBoard(self):
"""Test qu'un nombre est bien dans les limites du plateau"""
self.assertTrue(self.board.isOnBoard(5), "5 devrait faire partie du plateau de jeu")
def test18IsNotOnBoard(self):
"""Test qu'un nombre est bien en dehors des limites du plateau"""
self.assertFalse(self.board.isOnBoard(18), "18 ne devrait pas faire partie du plateau de jeu")
def testNegativeIsNotOnBoard(self):
"""Test qu'un nombre est bien en dehors des limites du plateau"""
self.assertFalse(self.board.isOnBoard(-4), "-4 ne devrait pas faire partie du plateau de jeu")
class TestPlayer(unittest.TestCase):
"""Test que le joueur soit correctement implémenté"""
player = Player()
def testScore(self):
"""Test que le score soit correctement calculé"""
self.player.gainCard('S')
self.player.gainCard('A')
self.player.gainCard('C')
self.assertEqual(self.player.getScore(), 3, "Le joueur doit avoir 3 paires")
class TestGame(unittest.TestCase):
"""Test que le jeu soit correctement implémenté"""
game = Game()
@patch('builtins.input', return_value='3')
def testInputInBoard(self, input):
"""Test qu'une commande à l'intérieur du plateau de jeu est valide"""
hasValidInput, i = self.game.getInput()
self.assertTrue(hasValidInput, "3 devrait être une commande valide")
self.assertEqual(i, 2, "La carte choisie doit être à l'index 2")
@patch('builtins.input', return_value='109')
def testInputOutsideBoard(self, input):
"""Test qu'une commande à l'extérieur du plateau de jeu est non valide"""
with self.assertRaises(InvalidCardError):
self.game.getInput()
@patch('builtins.input', return_value='-6')
def testInputNegative6(self, input):
"""Test qu'une commande négative est non valide"""
with self.assertRaises(InvalidInputError):
self.game.getInput()
@patch('builtins.input', return_value='-234')
def testInputNegative234(self, input):
"""Test qu'une commande négative est non valide"""
with self.assertRaises(InvalidInputError):
self.game.getInput()
@patch('builtins.input', return_value='-590')
def testInputNegative590(self, input):
with self.assertRaises(InvalidInputError):
self.game.getInput()
@patch('builtins.input', return_value='*')
def testInputSpecialCharStar(self, input):
"""Test qu'une commande charactère spéciale est non valide"""
with self.assertRaises(InvalidInputError):
self.game.getInput()
@patch('builtins.input', return_value='+')
def testInputSpecialCharPlus(self, input):
"""Test qu'une commande charactère spéciale est non valide"""
with self.assertRaises(InvalidInputError):
self.game.getInput()
@patch('builtins.input', return_value='.')
def testInputSpecialCharDot(self, input):
"""Test qu'une commande charactère spéciale est non valide"""
with self.assertRaises(InvalidInputError):
self.game.getInput()
@patch('builtins.input', return_value='g')
def testInputLetter(self, input):
"""Test qu'une commande lettre est non valide"""
with self.assertRaises(InvalidInputError):
self.game.getInput()
if __name__ == "__main__":
unittest.main()