示例#1
0
 def leave_game_message(self, message):
     """Someone wants to leave their game."""
     player = message['player']
     game = self.game_for_player(player)
     if game:
         try:
             gametools.remove_player_named(game, player)
             self.send_to_frontends('left_game', player=player, game=game)
             self.log.debug('%s left game %d.', player, game['number'])
         except gametools.GameAlreadyStartedError:
             error = 'Game has started'
             detail = ('You cannot leave a game that has already started.')
             self.send_error(player, error, detail)
         if not game['players']:
             self.games_list.remove(game)
             self.send_to_frontends('game_over', game_number=game['number'])
             self.log.debug('Game %d is over.', game['number'])
         self.send_games_list_to_frontends()
示例#2
0
 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")
示例#3
0
 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"])
示例#4
0
 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")