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") == {}
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