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

1"""CLI entrypoints for background tasks (Dagu / manual invocation).""" 

2 

3import logging 

4import sys 

5import click 

6 

7from .offload import process_event_task 

8 

9log = logging.getLogger(__name__) 

10 

11 

12@click.group() 

13def main(): # pragma: no cover - click wiring 

14 """PostRFP job commands.""" 

15 

16 

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) 

27 

28 

29if __name__ == "__main__": # pragma: no cover 

30 main()