def join_game_message(self, message): """Someone wants to join a game.""" player, game_number = message['player'], message['game_number'] game = self.game_for_player(player) if not game: game = self.game_numbered(game_number) if game: try: gametools.add_player_named(game, player) self.send_to_frontends('joined_game', player=player, game=game) self.send_games_list_to_frontends() self.log.debug('%s joined game %d.', player, game['number']) except gametools.GameAlreadyStartedError: error = 'Cannot join started game' detail = ("Game %d has already started, so you cannot " "join." % game['number']) self.send_error(player, error, detail) else: error = 'No such game' detail = ("There is no game numbered %r. Please select " "another." % message['game_number']) self.send_error(player, error, detail) else: error = 'Already in game' detail = ("You are already in a game and cannot join another until " "it is done or you have left.") self.send_error(player, error, detail)
def test_grows_hotel(self): game = gametools.new_game() gametools.add_player_named(game, "champ") gametools.start_game(game) blank_board(game) hydra = gametools.hotel_named(game, "hydra") hydra["tiles"] = ["6A", "6B", "7B"] for tile in ["5A"]: self.assertTrue(gametools.grows_hotel(game, tile), tile) for tile in ["1C", "5C", "8E"]: self.assertFalse(gametools.grows_hotel(game, tile), tile)
def setUp(self): self.game = gametools.new_game() gametools.add_player_named(self.game, "testlady") gametools.add_player_named(self.game, "testgirl") gametools.start_game(self.game) self.player, self.other_player = self.game["players"] self.player["rack"][0] = "1B" blank_board(self.game) self.game["tilebag"] = ["9F"] self.america = gametools.hotel_named(self.game, "america") self.america["tiles"] = ["1A", "2A"] self.hydra = gametools.hotel_named(self.game, "hydra") self.hydra["tiles"] = ["1C", "1D", "1E"]
def start_game_message(self, message): """Someone's starting a new game.""" player = message['player'] game = self.game_for_player(player) if game: error = 'Already in game' detail = ('Please leave your current game before ' 'starting a new one.') self.send_error(player, error, detail) else: game = gametools.new_game(self.next_game_number()) gametools.add_player_named(game, player) self.games_list.append(game) self.send_to_frontends('started_game', player=player, game=game) self.send_games_list_to_frontends() self.log.debug('Game %d started by %s.', game['number'], player)
def setUp(self): self.game = gametools.new_game() gametools.add_player_named(self.game, "testwomanican") gametools.add_player_named(self.game, "testmanican") gametools.add_player_named(self.game, "testvetica") self.starting_tiles = gametools.start_game(self.game) self.player = gametools.active_player(self.game) for hotel in self.game["hotels"]: setattr(self, hotel["name"], hotel)
def test_remove_player_from_finished_game(self): gametools.add_player_named(self.game, "testwomanican") gametools.start_game(self.game) self.game["ended"] = True gametools.remove_player_named(self.game, "testwomanican") self.assertFalse(self.game["players"])
def test_remove_player_from_started_game(self): gametools.add_player_named(self.game, "testwomanican") gametools.start_game(self.game) with self.assertRaises(gametools.GameAlreadyStartedError): gametools.remove_player_named(self.game, "testwomanican")
def test_add_player_to_started_game(self): gametools.add_player_named(self.game, "chumpwoman") gametools.start_game(self.game) with self.assertRaises(gametools.GameAlreadyStartedError): gametools.add_player_named(self.game, "chumpman")
def test_remove_player_from_unstarted_game(self): gametools.add_player_named(self.game, "testmanican") gametools.add_player_named(self.game, "testvetica") gametools.remove_player_named(self.game, "testmanican") self.assertEqual(len(self.game["players"]), 1, self.game) self.assertEqual(self.game["players"][0]["name"], "testvetica")
def test_add_player_to_unstarted_game(self): gametools.add_player_named(self.game, "testmanican") self.assertEqual(len(self.game["players"]), 1, self.game) gametools.add_player_named(self.game, "testvetica") self.assertEqual(len(self.game["players"]), 2, self.game)