Exemplo n.º 1
0
 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"])
Exemplo n.º 2
0
 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])
Exemplo n.º 3
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)
Exemplo n.º 4
0
 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)
Exemplo n.º 5
0
 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
Exemplo n.º 6
0
 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)
Exemplo n.º 7
0
 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)
Exemplo n.º 8
0
 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"})
Exemplo n.º 9
0
 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, {})
Exemplo n.º 10
0
 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"})