示例#1
0
class TestMainApp(TestCase):
    def setUp(self):
        self.app = Application()
        self.app.load_deck()
        self.app.load_fields("klondike")

    def test_load_deck(self):
        # checking length of decks
        self.assertEqual(52, len(self.app._deck))
        self.assertEqual(104, len(self.app._double_deck))

        # checking if there are no two reference to the same object
        self.assertEqual(len(set(self.app._deck)), len(self.app._deck))
        self.assertEqual(len(set(self.app._double_deck)),
                         len(self.app._double_deck))

    def test_load_fields(self):
        # check if good number of fields
        self.assertTrue(12, len(self.app._board))

        # check types of fields
        self.assertTrue(isinstance(self.app._board[0], Deck))
        for field in self.app._board[1:8]:
            self.assertTrue(isinstance(field, Pile))
        for field in self.app._board[8:]:
            self.assertTrue(isinstance(field, Stack))

    def test_remove_from_fields(self):
        card = self.app._board[0].show_cards()[0]
        self.app.remove_from_fields([card])
        for field in self.app._board:
            self.assertFalse(card in field.show_cards())

    def test_check_cards(self):
        # put mouse on place without any card
        pygame.mouse.set_pos(0, 0)
        sleep(2)
        self.assertFalse(self.app.check_cards())
        # put mouse on some card
        pygame.mouse.set_pos(25, 50)
        sleep(2)
        self.assertFalse(self.app.check_cards())

    def test_check_menu(self):
        # put mouse outside the menu
        pygame.mouse.set_pos(100, 100)
        self.assertFalse(self.app.check_menu())
        # put mouse on one of the buttons
        pygame.mouse.set_pos(5, 5)
        self.assertFalse(self.app.check_menu())