def test_Player(self): """Test Player class""" player = Player(name="Bob") self.assertIsNotNone(player) self.assertEqual(str(player), "Bob") self.assertTrue(player.is_sitting_out()) self.assertEqual(player.get_status(), "sitting out") with self.assertRaises(ZeroStackException): player.make_active() player2 = Player(stack=10) self.assertEqual(str(player2), "Unnamed Player") self.assertTrue(player2.is_active()) self.assertEqual(player2.get_status(), "active") player2.sit_out() self.assertTrue(player2.is_sitting_out()) player2.make_active() self.assertTrue(player2.is_active()) player.new_hand() self.assertTrue(player.is_active()) player.muck_hand() self.assertTrue(player.is_folded()) self.assertEqual(player.get_status(), "folded") player.message("This should go nowhere") player.stack = 100 action = Action.new_bet(30) player.process_action(action) self.assertEqual(player.stack, 70) self.assertEqual(player.bet, 30) action = Action.new_bet(100) self.assertRaises(InvalidActionException, player.process_action, action) player.win(10) self.assertEqual(player.stack, 80)
def test_Action_bet(self): """Test bet Action""" action = Action.new_bet(100) self.assertIsNotNone(action) self.assertTrue(action.is_bet()) self.assertFalse(action.is_raise()) self.assertEqual(action.amount, 100) self.assertFalse(action.is_all_in()) self.assertEqual(str(action), "bet 100")
def test_opening_bet_ActionRequest(self): """Test ActionRequest for opening bet""" amount = 50 request = ActionRequest.new_opening_bet_request(amount) self.assertIsNotNone(request) self.assertTrue(request.is_opening_bet_request()) self.assertEqual(request.amount, amount) request.validate_action(Action.new_check()) request.validate_action(Action.new_bet(amount)) request.validate_action(Action.new_fold()) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_ante(amount)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_blind(amount)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_call(amount)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_bet(amount+1)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_raise(amount))
def test_ante_ActionRequest(self): """Test ActionRequest for ante""" amount = 20 request = ActionRequest.new_ante_request(amount) self.assertIsNotNone(request) self.assertTrue(request.is_ante_request()) self.assertEqual(request.amount, amount) request.validate_action(Action.new_ante(amount)) request.validate_action(Action.new_fold()) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_ante(amount+1)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_call(amount)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_bet(amount)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_raise(amount))
def test_call_ActionRequest(self): """Test ActionRequest for call""" amount = 50 request = ActionRequest.new_call_request(amount, raise_amount=amount*2) self.assertIsNotNone(request) self.assertTrue(request.is_call_request()) self.assertEqual(request.amount, amount) self.assertEqual(request.raise_amount, amount*2) self.assertEqual(str(request), "call request for 50 or raise of 100") request.validate_action(Action.new_call(amount)) request.validate_action(Action.new_raise(amount*2)) request.validate_action(Action.new_fold()) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_ante(amount)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_blind(amount)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_call(amount+1)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_bet(amount)) with self.assertRaises(InvalidActionException): request.validate_action(Action.new_raise(amount*2-1))