def test_enact_carnivore(self): player_list = [self.defendPlayer, self.hornDefendPlayer] big_veg_intent = FeedCarnivore(self.attackPlayer.species.index(self.species_big_car), player_list.index(self.defendPlayer), self.defendPlayer.species.index(self.species_big_veg)) mock = Mock() mock.feed_creature = MagicMock() big_veg_intent.enact(self.attackPlayer, player_list, mock) mock.feed_creature.assert_called_once_with(self.attackPlayer, self.attackPlayer.species.index(self.species_big_car), scavenge=True) self.assertEqual(self.species_big_car.population, BIG_SIZE) self.assertEqual(self.species_big_veg.population, BIG_SIZE-1) self.assertIn(self.species_big_car, self.attackPlayer.species) self.assertIn(self.species_big_veg, self.defendPlayer.species) mock = Mock() mock.feed_creature = MagicMock() horn_intent = FeedCarnivore(self.attackPlayer.species.index(self.species_big_car), player_list.index(self.hornDefendPlayer), self.hornDefendPlayer.species.index(self.species_horn_veg)) horn_intent.enact(self.attackPlayer, player_list, mock) mock.feed_creature.assert_called_once_with(self.attackPlayer, self.attackPlayer.species.index(self.species_big_car), scavenge=True) self.assertEqual(self.species_big_car.population, BIG_SIZE-1) self.assertEqual(self.species_horn_veg.population, LITTLE_SIZE-1) self.assertIn(self.species_big_car, self.attackPlayer.species) tiny_car_dies_intent = FeedCarnivore(self.attackPlayer.species.index(self.species_tiny_car), player_list.index(self.hornDefendPlayer), self.hornDefendPlayer.species.index(self.species_horn_veg)) dealer = Dealer([self.attackPlayer, self.defendPlayer, self.hornDefendPlayer], 10, [TraitCard(-3, Trait("long-neck")), TraitCard(-3, Trait("long-neck")), TraitCard(-3, Trait("long-neck")), TraitCard(-3, Trait("long-neck"))]) dealer.feed_creature = Mock() self.assertIn(self.species_big_car, self.attackPlayer.species) tiny_car_dies_intent.enact(self.attackPlayer, player_list, dealer) dealer.feed_creature.assert_not_called() self.assertNotIn(self.species_tiny_car, self.attackPlayer.species) self.assertNotIn(self.species_horn_veg, self.hornDefendPlayer.species) self.assertIn(self.species_big_car, self.attackPlayer.species) self.assertEqual(0, len(dealer.deck)) self.assertEqual(2, len(self.hornDefendPlayer.cards)) self.assertEqual(2, len(self.attackPlayer.cards))
def test_enact_vegetarian(self): for i in range(0, 5): veg = FeedVegetarian(i) player = Player(1) dealer = Mock() dealer.feed_creature = Mock() veg.enact(player, False, dealer) dealer.feed_creature.assert_called_once_with(player, i)
def test_feed_none(self): feed_none = FeedNone() not_called = Mock() not_called.feed_creature = Mock() not_called.kill_creature = Mock() not_called.fat_feed = Mock() player = Mock() feed_none.enact(player, [], not_called) player.assert_not_called() not_called.feed_creature.assert_not_called() not_called.kill_creature.assert_not_called() not_called.fat_feed.assert_not_called()
def test_cant_feed(self): cant_feed = CannotFeed() not_called = Mock() not_called.feed_creature = Mock() not_called.kill_creature = Mock() not_called.fat_feed = Mock() player = Mock() cant_feed.enact(player, [], not_called) player.assert_not_called() not_called.feed_creature.assert_not_called() not_called.kill_creature.assert_not_called() not_called.fat_feed.assert_not_called()
def test_enact_fat_tissue(self): for idx in range(0,3): for tkns in range(1, 2): tissue = StoreFat(idx, tkns) mock = Mock() mock.feed_creature = Mock() player = Mock() mock.fat_feed = Mock() mock.kill_creature = Mock() tissue.enact(player, [], mock) mock.kill_creature.assert_not_called() mock.feed_creature.assert_not_called() mock.fat_feed.assert_called_once_with(player, idx, tkns)