Coverage for postrfp/jobs/cli.py: 0%
10 statements
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
« prev ^ index » next coverage.py v7.11.0, created at 2025-10-22 21:34 +0000
1"""CLI entrypoints for background tasks (Dagu / manual invocation)."""
3import logging
4import sys
5import click
7from .offload import process_event_task
9log = logging.getLogger(__name__)
12@click.group()
13def main(): # pragma: no cover - click wiring
14 """PostRFP job commands."""
17@main.command("process-event")
18@click.option("--event-id", type=int, required=True, help="AuditEvent id")
19def process_event(event_id: int):
20 """Process a single AuditEvent by id."""
21 try:
22 process_event_task(event_id)
23 except Exception as e: # pragma: no cover - defensive
24 log.exception("Failed processing event %s", event_id)
25 click.echo(str(e), err=True)
26 sys.exit(1)
29if __name__ == "__main__": # pragma: no cover
30 main()