def test_valid_user_preferences(client):
    # create the user
    add_user("foo", "*****@*****.**", "foobar")
    preferences = {
        "favorite_cast_member": "Goldie Hawn",
        "favorite_genre": "Comedy",
        "preferred_ratings": ["G", "PG", "PG-13"]
    }

    # update user preferences
    result = update_prefs("*****@*****.**", preferences)
    assert result.matched_count == 1
    assert result.modified_count == 1

    # get the user
    user = get_user("*****@*****.**")
    assert user.get('preferences') is not None
    new_preferences = {
        "favorite_cast_member": "Daniel Day-Lewis",
        "favorite_genre": "Drama",
        "preferred_ratings": ["R"]
    }
    result = update_prefs(user.get('email'), new_preferences)
    assert result.matched_count == 1
    assert result.modified_count == 1
    user = get_user("*****@*****.**")
    assert user.get("preferences") == new_preferences
def test_should_not_allow_None_as_prefs(client):
    add_user("foo", "*****@*****.**", "foobar")
    prefs = None
    update_prefs("*****@*****.**", prefs)

    user = get_user("*****@*****.**")
    assert user.get("preferences") == {}
def test_empty_prefs_are_valid(client):
    new_prefs = {}
    result = update_prefs("*****@*****.**", new_prefs)

    assert result.matched_count == 1
    assert result.modified_count == 1

    user = get_user("*****@*****.**")
    assert user.get("preferences") == {}
Exemplo n.º 4
0
def save():
    claims = get_jwt_claims()
    user = User.from_claims(claims)
    body = request.get_json()
    prefs = expect(body.get('preferences'), dict, 'preferences')
    try:
        # get an updated user, remove the password
        update_prefs(user.email, prefs)
        updated_user = User(get_user(user.email))
        del updated_user.password
        updated_jwt = create_access_token(updated_user.to_json())
        # lastly, update the user's session
        response_object = {
            'auth_token': updated_jwt,
            'info': updated_user.to_json(),
        }
        return make_response(jsonify(response_object)), 201
    except Exception as e:
        response_object = {'error': {'internal': str(e)}}
        return make_response(jsonify(response_object)), 500
def test_invalid_user_should_not_have_preferences(client):
    # delete the test user if it exists
    delete_user('*****@*****.**')
    preferences = {
        "color": "green",
        "favorite_letter": "q",
        "favorite_number": 42
    }

    result = update_prefs('*****@*****.**', preferences)

    assert result.get('error', None) is not None
    assert isinstance(result, UpdateResult) is False