Beispiel #1
0
 def setUp(self):
     self.g = Game(test=True)
Beispiel #2
0
class GameTest(TestCase):
    def setUp(self):
        self.g = Game(test=True)

    def test_matrix_list(self):
        '''
        Make sure that the matrix is initialized correctly.
        '''
        self.assertEqual([['-', '-', '-']] * 3, self.g.matrix)

    def test_marking(self):
        '''
        '''
        self.g.mark(0,0, 'x')
        self.g.mark(2,2, 'o')

        self.assertEqual('x', self.g.matrix[0][0])
        self.assertEqual('o', self.g.matrix[2][2])

    def test_failing_marks(self):
        self.assertRaises(ValueError, self.g.mark, 0, 0, 'a')
        self.assertRaises(ValueError, self.g.mark, 2, 2, 'b')

    def test_turn_toggle(self):
        self.g.mark(0,0,'x')

        self.assertEqual(self.g.players_turn, 'o')

    def test_no_double_turn(self):
        # Disable testing mode, since it blocks the exception.
        self.g.test = False
        self.g.mark(0,0,'x')
        self.assertRaises(Game.IllegalMove, self.g.mark, 0, 1, 'x')

    def test_no_overwrite_marks(self):
        '''No cell should be overwritten if it already contains
        a player mark.'''

        self.g.mark(0, 0, 'x')
        self.g.mark(0, 0, 'o')
        self.assertEqual(self.g.matrix[0][0], 'x')

    def test_horizontal_win_conditions(self):
        for cell in xrange(0,3):
            self.g.mark(0, cell, 'x')

        self.assertEqual(self.g.check_win_conditions(), 'x')

    def test_vertical_win_conditions(self):
        for row in xrange(0,3):
            self.g.mark(row, 1, 'x')

        self.assertEqual(self.g.check_win_conditions(), 'x', self.g.matrix)