def test_purchase_shares_after_merge(self): self.player["shares"]["quantum"] = 1 self.merge_quantum_and_fusion(self.fusion) gametools.disburse_shares(self.game, self.player, {"hotel": "quantum"}) first_action = self.game["action_queue"][0] self.assertEqual(first_action["action"], "purchase") self.assertEqual(first_action["player"], self.player["name"])
def test_sell_shares(self): self.player["shares"]["quantum"] = 1 self.merge_quantum_and_fusion(self.fusion) self.remember_cash() disbursement = {"sell": 1, "hotel": "quantum"} gametools.disburse_shares(self.game, self.player, disbursement) self.assertEqual(self.cash_difference(), [400, 0, 0])
def test_trade_for_more_shares_than_available(self): self.player["shares"]["quantum"] = 10 self.other_player["shares"]["fusion"] = 22 self.merge_quantum_and_fusion(self.fusion) disbursement = {"trade": 10, "hotel": "quantum"} with self.assertRaises(gametools.GamePlayNotAllowedError): gametools.disburse_shares(self.game, self.player, disbursement)
def test_multiple_disappearing_hotels_disbursement_order2(self): self.fusion["tiles"].append("2H") self.player["shares"]["quantum"] = 1 self.player["shares"]["fusion"] = 1 self.merge_quantum_fusion_and_phoenix() disbursement = {"sell": 1, "hotel": "quantum"} with self.assertRaises(gametools.GamePlayNotAllowedError): gametools.disburse_shares(self.game, self.player, disbursement)
def disburse_shares_message(self, message): """Someone handled their shares in a disappearing hotel.""" player_name = message['player'] game = self.game_for_player(player_name) if not game: return first_action = game['action_queue'][0] try: player = gametools.player_named(game, player_name) disbursement = { 'hotel': first_action['hotel'], 'sell': message['sell'], 'trade': message['trade'], } survivor = gametools.disburse_shares(game, player, disbursement) except gametools.GamePlayNotAllowedError, e: self.send_error(player_name, 'Cannot disburse shares', e) return
def test_sell_more_shares_than_held(self): self.player["shares"]["quantum"] = 1 self.merge_quantum_and_fusion(self.fusion) disbursement = {"sell": 2, "hotel": "quantum"} with self.assertRaises(gametools.GamePlayNotAllowedError): gametools.disburse_shares(self.game, self.player, disbursement)
def test_trade_shares(self): self.player["shares"]["quantum"] = 2 self.merge_quantum_and_fusion(self.fusion) disbursement = {"trade": 2, "hotel": "quantum"} gametools.disburse_shares(self.game, self.player, disbursement) self.assertEqual(self.player["shares"]["fusion"], 1)
def test_out_of_turn_share_disbursement(self): self.player["shares"]["quantum"] = 1 self.other_player["shares"]["quantum"] = 1 self.merge_quantum_and_fusion(self.fusion) with self.assertRaises(gametools.GamePlayNotAllowedError): gametools.disburse_shares(self.game, self.other_player, {"hotel": "quantum"})
def test_inappropriate_share_disbursement(self): self.player["shares"]["fusion"] = 1 self.merge_quantum_and_fusion(self.fusion) with self.assertRaises(gametools.GamePlayNotAllowedError): gametools.disburse_shares(self.game, self.player, {})
def test_disburse_shares_after_merge(self): self.player["shares"]["quantum"] = 2 self.merge_quantum_and_fusion(self.fusion) gametools.disburse_shares(self.game, self.player, {"hotel": "quantum"})