From 4e2767e0eab5fe99b9e99dfea8a8425a1297574b Mon Sep 17 00:00:00 2001 From: Petr Stodulka Date: Wed, 16 Nov 2022 14:10:48 +0100 Subject: [PATCH 29/32] checksystemdservicestasks: update docstrings + extend tests --- .../systemd/checksystemdservicetasks/actor.py | 11 +++++------ .../tests/test_checksystemdservicestasks.py | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/repos/system_upgrade/common/actors/systemd/checksystemdservicetasks/actor.py b/repos/system_upgrade/common/actors/systemd/checksystemdservicetasks/actor.py index 2df995ee..547a13df 100644 --- a/repos/system_upgrade/common/actors/systemd/checksystemdservicetasks/actor.py +++ b/repos/system_upgrade/common/actors/systemd/checksystemdservicetasks/actor.py @@ -7,17 +7,16 @@ from leapp.tags import IPUWorkflowTag, TargetTransactionChecksPhaseTag class CheckSystemdServicesTasks(Actor): """ - Inhibits upgrade if SystemdServicesTasks tasks are in conflict + Inhibit the upgrade if SystemdServicesTasks tasks are in conflict - There is possibility, that SystemdServicesTasks messages with conflicting - requested service states could be produced. For example a service is - requested to be both enabled and disabled. This actor inhibits upgrade in - such cases. + SystemdServicesTasks messages with conflicting requested service states + could be produced. For example a service could be requested to be both + - enabled and disabled. This actor inhibits upgrade in such cases. Note: We expect that SystemdServicesTasks could be produced even after the TargetTransactionChecksPhase (e.g. during the ApplicationPhase). The purpose of this actor is to report collisions in case we can already detect - them. In case of conflicts caused by produced messages later we just log + them. In case of conflicts caused by messages produced later we just log the collisions and the services will end up disabled. """ diff --git a/repos/system_upgrade/common/actors/systemd/checksystemdservicetasks/tests/test_checksystemdservicestasks.py b/repos/system_upgrade/common/actors/systemd/checksystemdservicetasks/tests/test_checksystemdservicestasks.py index 36ded92f..88c278d6 100644 --- a/repos/system_upgrade/common/actors/systemd/checksystemdservicetasks/tests/test_checksystemdservicestasks.py +++ b/repos/system_upgrade/common/actors/systemd/checksystemdservicetasks/tests/test_checksystemdservicestasks.py @@ -5,6 +5,7 @@ from leapp.libraries.actor import checksystemdservicetasks from leapp.libraries.common.testutils import create_report_mocked, CurrentActorMocked from leapp.libraries.stdlib import api from leapp.models import SystemdServicesTasks +from leapp.utils.report import is_inhibitor @pytest.mark.parametrize( @@ -44,6 +45,18 @@ from leapp.models import SystemdServicesTasks ], True ), + ( + [ + SystemdServicesTasks(to_enable=['hello.service']), + SystemdServicesTasks(to_disable=['world.service']), + SystemdServicesTasks(to_enable=['hello.service', 'kitty.service']) + ], + False + ), + ( + [], + False + ) ] ) def test_conflicts_detected(monkeypatch, tasks, should_inhibit): @@ -55,6 +68,7 @@ def test_conflicts_detected(monkeypatch, tasks, should_inhibit): checksystemdservicetasks.check_conflicts() assert bool(created_reports.called) == should_inhibit + assert is_inhibitor(created_reports.report_fields) == should_inhibit @pytest.mark.parametrize( @@ -84,5 +98,5 @@ def test_coflict_reported(monkeypatch, tasks, expected_reported): checksystemdservicetasks.check_conflicts() - report_summary = reporting.create_report.report_fields['summary'] + report_summary = created_reports.report_fields['summary'] assert all(service in report_summary for service in expected_reported) -- 2.38.1