From 5d8c890368b693ce46db3248cffe90f54c5f9206 Mon Sep 17 00:00:00 2001 From: Maja Massarini Date: Wed, 9 Oct 2024 15:01:56 +0200 Subject: [PATCH] Add OpenScanHub task finished message --- packit_service_fedmsg/callbacks.py | 12 ++++++++++++ tests/data/openscanhub_task_finished.json | 19 +++++++++++++++++++ tests/test_openscanhub_task_finished.py | 20 ++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 tests/data/openscanhub_task_finished.json create mode 100644 tests/test_openscanhub_task_finished.py diff --git a/packit_service_fedmsg/callbacks.py b/packit_service_fedmsg/callbacks.py index b85b8fe..f938ba4 100644 --- a/packit_service_fedmsg/callbacks.py +++ b/packit_service_fedmsg/callbacks.py @@ -177,6 +177,17 @@ def _anitya_version_update(topic: str, event: dict, packit_user: str) -> Callbac ) +def _openscanhub_task_finished( + topic: str, + event: dict, + 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')}", + ) + + # [WARNING] # Configuration of the topics to listen to needs to be changed in # a respective fedora.toml.j2 (https://github.com/packit/deployment/tree/main/secrets) @@ -193,4 +204,5 @@ def _anitya_version_update(topic: str, event: dict, packit_user: str) -> Callbac "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, } diff --git a/tests/data/openscanhub_task_finished.json b/tests/data/openscanhub_task_finished.json new file mode 100644 index 0000000..6fdd297 --- /dev/null +++ b/tests/data/openscanhub_task_finished.json @@ -0,0 +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 + }, + "headers": { + "fedora_messaging_schema": "base.message", + "fedora_messaging_severity": 20, + "priority": 0, + "sent-at": "2024-10-07T06:03:21+00:00", + "task_id": 15649 + }, + "id": "631f77b4-74f8-41ca-b3e7-47401e30cc67", + "priority": 0, + "queue": null, + "topic": "org.fedoraproject.prod.openscanhub.task.finish" +} diff --git a/tests/test_openscanhub_task_finished.py b/tests/test_openscanhub_task_finished.py new file mode 100644 index 0000000..1958056 --- /dev/null +++ b/tests/test_openscanhub_task_finished.py @@ -0,0 +1,20 @@ +# Copyright Contributors to the Packit project. +# SPDX-License-Identifier: MIT + +import json + +from celery import Celery +from fedora_messaging import message +from flexmock import flexmock + +from packit_service_fedmsg.consumer import Consumerino +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])