def test_on_set_class(self, magic_make, magic_item_make, magic_broadcast): instance = self._makeOne() o = Player('') l = self._makeLobby(owner=o) t = Team('Red') l.teams.append(t) p = Player('0') t.join(p) db.session.add(o) db.session.add(l) db.session.add(t) db.session.add(p) db.session.commit() instance.lobby_id = l.id instance.ctx.g.player = p instance.allowed_methods = set([ 'on_leave', 'recv_connect', 'on_set_team', 'on_set_class', 'on_toggle_ready' ]) instance.on_set_class(0) self.assertEqual( instance.allowed_methods, set([ 'on_leave', 'recv_connect', 'on_set_class', 'on_toggle_ready', 'on_set_team' ])) self.assertEqual(l.teams[0].players[0].class_id, 0)
def test_get_team_listing(self, magic_get_summary): l = self._makeLobby('A', self.admin, '', '', '') l.teams.append(Team('Red')) l.teams.append(Team('Blu')) db.session.add(l) db.session.commit() magic_get_summary.return_value = {'personaname':'Anonymous'} resp = self.client.get('/admin/rest/lobbies/%d/teams' % l.id) self.assertTrue('teams' in resp.json) teams = resp.json['teams'] self.assertEqual(len(teams), 2)
def test_player_count(self): instance = self._makeOne() from lobbypy.models import Player, Team, LobbyPlayer p = Player('0') lp = LobbyPlayer(p) t_A = Team('Red') t_A.players.extend(2 * [lp]) t_B = Team('Blu') t_A.players.extend(3 * [lp]) instance.teams.extend([t_A, t_B]) self.assertEqual(instance.player_count, 5)
def test_delete_lobby_player(self): l = self._makeLobby('Lobby', self.admin, 'test', 'test', 'test') t = Team('Red') p = Player('0') t.join(p) l.teams.append(t) db.session.add(p) db.session.add(l) db.session.commit() resp = self.client.delete('/admin/rest/lobbies/%d/teams/0/players/%d' % (l.id, p.id)) self.assertStatus(resp, 200) l = db.session.merge(l) self.assertEqual(len(l.teams[0].players), 0)
def test_update_lobby_player(self): l = Lobby('Lobby', self.admin, 'test', 'test', 'test', 'test') t = Team('Red') p = Player('0') t.append_player(p) l.teams.append(t) db.session.add(p) db.session.add(l) db.session.commit() resp = self.client.put('/admin/rest/lobbies/%d/teams/0/players/%d' % (l.id, p.id), data=dict(class_id = 0)) self.assertStatus(resp, 200) l = db.session.merge(l) self.assertEqual(len(l.teams[0].players), 1) self.assertEqual(l.teams[0].players[0].class_id, 0)
def test_get_lobby_player(self, magic_get_summary): l = self._makeLobby('A', self.admin, '', '', '') t = Team('Red') t.join(self.admin) l.teams.append(t) db.session.add(l) db.session.commit() magic_get_summary.return_value = {'personaname':'Anonymous'} resp = self.client.get('/admin/rest/lobbies/%d/teams/0/players/%d' % (l.id, self.admin.id)) self.assertTrue('lobby_player' in resp.json) player = resp.json['lobby_player'] self.assertTrue('player' in player) self.assertTrue('class_id' in player) self.assertTrue('ready' in player)
def test_on_kick(self, magic_make, magic_item_make, magic_broadcast): instance = self._makeOne() o = Player('') l = self._makeLobby(owner=o) t = Team('Red') l.teams.append(t) p = Player('0') t.join(p) db.session.add(o) db.session.add(l) db.session.add(t) db.session.add(p) db.session.commit() instance.lobby_id = l.id g.player = o instance.on_kick(p.id) l = db.session.merge(l) self.assertEqual(len(l.teams[0]), 0)
def test_on_set_lobby_name(self, magic_make, magic_item_make, magic_broadcast): instance = self._makeOne() o = Player('') l = Lobby('', o, '', '', '', '') t = Team('Red') l.teams.append(t) p = Player('0') t.append_player(p) db.session.add(o) db.session.add(l) db.session.add(t) db.session.add(p) db.session.commit() instance.lobby_id = l.id g.player = o instance.on_set_lobby_name('test') l = db.session.merge(l) self.assertEqual(l.name, 'test')
def test_delete_team(self): l = self._makeLobby('Lobby', self.admin, 'test', 'test', 'test') t = Team('Red') l.teams.append(t) db.session.add(l) db.session.commit() resp = self.client.delete('/admin/rest/lobbies/%d/teams/0' % l.id) self.assertStatus(resp, 200) l = db.session.merge(l) self.assertEqual(len(l.teams), 0)
def post(self, lobby_id): l = Lobby.query.get(lobby_id) if l is None: abort(404) if 'name' not in request.form: abort(405) t = Team(request.form['name']) l.teams.append(t) db.session.commit() return jsonify(201, id=len(l.teams) - 1)
def test_toggle_ready(self): instance = self._makeOne() from lobbypy.models import Player, Team, LobbyPlayer t = Team('Red') p = Player('0') lp = LobbyPlayer(p) t.players.append(lp) instance.teams.append(t) instance.toggle_ready(p) self.assertTrue(instance.teams[0].players[0].ready)
def test_set_team(self): instance = self._makeOne() from lobbypy.models import Player, Team t = Team('Red') instance.teams.append(t) p = Player('0') instance.spectators.append(p) instance.set_team(p, 0) self.assertEqual(len(instance.teams[0].players), 1) self.assertEqual(instance.teams[0].players[0].player, p)
def test_update_team(self): l = self._makeLobby('Lobby', self.admin, 'test', 'test', 'test') t = Team('Red') l.teams.append(t) db.session.add(l) db.session.commit() resp = self.client.put('/admin/rest/lobbies/%d/teams/0' % l.id, data=dict(name='Blu')) self.assertStatus(resp, 200) l = db.session.merge(l) self.assertEqual(l.teams[0].name, 'Blu')
def test_get_team(self, magic_get_summary): l = self._makeLobby('A', self.admin, '', '', '') l.teams.append(Team('Red')) db.session.add(l) db.session.commit() magic_get_summary.return_value = {'personaname':'Anonymous'} resp = self.client.get('/admin/rest/lobbies/%d/teams/0' % l.id) self.assertTrue('team' in resp.json) team = resp.json['team'] self.assertTrue('name' in team) self.assertTrue('players' in team)
def test_set_class(self): instance = self._makeOne() from lobbypy.models import Player, Team, LobbyPlayer t = Team('Red') p = Player('0') lp = LobbyPlayer(p) t.players.append(lp) instance.teams.append(t) print len(instance.teams) instance.set_class(p, 0) self.assertEqual(instance.teams[0].players[0].class_id, 0)
def test_on_set_class(self, magic_make, magic_item_make, magic_broadcast): instance = self._makeOne() o = Player('') l = self._makeLobby(owner=o) t = Team('Red') l.teams.append(t) p = Player('0') t.join(p) db.session.add(o) db.session.add(l) db.session.add(t) db.session.add(p) db.session.commit() instance.lobby_id = l.id instance.ctx.g.player = p instance.allowed_methods = set(['on_leave', 'recv_connect', 'on_set_team', 'on_set_class', 'on_toggle_ready']) instance.on_set_class(0) self.assertEqual(instance.allowed_methods, set(['on_leave', 'recv_connect', 'on_set_class', 'on_toggle_ready', 'on_set_team'])) self.assertEqual(l.teams[0].players[0].class_id, 0)
def test_on_toggle_ready(self, magic_make, magic_broadcast): instance = self._makeOne() o = Player('') l = Lobby('', o, '', '', '', '') t = Team('Red') l.teams.append(t) p = Player('0') t.append_player(p) db.session.add(o) db.session.add(l) db.session.add(t) db.session.add(p) db.session.commit() instance.lobby_id = l.id g.player = p instance.allowed_methods = set(['on_leave', 'recv_connect', 'on_set_team', 'on_set_class', 'on_toggle_ready']) instance.on_toggle_ready() self.assertEqual(instance.allowed_methods, set(['on_leave', 'recv_connect', 'on_toggle_ready'])) self.assertTrue(l.teams[0].players[0].ready)
def test_append_lobby_player(self): l = self._makeLobby('Lobby', self.admin, 'test', 'test', 'test') t = Team('Red') p = Player('0') l.teams.append(t) db.session.add(p) db.session.add(l) db.session.commit() resp = self.client.post('/admin/rest/lobbies/%d/teams/0/players' % l.id, data=dict(player_id = p.id)) self.assertStatus(resp, 201) l = db.session.merge(l) self.assertEqual(len(l.teams[0].players), 1)
def test_with_teamed_lobbies(self): from lobbypy.models import Player, Lobby, Team o = Player('1') p = Player('0') db.session.add(o) db.session.add(p) l = Lobby('test', o, 'test', 'test', 'test', teams=[]) t = Team('Red') l.teams.append(t) l.teams[0].join(p) db.session.add(l) db.session.commit() rv = self._callFUT(p) l_dels = [] for l_del in rv: l_dels.append(l_del) self.assertEqual(len(l_dels), 1) self.assertEqual(l_dels[0], (l, False))
def test_get_lobby_player_listing(self, magic_get_summary): l = self._makeLobby('A', self.admin, '', '', '') t = Team('Red') p = Player('0') t.join(self.admin) t.join(p) l.teams.append(t) db.session.add(l) db.session.commit() magic_get_summary.return_value = {'personaname':'Anonymous'} resp = self.client.get('/admin/rest/lobbies/%d/teams/0/players' % l.id) self.assertTrue('lobby_players' in resp.json) l_players = resp.json['lobby_players'] self.assertEqual(len(l_players), 2)
def _makeOne(self, name='Red'): from lobbypy.models import Team return Team(name)