profile: rate-limit test for POST /profile/password
Exceeding the per-IP attempt cap within the window returns 429. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
47722dbb19
commit
224b023ca0
1 changed files with 27 additions and 0 deletions
|
|
@ -231,3 +231,30 @@ def test_new_password_works_for_login(app_and_user):
|
|||
)
|
||||
assert response.status_code == 302
|
||||
assert response.headers["Location"].endswith("/dashboard")
|
||||
|
||||
|
||||
def test_post_password_rate_limited(app_and_user):
|
||||
from l4d2web.routes.profile_routes import (
|
||||
PROFILE_PW_RATE_LIMIT_MAX_ATTEMPTS,
|
||||
reset_profile_password_rate_limits,
|
||||
)
|
||||
reset_profile_password_rate_limits()
|
||||
|
||||
app, uid, marker = app_and_user
|
||||
client = _logged_in_client(app, uid, marker)
|
||||
|
||||
for _ in range(PROFILE_PW_RATE_LIMIT_MAX_ATTEMPTS):
|
||||
_post_pw(
|
||||
client,
|
||||
current_password="WRONG",
|
||||
new_password="newpass12",
|
||||
confirm_new_password="newpass12",
|
||||
)
|
||||
|
||||
blocked = _post_pw(
|
||||
client,
|
||||
current_password="WRONG",
|
||||
new_password="newpass12",
|
||||
confirm_new_password="newpass12",
|
||||
)
|
||||
assert blocked.status_code == 429
|
||||
|
|
|
|||
Loading…
Reference in a new issue