Пример #1
0
    def test_give_1_again(self):
        """
        Give 1 card to the table if:
        - game state = give 1 again
        - on table is only 4 cards
        """

        # Arrange
        us1 = User(username='******')
        us1.save()
        us2 = User(username='******')
        us2.save()
        us3 = User(username='******')
        us3.save()
        us4 = User(username='******')
        us4.save()
        player1 = Player(name=us1)
        player1.save()
        player2 = Player(name=us2)
        player2.save()
        player3 = Player(name=us3)
        player3.save()
        player4 = Player(name=us4)
        player4.save()
        table = Table(player1=player1,
                      player2=player2,
                      player3=player3,
                      player4=player4,
                      game_state='give_3')
        table.fill_deck_by_all_cards()

        # Act
        table.give_3()
        table.next_game_state()
        table.give_1()
        table.next_game_state()
        table.give_1_again()

        # Assertion
        self.assertNotIn(table.cards_on_table, table.deck)
        self.assertIsInstance(table.cards_on_table, str)
        self.assertEqual(table.game_state, 'give_1_again')
Пример #2
0
    def test_next_game_state_2_players(self):
        """Change current game state to the next from the game path"""

        # Arrange
        us1 = User(username='******')
        us1.save()
        us2 = User(username='******')
        us2.save()
        player1 = Player(name=us1, state='check')
        player1.save()
        player2 = Player(name=us2, state='check')
        player2.save()
        table = Table(player1=player1, player2=player2)

        # Act & Assertion
        self.assertEqual(table.game_state, 'ready')
        table.next_game_state()
        self.assertEqual(table.game_state, 'small_blind')
        table.next_game_state()
        self.assertEqual(table.game_state, 'give_2')
        table.next_game_state()
        self.assertEqual(table.game_state, 'give_3')
        table.next_game_state()
        self.assertEqual(table.game_state, 'give_1')
        table.next_game_state()
        self.assertEqual(table.game_state, 'give_1_again')
        table.next_game_state()
        self.assertEqual(table.game_state, 'winner')
        table.next_game_state()

        # In this plase should be 'again' but self.start_game_again() call
        # this table.next_game_state, so we jump to begin - 'ready' state
        self.assertEqual(table.game_state, 'ready')