diff --git a/packit_service_fedmsg/callbacks.py b/packit_service_fedmsg/callbacks.py index f938ba4..3859b85 100644 --- a/packit_service_fedmsg/callbacks.py +++ b/packit_service_fedmsg/callbacks.py @@ -183,8 +183,19 @@ def _openscanhub_task_finished( packit_user: str, ) -> CallbackResult: return CallbackResult( - msg=f"[OpenScanHub] OpenScanHub task {event.get('task_id')} finished:" - f" added.js={event.get('added.js')}, fixed.js={event.get('fixed.js')}", + msg=f"[OpenScanHub] OpenScanHub task {event.get('task_id')} " + f"finished with status {event.get('status')}: " + f"added.js={event.get('added.js')}, fixed.js={event.get('fixed.js')}.", + ) + + +def _openscanhub_task_started( + topic: str, + event: dict, + packit_user: str, +) -> CallbackResult: + return CallbackResult( + msg=f"[OpenScanHub] OpenScanHub task {event.get('task_id')} started.", ) @@ -204,5 +215,6 @@ def _openscanhub_task_finished( "org.fedoraproject.prod.pagure.pull-request.closed": _fedora_dg_pr_closed, "org.fedoraproject.prod.hotness.update.bug.file": _hotness_bugzilla, "org.release-monitoring.prod.anitya.project.version.update.v2": _anitya_version_update, - "org.fedoraproject.prod.openscanhub.task.finish": _openscanhub_task_finished, + "org.fedoraproject.prod.openscanhub.task.started": _openscanhub_task_started, + "org.fedoraproject.prod.openscanhub.task.finished": _openscanhub_task_finished, } diff --git a/tests/data/openscanhub_task_finished.json b/tests/data/openscanhub_task_finished.json index 6fdd297..dd39ef9 100644 --- a/tests/data/openscanhub_task_finished.json +++ b/tests/data/openscanhub_task_finished.json @@ -1,19 +1,19 @@ { "body": { - "added.js": "http://openscanhub.fedoraproject.org/task/15649/log/added.js?format=raw", - "fixed.js": "http://openscanhub.fedoraproject.org/task/15649/log/fixed.js?format=raw", - "scan-results.js": "http://openscanhub.fedoraproject.org/task/15649/log/gvisor-tap-vsock-0.7.5-1.20241007054606793155.pr405.23.g829aafd6/scan-results.js?format=raw", - "task_id": 15649 + "added.js": "http://openscanhub.fedoraproject.org/task/18302/log/added.js?format=raw", + "fixed.js": "http://openscanhub.fedoraproject.org/task/18302/log/fixed.js?format=raw", + "scan-results.js": "http://openscanhub.fedoraproject.org/task/18302/log/podman-5.3.0~dev-1.20241020030546559147.pr24321.1796.24c178f39/scan-results.js?format=raw", + "status": "success", + "task_id": 18302 }, "headers": { "fedora_messaging_schema": "base.message", "fedora_messaging_severity": 20, "priority": 0, - "sent-at": "2024-10-07T06:03:21+00:00", - "task_id": 15649 + "sent-at": "2024-10-20T03:44:53+00:00" }, - "id": "631f77b4-74f8-41ca-b3e7-47401e30cc67", + "id": "36b9d2be-5452-467d-8503-d68462e8aa74", "priority": 0, "queue": null, - "topic": "org.fedoraproject.prod.openscanhub.task.finish" + "topic": "org.fedoraproject.prod.openscanhub.task.finished" } diff --git a/tests/data/openscanhub_task_started.json b/tests/data/openscanhub_task_started.json new file mode 100644 index 0000000..95043ed --- /dev/null +++ b/tests/data/openscanhub_task_started.json @@ -0,0 +1,15 @@ +{ + "body": { + "task_id": 18304 + }, + "headers": { + "fedora_messaging_schema": "base.message", + "fedora_messaging_severity": 20, + "priority": 0, + "sent-at": "2024-10-20T07:58:23+00:00" + }, + "id": "39d00df3-a8d0-40be-b555-970e9259fb69", + "priority": 0, + "queue": null, + "topic": "org.fedoraproject.prod.openscanhub.task.started" +} diff --git a/tests/test_openscanhub_task_finished.py b/tests/test_openscanhub_tasks.py similarity index 51% rename from tests/test_openscanhub_task_finished.py rename to tests/test_openscanhub_tasks.py index 1958056..68177c5 100644 --- a/tests/test_openscanhub_task_finished.py +++ b/tests/test_openscanhub_tasks.py @@ -11,10 +11,11 @@ from tests.spellbook import DATA_DIR -def test_task_finished_event(): - flexmock(Celery).should_receive("send_task").and_return(flexmock(id="a")).once() - with open(DATA_DIR / "openscanhub_task_finished.json") as outfile: - json_msg = json.load(outfile) - msg = message.loads(json.dumps(json_msg)) - c = Consumerino() - c(msg[0]) +def test_tasks_events(): + flexmock(Celery).should_receive("send_task").and_return(flexmock(id="a")).twice() + for event in ["openscanhub_task_finished", "openscanhub_task_started"]: + with open(DATA_DIR / f"{event}.json") as outfile: + json_msg = json.load(outfile) + msg = message.loads(json.dumps(json_msg)) + c = Consumerino() + c(msg[0])