Esempio n. 1
0
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")
Esempio n. 2
0
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"]}