Skip to content

Commit 5f64d64

Browse files
committed
chore: ruff clean, validate created_after query param
- tests/test_rbac.py: remove unused args variable in test_manage_py_accepts_viewer_role, clean up redundant parse_known_args call - app.py: validate created_after ISO datetime before passing to SQL; returns 400 on malformed input instead of propagating a database error
1 parent fb6e38e commit 5f64d64

2 files changed

Lines changed: 5 additions & 5 deletions

File tree

app.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,10 @@ def alert_filters(extra=None):
270270
# created_after: ISO datetime string (additive param, no existing filter affected)
271271
created_after = (request.args.get("created_after") or "").strip()
272272
if created_after:
273+
try:
274+
datetime.fromisoformat(created_after.replace("Z", "+00:00"))
275+
except ValueError:
276+
abort(400, description="created_after must be an ISO 8601 datetime")
273277
where_sql.append("created_at >= %s")
274278
params.append(created_after)
275279
sql = (" WHERE " + " AND ".join(where_sql)) if where_sql else ""

tests/test_rbac.py

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -339,12 +339,8 @@ def test_created_after_today_includes_just_created_alert():
339339
# ── manage.py viewer role ─────────────────────────────────────────────────────
340340

341341
def test_manage_py_accepts_viewer_role():
342-
import manage
343-
# Dry-run: parse the args without actually connecting to DB.
344-
args = manage.main.__code__ # just ensure it's importable
345-
# More directly: the argparse choices include 'viewer'.
346-
parser_ns, _ = __import__("argparse").ArgumentParser().parse_known_args([])
347342
import argparse
343+
import manage # noqa: F401 — ensure it's importable without connecting to DB
348344
p = argparse.ArgumentParser()
349345
p.add_argument("--role", choices=["viewer", "analyst", "admin"], default="analyst")
350346
ns = p.parse_args(["--role", "viewer"])

0 commit comments

Comments
 (0)