Loading tests/test_account.py +14 −26 Original line number Diff line number Diff line Loading @@ -11,17 +11,15 @@ def test_login_and_out(testclient, slapd_connection, user): res.form["login"] = "John Doe" res.form["password"] = "correct horse battery staple" res = res.form.submit() res = res.follow() res = res.follow() assert 200 == res.status_code res = res.follow(status=302) res = res.follow(status=200) with testclient.session_transaction() as session: assert user.dn == session.get("user_dn") res = testclient.get("/logout") res = res.follow() res = res.follow() assert 200 == res.status_code res = res.follow(status=302) res = res.follow(status=200) with testclient.session_transaction() as session: assert session.get("user_dn") is None Loading @@ -35,8 +33,7 @@ def test_login_wrong_password(testclient, slapd_connection, user): res.form["login"] = "John Doe" res.form["password"] = "incorrect horse" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert b"Login failed, please check your information" in res.body Loading @@ -48,8 +45,7 @@ def test_login_no_password(testclient, slapd_connection, user): res.form["login"] = "John Doe" res.form["password"] = "" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert b"Login failed, please check your information" in res.body Loading @@ -59,10 +55,8 @@ def test_login_with_alternate_attribute(testclient, slapd_connection, user): res.form["login"] = "user" res.form["password"] = "correct horse battery staple" res = res.form.submit() res = res.follow() assert 302 == res.status_code res = res.follow() assert 200 == res.status_code res = res.follow(status=302) res = res.follow(status=200) with testclient.session_transaction() as session: assert user.dn == session.get("user_dn") Loading @@ -73,8 +67,7 @@ def test_password_forgotten(SMTP, testclient, slapd_connection, user): res = testclient.get("/reset", status=200) res.form["login"] = "user" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert "A password reset link has been sent at your email address." in res.text SMTP.assert_called_once_with(host="localhost", port=25) Loading @@ -85,8 +78,7 @@ def test_password_forgotten_invalid_form(SMTP, testclient, slapd_connection, use res = testclient.get("/reset", status=200) res.form["login"] = "" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert "Could not send the password reset link." in res.text SMTP.assert_not_called() Loading @@ -97,8 +89,7 @@ def test_password_forgotten_invalid(SMTP, testclient, slapd_connection, user): res = testclient.get("/reset", status=200) res.form["login"] = "i-dont-really-exist" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert "A password reset link has been sent at your email address." in res.text SMTP.assert_not_called() Loading @@ -114,11 +105,9 @@ def test_password_reset(testclient, slapd_connection, user): res.form["password"] = "foobarbaz" res.form["confirmation"] = "foobarbaz" res = res.form.submit() assert 302 == res.status_code res = res.form.submit(status=302) res = res.follow() assert 200 == res.status_code res = res.follow(status=200) with testclient.app.app_context(): assert user.check_password("foobarbaz") Loading Loading @@ -151,8 +140,7 @@ def test_password_reset_bad_password(testclient, slapd_connection, user): res.form["password"] = "foobarbaz" res.form["confirmation"] = "typo" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) with testclient.app.app_context(): assert user.check_password("correct horse battery staple") tests/test_authorization_code_flow.py +12 −22 Original line number Diff line number Diff line Loading @@ -17,8 +17,7 @@ def test_authorization_code_flow(testclient, slapd_connection, logged_user, clie status=200, ) res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) Loading Loading @@ -63,27 +62,21 @@ def test_logout_login(testclient, slapd_connection, logged_user, client): status=200, ) res = res.form.submit(name="answer", value="logout") assert 302 == res.status_code res = res.follow() assert 200 == res.status_code res = res.form.submit(name="answer", value="logout", status=302) res = res.follow(status=200) res.form["login"] = logged_user.name res.form["password"] = "wrong password" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert b"Login failed, please check your information" in res.body res.form["login"] = logged_user.name res.form["password"] = "correct horse battery staple" res = res.form.submit() assert 302 == res.status_code res = res.follow() res = res.form.submit(status=302) res = res.follow(status=200) assert 200 == res.status_code res = res.form.submit(name="answer", value="accept") res = res.form.submit(name="answer", value="accept", status=302) assert 302 == res.status_code assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) code = params["code"][0] Loading Loading @@ -127,8 +120,7 @@ def test_refresh_token(testclient, slapd_connection, logged_user, client): status=200, ) res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) Loading Loading @@ -195,8 +187,7 @@ def test_code_challenge(testclient, slapd_connection, logged_user, client): status=200, ) res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) Loading Loading @@ -249,8 +240,7 @@ def test_authorization_code_flow_when_consent_already_given( status=200, ) res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) Loading Loading @@ -284,8 +274,8 @@ def test_authorization_code_flow_when_consent_already_given( scope="profile", nonce="somenonce", ), status=302, ) assert 302 == res.status_code assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) assert "code" in params Loading @@ -307,8 +297,8 @@ def test_prompt_none(testclient, slapd_connection, logged_user, client): nonce="somenonce", prompt="none", ), status=302, ) assert 302 == res.status_code assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) assert "code" in params Loading tests/test_client_admin.py +3 −6 Original line number Diff line number Diff line Loading @@ -35,12 +35,10 @@ def test_client_add(testclient, logged_admin, slapd_connection): } for k, v in data.items(): res.form[k] = v res = res.form.submit() assert 302 == res.status_code res = res.follow() res = res.form.submit(status=302) res = res.follow(status=200) assert 200 == res.status_code client_id = res.forms["readonly"]["oauthClientID"].value client = Client.get(client_id, conn=slapd_connection) for k, v in data.items(): Loading Loading @@ -72,9 +70,8 @@ def test_client_edit(testclient, client, logged_admin, slapd_connection): } for k, v in data.items(): res.forms["clientadd"][k] = v res = res.forms["clientadd"].submit() res = res.forms["clientadd"].submit(status=200) assert 200 == res.status_code client.reload(conn=slapd_connection) for k, v in data.items(): client_value = getattr(client, k) Loading tests/test_consent.py +2 −4 Original line number Diff line number Diff line Loading @@ -9,11 +9,9 @@ def test_consent_list( assert client.oauthClientName in res.text assert not token.revoked res = testclient.get(f"/consent/delete/{consent.cn[0]}") assert 302 == res.status_code res = testclient.get(f"/consent/delete/{consent.cn[0]}", status=302) res = res.follow() assert 200 == res.status_code res = res.follow(status=200) assert client.oauthClientName not in res.text token.reload(conn=slapd_connection) Loading tests/test_hybrid_flow.py +8 −10 Original line number Diff line number Diff line Loading @@ -12,19 +12,18 @@ def test_oauth_hybrid(testclient, slapd_connection, user, client): scope="openid profile", nonce="somenonce", ), status=200, ) assert (200, "text/html") == (res.status_code, res.content_type), res.json assert "text/html" == res.content_type, res.json res.form["login"] = user.name res.form["password"] = "correct horse battery staple" res = res.form.submit() assert 302 == res.status_code res = res.form.submit(status=302) res = res.follow() assert (200, "text/html") == (res.status_code, res.content_type), res.json res = res.follow(status=200) assert "text/html" == res.content_type, res.json res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).fragment) Loading Loading @@ -55,10 +54,9 @@ def test_oidc_hybrid(testclient, slapd_connection, logged_user, client, keypair) nonce="somenonce", ), ) assert (200, "text/html") == (res.status_code, res.content_type), res.json assert "text/html" == res.content_type, res.json res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).fragment) Loading Loading
tests/test_account.py +14 −26 Original line number Diff line number Diff line Loading @@ -11,17 +11,15 @@ def test_login_and_out(testclient, slapd_connection, user): res.form["login"] = "John Doe" res.form["password"] = "correct horse battery staple" res = res.form.submit() res = res.follow() res = res.follow() assert 200 == res.status_code res = res.follow(status=302) res = res.follow(status=200) with testclient.session_transaction() as session: assert user.dn == session.get("user_dn") res = testclient.get("/logout") res = res.follow() res = res.follow() assert 200 == res.status_code res = res.follow(status=302) res = res.follow(status=200) with testclient.session_transaction() as session: assert session.get("user_dn") is None Loading @@ -35,8 +33,7 @@ def test_login_wrong_password(testclient, slapd_connection, user): res.form["login"] = "John Doe" res.form["password"] = "incorrect horse" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert b"Login failed, please check your information" in res.body Loading @@ -48,8 +45,7 @@ def test_login_no_password(testclient, slapd_connection, user): res.form["login"] = "John Doe" res.form["password"] = "" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert b"Login failed, please check your information" in res.body Loading @@ -59,10 +55,8 @@ def test_login_with_alternate_attribute(testclient, slapd_connection, user): res.form["login"] = "user" res.form["password"] = "correct horse battery staple" res = res.form.submit() res = res.follow() assert 302 == res.status_code res = res.follow() assert 200 == res.status_code res = res.follow(status=302) res = res.follow(status=200) with testclient.session_transaction() as session: assert user.dn == session.get("user_dn") Loading @@ -73,8 +67,7 @@ def test_password_forgotten(SMTP, testclient, slapd_connection, user): res = testclient.get("/reset", status=200) res.form["login"] = "user" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert "A password reset link has been sent at your email address." in res.text SMTP.assert_called_once_with(host="localhost", port=25) Loading @@ -85,8 +78,7 @@ def test_password_forgotten_invalid_form(SMTP, testclient, slapd_connection, use res = testclient.get("/reset", status=200) res.form["login"] = "" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert "Could not send the password reset link." in res.text SMTP.assert_not_called() Loading @@ -97,8 +89,7 @@ def test_password_forgotten_invalid(SMTP, testclient, slapd_connection, user): res = testclient.get("/reset", status=200) res.form["login"] = "i-dont-really-exist" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert "A password reset link has been sent at your email address." in res.text SMTP.assert_not_called() Loading @@ -114,11 +105,9 @@ def test_password_reset(testclient, slapd_connection, user): res.form["password"] = "foobarbaz" res.form["confirmation"] = "foobarbaz" res = res.form.submit() assert 302 == res.status_code res = res.form.submit(status=302) res = res.follow() assert 200 == res.status_code res = res.follow(status=200) with testclient.app.app_context(): assert user.check_password("foobarbaz") Loading Loading @@ -151,8 +140,7 @@ def test_password_reset_bad_password(testclient, slapd_connection, user): res.form["password"] = "foobarbaz" res.form["confirmation"] = "typo" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) with testclient.app.app_context(): assert user.check_password("correct horse battery staple")
tests/test_authorization_code_flow.py +12 −22 Original line number Diff line number Diff line Loading @@ -17,8 +17,7 @@ def test_authorization_code_flow(testclient, slapd_connection, logged_user, clie status=200, ) res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) Loading Loading @@ -63,27 +62,21 @@ def test_logout_login(testclient, slapd_connection, logged_user, client): status=200, ) res = res.form.submit(name="answer", value="logout") assert 302 == res.status_code res = res.follow() assert 200 == res.status_code res = res.form.submit(name="answer", value="logout", status=302) res = res.follow(status=200) res.form["login"] = logged_user.name res.form["password"] = "wrong password" res = res.form.submit() assert 200 == res.status_code res = res.form.submit(status=200) assert b"Login failed, please check your information" in res.body res.form["login"] = logged_user.name res.form["password"] = "correct horse battery staple" res = res.form.submit() assert 302 == res.status_code res = res.follow() res = res.form.submit(status=302) res = res.follow(status=200) assert 200 == res.status_code res = res.form.submit(name="answer", value="accept") res = res.form.submit(name="answer", value="accept", status=302) assert 302 == res.status_code assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) code = params["code"][0] Loading Loading @@ -127,8 +120,7 @@ def test_refresh_token(testclient, slapd_connection, logged_user, client): status=200, ) res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) Loading Loading @@ -195,8 +187,7 @@ def test_code_challenge(testclient, slapd_connection, logged_user, client): status=200, ) res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) Loading Loading @@ -249,8 +240,7 @@ def test_authorization_code_flow_when_consent_already_given( status=200, ) res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) Loading Loading @@ -284,8 +274,8 @@ def test_authorization_code_flow_when_consent_already_given( scope="profile", nonce="somenonce", ), status=302, ) assert 302 == res.status_code assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) assert "code" in params Loading @@ -307,8 +297,8 @@ def test_prompt_none(testclient, slapd_connection, logged_user, client): nonce="somenonce", prompt="none", ), status=302, ) assert 302 == res.status_code assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).query) assert "code" in params Loading
tests/test_client_admin.py +3 −6 Original line number Diff line number Diff line Loading @@ -35,12 +35,10 @@ def test_client_add(testclient, logged_admin, slapd_connection): } for k, v in data.items(): res.form[k] = v res = res.form.submit() assert 302 == res.status_code res = res.follow() res = res.form.submit(status=302) res = res.follow(status=200) assert 200 == res.status_code client_id = res.forms["readonly"]["oauthClientID"].value client = Client.get(client_id, conn=slapd_connection) for k, v in data.items(): Loading Loading @@ -72,9 +70,8 @@ def test_client_edit(testclient, client, logged_admin, slapd_connection): } for k, v in data.items(): res.forms["clientadd"][k] = v res = res.forms["clientadd"].submit() res = res.forms["clientadd"].submit(status=200) assert 200 == res.status_code client.reload(conn=slapd_connection) for k, v in data.items(): client_value = getattr(client, k) Loading
tests/test_consent.py +2 −4 Original line number Diff line number Diff line Loading @@ -9,11 +9,9 @@ def test_consent_list( assert client.oauthClientName in res.text assert not token.revoked res = testclient.get(f"/consent/delete/{consent.cn[0]}") assert 302 == res.status_code res = testclient.get(f"/consent/delete/{consent.cn[0]}", status=302) res = res.follow() assert 200 == res.status_code res = res.follow(status=200) assert client.oauthClientName not in res.text token.reload(conn=slapd_connection) Loading
tests/test_hybrid_flow.py +8 −10 Original line number Diff line number Diff line Loading @@ -12,19 +12,18 @@ def test_oauth_hybrid(testclient, slapd_connection, user, client): scope="openid profile", nonce="somenonce", ), status=200, ) assert (200, "text/html") == (res.status_code, res.content_type), res.json assert "text/html" == res.content_type, res.json res.form["login"] = user.name res.form["password"] = "correct horse battery staple" res = res.form.submit() assert 302 == res.status_code res = res.form.submit(status=302) res = res.follow() assert (200, "text/html") == (res.status_code, res.content_type), res.json res = res.follow(status=200) assert "text/html" == res.content_type, res.json res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).fragment) Loading Loading @@ -55,10 +54,9 @@ def test_oidc_hybrid(testclient, slapd_connection, logged_user, client, keypair) nonce="somenonce", ), ) assert (200, "text/html") == (res.status_code, res.content_type), res.json assert "text/html" == res.content_type, res.json res = res.form.submit(name="answer", value="accept") assert 302 == res.status_code res = res.form.submit(name="answer", value="accept", status=302) assert res.location.startswith(client.oauthRedirectURIs[0]) params = parse_qs(urlsplit(res.location).fragment) Loading