def test_DeadPlayerTarget(self): """ test to make sure a dead player can't be targetted """ player = self.player player2 = Player() player2.alive = False with self.assertRaises(action.DeadPlayer): status, response = player.play(action.Captain, player2)
def test_Coup(self): player = self.player player2 = Player() # test for no target player.coins = 7 with self.assertRaises(action.TargetRequired): status, response = player.play(action.Coup) # test for no player having insufficient money player.coins = 6 with self.assertRaises(action.NotEnoughCoins) as exc: status, response = player.play(action.Coup, player2) self.assertEqual(exc.exception.coinsNeeded, 7) # test for targetting self player.coins = 7 with self.assertRaises(action.TargetRequired): status, response = player.play(action.Coup, player) # test for succesful coup with opponent has 2 influence player2.alive = True player.coins = 7 status, response = player.play(action.Coup, player2) self.assertTrue(status, response) self.assertLess(player.coins, 7) self.assertEqual(len(player2.influence), 1) self.assertTrue(player2.alive) # test for succesful coup with opponent has 1 influence player2.alive = True player.coins = 7 self.assertEqual(len(player2.influence), 1) status, response = player.play(action.Coup, player2) self.assertTrue(status, response) self.assertLess(player.coins, 7) self.assertEqual(len(player2.influence), 0) self.assertFalse(player2.alive) # test for coup against dead opponent player2.alive = False player.coins = 7 with self.assertRaises(action.DeadPlayer): status, response = player.play(action.Coup, player2)