From 4324f5ec003159d56aa0ed5d8956bced581a5158 Mon Sep 17 00:00:00 2001 From: Mohan Boddu Date: Mar 25 2020 19:09:09 +0000 Subject: Adding links to logs Signed-off-by: Mohan Boddu --- diff --git a/compose_tracker.py b/compose_tracker.py index 1fe42ee..e89c960 100755 --- a/compose_tracker.py +++ b/compose_tracker.py @@ -129,8 +129,12 @@ class Consumer(object): r = re.search(r'.*\[DONE \] ---------- PHASE.*', line) if r: break - - kojitaskline = line + if '/mnt/koji/' in line and 'See ' in line: + log_url = 'https://kojipkgs.fedoraproject.org/' + line.split('/mnt/koji/')[1].split()[0] + replace_log = '[' + line.split('See ')[1].split()[0] + '](' + log_url + ')' + kojitaskline = line.replace(line.split('See ')[1].split()[0], replace_log) + else: + kojitaskline = line if not text: text = "- No Task ID, look at log statement\n" kojitaskline = None diff --git a/test_consumer.py b/test_consumer.py index 25b86f5..661c4cd 100644 --- a/test_consumer.py +++ b/test_consumer.py @@ -249,4 +249,33 @@ def test_consumer_maintainer_pings(mocker, caplog): con.process(msg) assert "Variant: Spins, subvariant: SoaS task failed. Pinging maintainers: @pbrobinson" in caplog.text # Cannot assert particular maintainers since the set order is random - assert "Variant: Spins, subvariant: xfce task failed. Pinging maintainers" in caplog.text and "@kevin" in caplog.text and '@nonamedotc' in caplog.text and '@maxamillion' in caplog.text \ No newline at end of file + assert "Variant: Spins, subvariant: xfce task failed. Pinging maintainers" in caplog.text and "@kevin" in caplog.text and '@nonamedotc' in caplog.text and '@maxamillion' in caplog.text + +def test_log_urls(mocker, caplog): + "Test that we get the correct labels from the fedora-messaging message." + + mocker.patch("compose_tracker.PagureService") + + # set logs at DEBUG and capture this level + caplog.set_level(logging.DEBUG) + mocker.patch("compose_tracker.logger.level", logging.DEBUG) + + mocker.patch( + "compose_tracker.fedora_messaging.config.conf", + {"consumer_config": {"composes_to_skip": ["IoT"], "ks_repo": "https://pagure.io/fedora-kickstarts"}}, + ) + #mock the pungi.global.log file + req = mocker.patch("compose_tracker.requests.get", autospec=True) + text_mock = mocker.MagicMock() + text_mock.text.splitlines.return_value = EXAMPLE_PUNGI_LOG_INCOMPLETE.splitlines() + req.return_value = text_mock + + # mock maintainers.toml file + ks_toml = mocker.patch("compose_tracker.toml.loads", return_value = toml.loads(EXAMPLE_KS_MAINTAINERS)) + + con = Consumer() + msg = fedora_messaging.api.Message( + topic="org.fedoraproject.prod.pungi.compose.status.change", body=EXAMPLE_MESSAGE_BODY, + ) + con.process(msg) + assert '[/mnt/koji/compose/rawhide/Fedora-Rawhide-20200204.n.0/logs/x86_64/Silverblue/ostree-1/runroot.log](https://kojipkgs.fedoraproject.org/compose/rawhide/Fedora-Rawhide-20200204.n.0/logs/x86_64/Silverblue/ostree-1/runroot.log)' in caplog.text