示例#1
0
    def test_leave_session(self):
        g = GameManager()
        room_name = 'AAAAAAA'
        g.locks[room_name] = Lock()

        socket = 'socket'
        g.rooms[room_name] = [(False, None, 'user1'), (False, None, 'user2'),
                              (False, None, 'user3')]

        reason = 'User is not a part of any game'
        expected = [(socket, {
            'type': 'Leave_Session',
            'room_name': room_name,
            'status': 'failed',
            'reason': reason,
            'end': False
        })]
        self.assertEquals(g.leave_session(room_name, socket), expected)

        username = '******'
        g.rooms['BBBBBBB'] = [(False, socket, username)]
        g.socket_to_username[socket] = username
        reason = g.socket_to_username[socket] + ' is not a part of the game'
        expected = [(socket, {
            'type': 'Leave_Session',
            'room_name': room_name,
            'status': 'failed',
            'reason': reason,
            'end': False
        })]
        self.assertEquals(g.leave_session(room_name, socket), expected)

        g.rooms['BBBBBBB'] = []
        g.join_room(room_name, username, socket)
        self.assertEquals(len(g.rooms[room_name]), 4)
        self.assertEquals(g.socket_to_room[socket], room_name)
        self.assertEquals(g.socket_to_username[socket], username)

        g.leave_session(room_name, socket)
        self.assertEquals(len(g.rooms[room_name]), 3)
        self.assertEquals(socket in g.socket_to_room, False)
        self.assertEquals(socket in g.socket_to_username, False)

        g.rooms['ASDFQWER'] = [(False, None, 'user1'),
                               (False, socket, 'user2'),
                               (False, None, 'user3')]
        g.socket_to_username[socket] = 'user2'
        g.socket_to_room[socket] = 'ASDFQWER'
        g.locks['ASDFQWER'] = Lock()
        g.games_in_progress.add('ASDFQWER')
        g.leave_session('Room Name Not Given', socket)
        self.assertEquals('ASDFQWER' not in g.games_in_progress, True)
        self.assertEquals(g.username_used('user2', 'ASDFQWER'), False)
示例#2
0
    def test_join_room(self):
        g = GameManager()
        room = 'ASDFGHJ'
        username = '******'
        socket = 'None'
        reason = 'room name does not exist'
        g.locks[room] = Lock()
        self.assertEquals(g.join_room(room, username, socket),
                          [(socket, {
                              'type': 'Joined',
                              'room_name': 'ASDFGHJ',
                              'usernames': [username],
                              'status': 'failed',
                              'reason': reason
                          })])

        g.rooms[room] = [(None, socket, username)]
        reason = 'The username: '******' is already taken'
        self.assertEquals(g.join_room(room, username, socket),
                          [(socket, {
                              'type': 'Joined',
                              'room_name': 'ASDFGHJ',
                              'usernames': [username],
                              'status': 'failed',
                              'reason': reason
                          })])

        g.socket_to_room[socket] = 'OTHERRM'
        g.rooms[room] = [(False, None, 'user1')]
        reason = 'user is already a part of a room'
        self.assertEquals(g.join_room(room, username, socket),
                          [(socket, {
                              'type': 'Joined',
                              'room_name': 'ASDFGHJ',
                              'usernames': [username],
                              'status': 'failed',
                              'reason': reason
                          })])

        del g.socket_to_room[socket]
        expected = [(socket, {
            'type': 'Joined',
            'room_name': 'ASDFGHJ',
            'usernames': [username],
            'status': 'failed',
            'reason': reason
        })]
        g.join_room(room, username, socket)
        self.assertEquals(g.socket_to_room[socket], room)
        self.assertEquals(g.socket_to_username[socket], username)
        self.assertEquals(g.rooms[room], [(False, None, 'user1'),
                                          (False, socket, username)])