def test_delete_user(): c = Client(App()) response = c.post( "/login", json.dumps({"email": "*****@*****.**", "password": "******"}) ) headers = {"Authorization": response.headers["Authorization"]} with db_session: assert User.exists(nickname="Mary") c.delete("/users/2", headers=headers) with db_session: assert not User.exists(nickname="Mary")
def test_add_user(smtp): assert len(smtp.outbox) == 0 c = Client(App(), extra_environ=dict(REMOTE_ADDR="127.0.0.1")) new_user_json = json.dumps( {"nickname": "NewUser", "email": "*****@*****.**", "password": "******"} ) response = c.post("/users", new_user_json, status=201) with db_session: assert User.exists(nickname="NewUser") assert User.get(nickname="NewUser").register_ip == "127.0.0.1" assert len(smtp.outbox) == 1 message = smtp.outbox[0] assert message["subject"] == "Confirm Your Email Address" assert message["To"] == "*****@*****.**" response = c.post("/users", new_user_json, status=409) assert response.json == {"validationError": "Email already exists"} assert len(smtp.outbox) == 1 with db_session: new_editor_json = json.dumps( { "nickname": "NewEditor", "email": "*****@*****.**", "password": "******", "groups": ["Editor"], } ) c.post("/users", new_editor_json) assert User.exists(nickname="NewEditor") assert Group.get(name="Editor") in User.get(nickname="NewEditor").groups assert User.get(nickname="NewEditor").email == "*****@*****.**" assert len(smtp.outbox) == 2 message = smtp.outbox[1] assert message["subject"] == "Confirm Your Email Address" assert message["To"] == "*****@*****.**" new_user_json = json.dumps( { "nickname": "NewUser", "email": "*****@*****.**", "password": "******", } ) response = c.post("/users", new_user_json, status=422) assert response.json == {"email": ["Email could not be delivered"]} new_user_json = json.dumps( {"nickname": "NewUser", "email": "newuser@example", "password": "******"} ) response = c.post("/users", new_user_json, status=422) assert response.json == {"email": ["Not valid email"]} new_user_json = json.dumps( { "nickname": 123, "email": "*****@*****.**", "password": "******", } ) response = c.post("/users", new_user_json, status=422) assert response.json == {"nickname": ["must be of string type"]}