Skip to content

Commit

Permalink
follow redirects in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
mfrasco committed Nov 11, 2023
1 parent a20c685 commit 196b68b
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 15 deletions.
18 changes: 9 additions & 9 deletions nobles_and_peasants/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,22 +35,22 @@ def signup():
if (party_name is None) or (party_name == ""):
msg = "Unsuccessful! You must choose a name for your party."
flash(msg)
return render_template("login.html", party_name=None)
return redirect(url_for("show_login"))

if (password is None) or (password == ""):
msg = "Unsuccessful! You must choose a password for your party."
flash(msg)
return render_template("login.html", party_name=None)
return redirect(url_for("show_login"))

if does_party_name_exist(db=db, party_name=party_name):
msg = f"Unsuccessful! Please choose a different party name. Someone already selected {party_name}."
flash(msg)
return render_template("login.html", party_name=None)
return redirect(url_for("show_login"))

insert_new_party(db=db, party_name=party_name, password=password)
flash("Success! You can now log in to your party!")
return render_template("login.html", party_name=None)
return render_template("login.html", party_name=None)
return redirect(url_for("show_login"))
return redirect(url_for("show_login"))


@bp.route("/login", methods=("GET", "POST"))
Expand All @@ -66,19 +66,19 @@ def login():
if party is None:
msg = f"Unsuccessful! {party_name} has not been registered yet. Please sign up to create a party."
flash(msg)
return render_template("login.html", party_name=None)
return redirect(url_for("show_login"))

if not check_password_hash(pwhash=party["password"], password=password):
msg = f"Unsuccessful! That is not the correct password for {party_name}."
flash(msg)
return render_template("login.html", party_name=None)
return redirect(url_for("show_login"))

session.clear()
session["party_id"] = party["id"]
session["party_name"] = party_name
return render_template("what_is_this.html", party_name=party_name)
return redirect(url_for("what_is_this"))

return render_template("login.html", party_name=None)
return redirect(url_for("show_login"))


@bp.before_app_request
Expand Down
7 changes: 5 additions & 2 deletions tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,15 @@ def __init__(self, client):
def login(self, party_name, password):
"""Log in to a party."""
return self._client.post(
"/auth/login", data={"party_name": party_name, "password": password}
"/auth/login",
data={"party_name": party_name, "password": password},
follow_redirects=True,

)

def logout(self):
"""Log out of a party."""
return self._client.get("/auth/logout")
return self._client.get("/auth/logout", follow_redirects=True)


@pytest.fixture
Expand Down
10 changes: 6 additions & 4 deletions tests/test_auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@

def test_signup(client, app):
"""Test that signing up a new party creates a row in the database."""
assert client.get("/auth/signup").status_code == 200
assert client.get("/auth/signup", follow_redirects=True).status_code == 200

data = {"party_name": "test_signup_name", "password": "test_signup_pw"}
client.post("/auth/signup", data=data)
client.post("/auth/signup", data=data, follow_redirects=True)

with app.app_context():
db = get_db()
Expand All @@ -32,14 +32,16 @@ def test_signup(client, app):
def test_signup_validate_input(client, party_name, password, message):
"""Test that signup handles errors correctly."""
response = client.post(
"/auth/signup", data={"party_name": party_name, "password": password}
"/auth/signup",
data={"party_name": party_name, "password": password},
follow_redirects=True
)
assert message in response.data


def test_login(client, auth):
"""Test that logging in to a party sets session variables correctly."""
assert client.get("/auth/login").status_code == 200
assert client.get("/auth/login", follow_redirects=True).status_code == 200
response = auth.login(party_name="party_name_1", password="maya")
assert "What is Nobles and Peasants?" in response.text

Expand Down

0 comments on commit 196b68b

Please sign in to comment.