def test_SavageRoar(self): deck1 = StackedDeck([StonetuskBoar(), StonetuskBoar(), SavageRoar()], CHARACTER_CLASS.DRUID) deck2 = StackedDeck([StonetuskBoar()], CHARACTER_CLASS.MAGE) game = Game([deck1, deck2], [OneCardPlayingAgent(), OneCardPlayingAgent()]) game.current_player = 1 game.play_single_turn() game.play_single_turn() game.play_single_turn() game.play_single_turn() minion_increase_mock = mock.Mock() game.other_player.minions[0].bind("attack_changed", minion_increase_mock) game.other_player.minions[1].bind("attack_changed", minion_increase_mock) player_increase_mock = mock.Mock() game.other_player.hero.bind("attack_changed", player_increase_mock) game.play_single_turn() self.assertEqual(0, game.current_player.mana) # Make sure the attack got increased self.assertListEqual([mock.call(2), mock.call(2)], minion_increase_mock.call_args_list) self.assertListEqual([mock.call(2)], player_increase_mock.call_args_list) # And make sure that it went down again self.assertEqual(1, game.current_player.minions[0].calculate_attack()) self.assertEqual(1, game.current_player.minions[1].calculate_attack()) self.assertEqual(0, game.current_player.hero.calculate_attack())
def test_Swipe(self): deck1 = StackedDeck([BloodfenRaptor(), StonetuskBoar(), StonetuskBoar()], CHARACTER_CLASS.DRUID) deck2 = StackedDeck([Swipe()], CHARACTER_CLASS.DRUID, ) game = Game([deck1, deck2], [OneCardPlayingAgent(), EnemyMinionSpellTestingAgent()]) game.pre_game() game.current_player = game.players[1] game.play_single_turn() game.play_single_turn() game.play_single_turn() game.play_single_turn() game.play_single_turn() game.play_single_turn() game.play_single_turn() spell_damage_mock = mock.Mock() game.current_player.minions[0].bind('damaged_by_spell', spell_damage_mock) game.current_player.minions[1].bind('damaged_by_spell', spell_damage_mock) game.current_player.minions[2].bind('damaged_by_spell', spell_damage_mock) swipe_card = game.other_player.hand[0] game.play_single_turn() self.assertListEqual([mock.call(4, swipe_card), mock.call(1, swipe_card), mock.call(1, swipe_card)], spell_damage_mock.call_args_list) # The bloodfen raptor should be left, with one hp self.assertEqual(1, len(game.other_player.minions)) self.assertEqual(1, game.other_player.minions[0].health) self.assertEqual(29, game.other_player.hero.health)
def test_Swipe(self): deck1 = StackedDeck( [BloodfenRaptor(), StonetuskBoar(), StonetuskBoar()], CHARACTER_CLASS.DRUID) deck2 = StackedDeck( [Swipe()], CHARACTER_CLASS.DRUID, ) game = Game([deck1, deck2], [OneCardPlayingAgent(), EnemyMinionSpellTestingAgent()]) game.pre_game() game.current_player = game.players[1] game.play_single_turn() game.play_single_turn() game.play_single_turn() game.play_single_turn() game.play_single_turn() game.play_single_turn() game.play_single_turn() spell_damage_mock = mock.Mock() game.current_player.minions[0].bind('damaged_by_spell', spell_damage_mock) game.current_player.minions[1].bind('damaged_by_spell', spell_damage_mock) game.current_player.minions[2].bind('damaged_by_spell', spell_damage_mock) swipe_card = game.other_player.hand[0] game.play_single_turn() self.assertListEqual([ mock.call(4, swipe_card), mock.call(1, swipe_card), mock.call(1, swipe_card) ], spell_damage_mock.call_args_list) # The bloodfen raptor should be left, with one hp self.assertEqual(1, len(game.other_player.minions)) self.assertEqual(1, game.other_player.minions[0].health) self.assertEqual(29, game.other_player.hero.health)