from fixtures import *


def test_change_username(app_admin):

    # these tests aren't supposed to mutate database
    rv = app_admin.post(
        "/auth/change_username", data={"username": "admin-tmp"}, follow_redirects=True
    )
    assert rv.status_code == 200
    rv = app_admin.get("/auth/account")
    assert b"admin-tmp" in rv.data

    rv = app_admin.post(
        "/auth/change_username", data={"username": "claire"}, follow_redirects=True
    )
    assert rv.status_code == 400
    rv = app_admin.get("/auth/account")
    assert b"admin-tmp" in rv.data

    rv = app_admin.post(
        "/auth/change_username", data={"username": "admin"}, follow_redirects=True
    )
    assert rv.status_code == 200
    rv = app_admin.get("/auth/account")
    assert b"admin-tmp" not in rv.data


def test_username_redirect(app_admin):

    rv = app_admin.get("/u/admin")
    assert rv.status_code == 302

    rv = app_admin.get("/u/bogus-not-registered")
    assert rv.status_code == 404