/
pyguessnumbergameTest.py
88 lines (73 loc) · 2.99 KB
/
pyguessnumbergameTest.py
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
'''
@author: gabriel.flores
'''
import unittest
import numbersUtil
import mock
from Computer import Computer
from Game import Game
import random
class Test(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def testCompareGoodNumbers(self):
mynumber = "1234"
otherQuestion = "1253"
goodNumbers = numbersUtil.goodNumbers(mynumber, otherQuestion)
self.assertEqual(2, goodNumbers, "shoud be 2 good Numbers because 1 and 2 are in good place")
def testCompareRegularNumbers(self):
mynumber = "1234"
otherQuestion = "0124"
goodNumbers = numbersUtil.regularNumbers(mynumber, otherQuestion)
self.assertEqual(2, goodNumbers, "shoud be 2 good Numbers because 1 and 2 are not in good place")
def testNumberIsCorrect(self):
number = "1232"
self.assertFalse(numbersUtil.isCorrect(number))
number = "4234"
self.assertFalse(numbersUtil.isCorrect(number))
number = "1234"
self.assertTrue(numbersUtil.isCorrect(number))
number = "1A34"
self.assertFalse(numbersUtil.isCorrect(number))
number = "134"
self.assertFalse(numbersUtil.isCorrect(number))
number = "13456"
self.assertFalse(numbersUtil.isCorrect(number))
def testPlayWithComputer(self):
print "testPlayWithComputer"
with mock.patch('Computer.Computer.generatePosibleNumber', return_value='1234'):
computer = Computer()
# computer.setNumber("1234")
goods, regulars = computer.ask("1567") # 1 good
self.assertEqual(1, goods)
self.assertEqual(0, regulars)
goods, regulars = computer.ask("0356") # 1 regular
self.assertEqual(0, goods)
self.assertEqual(1, regulars)
goods, regulars = computer.ask("9831") # 1 good and 1 regular
self.assertEqual(1, goods)
self.assertEqual(1, regulars)
goods, regulars = computer.ask("1243") # 2 goods and 2 regulars
self.assertEqual(2, goods)
self.assertEqual(2, regulars)
goods, regulars = computer.ask("1234") # 4 goods and you win!
self.assertEqual(4, goods)
self.assertEqual(0, regulars)
def testPlayGameWithComputer(self):
print "testPlayGameWithComputer"
#with mock.patch('Game.Computer.generatePosibleNumber', return_value='1234')
game = Game()
game.computer.generatePosibleNumber = mock.MagicMock(return_value='1234')
with mock.patch('__builtin__.raw_input', return_value='1234'):
game_end = game.playHuman()
self.assertTrue(game_end)
game = Game()
game.computer.generatePosibleNumber = mock.MagicMock(return_value='1234')
with mock.patch('__builtin__.raw_input', return_value='4321'):
game_end = game.playHuman()
self.assertFalse(game_end)
if __name__ == "__main__":
# import sys;sys.argv = ['', 'Test.testName']
unittest.main()