fix(tradein/rbac): аноним на admin-префиксе получает единый 404 — существование admin-ручек снаружи не перебирается #3371
1 changed files with 10 additions and 1 deletions
|
|
@ -486,7 +486,16 @@ def test_anon_admin_cloak_covers_all_unauthenticated_branches(
|
|||
assert (db_only.status_code, db_only.json()) == (baseline.status_code, baseline.json()), (
|
||||
f"db_only без сессии → {db_only.status_code} {db_only.json()}"
|
||||
)
|
||||
assert client.get("/api/v1/me").status_code == 401
|
||||
# Различимость ветки: без заголовка 401 на non-admin пути даёт и db_only, и
|
||||
# dual — отличается только текст. Сравнение РАВЕНСТВОМ, а не `in`:
|
||||
# db_only-строка является подстрокой dual-строки ("no authenticated user
|
||||
# (valid session required)"), и `in` прошёл бы, даже если monkeypatch
|
||||
# режима тихо не подействовал, т.е. ветка была бы нефальсифицируемой.
|
||||
me = client.get("/api/v1/me")
|
||||
assert me.status_code == 401
|
||||
assert me.json()["detail"] == "valid session required", (
|
||||
f"ожидалась db_only-ветка, получено {me.json()['detail']!r}"
|
||||
)
|
||||
|
||||
|
||||
def test_real_app_does_not_redirect_trailing_slash() -> None:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue