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')
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')