コード例 #1
0
 def test_update_room(self):
     room_post = self.app.post('/rooms/')
     self.assertEqual(room_post.status_code, 201)
     self.assertTrue(valid_room_id(room_post.json))
     room_id = room_post.json
     add_players_test = self.app.patch(
         '/rooms/%s' % room_id,
         json={"players": ["user-1"]},
         headers={'Content-Type': 'application/json'})
     self.assertEqual(add_players_test.status_code, 200)
コード例 #2
0
    def test_room_get_id(self):
        rooms_get = self.app.get('/rooms/ASDF')
        self.assertEqual(rooms_get.status_code, 404)

        room_post = self.app.post('/rooms/')
        self.assertEqual(room_post.status_code, 201)
        self.assertTrue(valid_room_id(room_post.json))
        room_id = room_post.json

        rooms_get = self.app.get('/rooms/%s' % room_id)
        self.assertEqual(rooms_get.status_code, 200)
        self.assertEqual(type(rooms_get.json), dict)
コード例 #3
0
    def test_create_many_rooms(self):
        result_get_empty = self.app.get('/rooms/')
        self.assertEqual(result_get_empty.status_code, 200)
        self.assertEqual(result_get_empty.json, [])

        for rooms_created in range(1, 100):
            room_post = self.app.post('/rooms/')
            self.assertEqual(room_post.status_code, 201)
            self.assertTrue(valid_room_id(room_post.json))

            rooms_get = self.app.get('/rooms/')
            self.assertEqual(rooms_get.status_code, 200)
            self.assertEqual(len(rooms_get.json), rooms_created)
コード例 #4
0
    def test_rooms(self):
        result_get_empty = self.app.get('/rooms/')

        # assert the status code of the response
        self.assertEqual(result_get_empty.status_code, 200)
        self.assertEqual(result_get_empty.json, [])

        result_post_first = self.app.post('/rooms/')
        self.assertEqual(result_post_first.status_code, 201)
        self.assertTrue(valid_room_id(result_post_first.json))

        result_get_one = self.app.get('/rooms/')
        self.assertEqual(result_get_one.status_code, 200)
        self.assertEqual(len(result_get_one.json), 1)
コード例 #5
0
    def test_delete_room(self):
        room_post = self.app.post('/rooms/')
        self.assertEqual(room_post.status_code, 201)
        self.assertTrue(valid_room_id(room_post.json))
        room_id = room_post.json

        rooms_get = self.app.get('/rooms/')
        self.assertEqual(rooms_get.status_code, 200)
        self.assertEqual(rooms_get.json[0], room_id)

        rooms_delete = self.app.delete('/rooms/%s' % room_id)
        self.assertEqual(rooms_delete.status_code, 204)

        rooms_get = self.app.get('/rooms/')
        self.assertEqual(rooms_get.status_code, 200)
        self.assertEqual(rooms_get.json, [])

        rooms_delete = self.app.delete('/rooms/%s' % room_id)
        self.assertEqual(rooms_delete.status_code, 404)
コード例 #6
0
def attempt_join(join_room, join_name):
    if not valid_room_id(join_room):
        response = jsonify("Room Id not valid")
        response.status_code = 400
        return response
    elif not db_container.get_database().room_exists(join_room):
        response = jsonify("Room Id not found")
        response.status_code = 404
        return response
    session_name = session[
        SESSION_USERNAME] if SESSION_USERNAME in session else None
    session_room = session[SESSION_ROOM] if SESSION_ROOM in session else None

    # Fix the user's name so they can't change names
    #  from the same browser. They just rejoined the room so we're good
    if session_room != None and session_room == join_room and session_name != None:
        session[SESSION_USERNAME] = session_name
        session[SESSION_ROOM] = session_room

        response = jsonify({
            "status": "rejoin",
            "username": session_name,
            "room": session_room
        })
        response.status_code = 200
        return response

    # Attempt to join the room
    # Filter out invalid characters in name
    join_name = get_filtered_username(join_name)
    # Check to ensure name is valid
    if not valid_username(join_name):
        response = jsonify("Invalid username")
        response.status_code = 400
        return response

    # Check to ensure the game is not full
    if db_container.get_database().is_room_full(join_room):
        response = jsonify("Room is full")
        response.status_code = 401
        return response

    # Check to ensure the game is not full
    if db_container.get_database().is_player_in_room(join_room, join_name):
        response = jsonify("Name is taken")
        response.status_code = 401
        return response

    # Make request to join game from database
    join_name = db_container.get_database().add_player(join_room, join_name)

    if join_name == None:
        response = jsonify("Error joining room")
        response.status_code = 500
        return response

    # Set session token
    session[SESSION_USERNAME] = join_name
    session[SESSION_ROOM] = join_room

    response = jsonify({
        "status": "join",
        "username": join_name,
        "room": join_room
    })
    response.status_code = 200
    return response