Ejemplo n.º 1
0
    def test_multiple_games(self):

        self.test_game_complete_resistance_won_success()

        with self.app.app_context():
            game = game_manager.request_game(self.game_id)
            game = game_manager.new_game(game, sid=game.host.sid)

            self.game_id = game.id
            self.assertEqual(game.stage, model.GameStage.pending)
            game_manager.update_game(game, sid='1')
            self.assertEqual(game.stage, model.GameStage.executing_mission)
            game_manager.leave_game(game.id, '6', 6)
            game_manager.join_game(game, 'new', '6')
            self.assertEqual(game.stage, model.GameStage.pending)

            game_manager.update_game(game, sid='1')

            self.assertEqual(len(db.session.query(model.Game.id).all()), 2)
            self.assertEqual(len(db.session.query(model.Player.id).all()), 6)
            self.assertTrue(len(game.players), 6)

        self.test_game_complete_resistance_won_success()

        with self.app.app_context():
            self.assertEqual(len(db.session.query(model.Game.id).all()), 2)
            self.assertEqual(len(db.session.query(model.Player.id).all()), 6)
            self.assertTrue(len(game.players), 6)
Ejemplo n.º 2
0
 def test_start_game_not_enough_players_fail(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         with self.assertRaises(errors.InsufficientPlayersNumber):
             game_manager.update_game(game, sid='1')
         self.assertTrue(game.stage == model.GameStage.pending)
Ejemplo n.º 3
0
 def test_start_game_host_success(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         game_manager.update_game(game, sid='1')
         self.assertTrue(game.stage == model.GameStage.executing_mission)
Ejemplo n.º 4
0
 def test_leave_game_host_success(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.leave_game(game.id, '1', 1)
         self.assertTrue(len(db.session.query(model.Game).all()) == 0)
         self.assertTrue(len(db.session.query(model.Player).all()) == 0)
Ejemplo n.º 5
0
 def test_start_game_non_host_fail(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         with self.assertRaises(errors.ForbiddenAction):
             game_manager.update_game(game, sid='2')
         self.assertTrue(game.stage == model.GameStage.pending)
Ejemplo n.º 6
0
 def test_join_game_success(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         self.assertTrue(
             len(
                 db.session.query(model.Player).filter(
                     model.Player.game_id == game.id).all()) == 2)
Ejemplo n.º 7
0
 def setUp(self):
     self.app = create_app('config.Test')
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         game_manager.update_game(game, sid='1')
         self.game_id = game.id
Ejemplo n.º 8
0
 def test_delete_game_non_host_fail(self):
     with self.app.app_context():
         with self.assertRaises(errors.ForbiddenAction):
             game = game_manager.create_game('test', '1')
             game_manager.join_game(game, 'test1', '2')
             game_manager.try_delete_game(game.id, '2')
         self.assertTrue(len(db.session.query(model.Player).all()) == 2)
         self.assertTrue(len(db.session.query(model.Game).all()) == 1)
Ejemplo n.º 9
0
 def test_delete_game_inactive_players_success(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         for p in game.players:
             game_manager.deactivate_player(p)
         self.assertTrue(len(db.session.query(model.Game).all()) == 0)
         self.assertTrue(len(db.session.query(model.Player).all()) == 0)
Ejemplo n.º 10
0
 def test_delete_game_reactivate_players_success(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         p = game_manager.join_game(game, 'test2', '3')
         game_manager.deactivate_player(p)
         game_manager.activate_player(p)
         game_manager.update_game(game, sid='1')
         self.assertTrue(game.stage == model.GameStage.executing_mission)
Ejemplo n.º 11
0
 def test_kick_player_non_host_fail(self):
     with self.app.app_context():
         with self.assertRaises(errors.ForbiddenAction):
             game = game_manager.create_game('test', '1')
             game_manager.join_game(game, 'test1', '2')
             game_manager.leave_game(game.id, '2', 1)
         self.assertTrue(
             len(
                 db.session.query(model.Player).filter(
                     model.Player.game_id == game.id).all()) == 2)
Ejemplo n.º 12
0
 def test_restart_game_host_success(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         game_manager.update_game(game, sid='1')
         new_game = game_manager.new_game(game, sid='1')
         self.assertTrue(len(game.players) == 3)
         self.assertTrue(len(new_game.players) == 3)
         self.assertTrue(new_game.stage == model.GameStage.pending)
 def setUp(self):
     self.app = create_app('config.Test')
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         game_manager.update_game(game, sid='1')
         mission = game.current_mission()
         game_manager.update_mission(mission,
                                     sid=game.current_leader().sid,
                                     players_ids=[1])
         game_manager.update_mission(mission, sid='1', result=True)
         game_manager.update_mission(mission, sid='2', result=True)
         game_manager.update_mission(mission, sid='3', result=True)
         self.game_id = game.id
Ejemplo n.º 14
0
 def test_join_game_full_fail(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         game_manager.join_game(game, 'test3', '4')
         with self.assertRaises(errors.GameFull):
             game_manager.join_game(game, 'test4', '5')
Ejemplo n.º 15
0
 def test_join_game_started_fail(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         game_manager.update_game(game, sid='1')
         self.assertTrue(game.stage != model.GameStage.pending)
         with self.assertRaises(errors.ForbiddenAction):
             game_manager.join_game(game, 'test3', '4')
         self.assertTrue(len(game.players) == 3)
Ejemplo n.º 16
0
 def test_multiple_spies_setup(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         game_manager.join_game(game, 'test3', '4')
         game_manager.update_game(game, sid='1')
         self.assertEqual(len(game.spies),
                          game_manager.rules['team'][4]['spies'],
                          'Spies number do not match')
Ejemplo n.º 17
0
 def test_leave_game_started_success(self):
     with self.app.app_context():
         game = game_manager.create_game('test', '1')
         game_manager.join_game(game, 'test1', '2')
         game_manager.join_game(game, 'test2', '3')
         game_manager.update_game(game, sid='1')
         self.assertTrue(game.stage != model.GameStage.pending)
         game_manager.leave_game(game.id, '2', 2)
         self.assertTrue(game.stage == model.GameStage.pending)
         self.assertTrue(len(game.missions) == 0)
         self.assertTrue(len(game.players) == 2)
         game_manager.join_game(game, 'test1', '2')
         game_manager.update_game(game, sid='1')
         self.assertTrue(game.stage != model.GameStage.pending)
Ejemplo n.º 18
0
 def test_join_game_equal_sid_fail(self):
     with self.app.app_context():
         with self.assertRaises(errors.ForbiddenAction):
             game = game_manager.create_game('test', '1')
             game_manager.join_game(game, 'test1', '1')