From 743e2369b943744fcc716c6da1c3d99d791f2fba Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Wed, 18 Mar 2026 09:16:50 +0100 Subject: [PATCH] =?UTF-8?q?feat:=20add=20tests=20for=20=E2=80=B9dnf5=20con?= =?UTF-8?q?fig-manager=20enable|disable=E2=80=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Related to rpm-software-management/dnf5#1840 Signed-off-by: Matej Focko --- .../plugins-core/config-manager-repos.feature | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 dnf-behave-tests/dnf/plugins-core/config-manager-repos.feature diff --git a/dnf-behave-tests/dnf/plugins-core/config-manager-repos.feature b/dnf-behave-tests/dnf/plugins-core/config-manager-repos.feature new file mode 100644 index 000000000..762c5f39a --- /dev/null +++ b/dnf-behave-tests/dnf/plugins-core/config-manager-repos.feature @@ -0,0 +1,83 @@ +Feature: dnf "config-manager" command — test "enable" and "disable" subcommands + +Background: + Given I create file "/etc/yum.repos.d/base-oss.repo" with + """ + [base-oss] + name=repository file + enabled=1 + baseurl=http://something1.com/os/ + """ + And I create file "/etc/yum.repos.d/base-nonoss.repo" with + """ + [base-non-oss] + name=repository file + enabled=0 + baseurl=http://something2.com/os/ + """ + And I create file "/etc/yum.repos.d/updates-oss.repo" with + """ + [updates-oss] + name=repository file + enabled=1 + baseurl=http://something3.com/os/ + """ + +Scenario: specific repository gets enabled + Given I create directory "/etc/dnf/repos.override.d/" + When I execute dnf with args "config-manager enable base-oss" + Then the exit code is 0 + And file "/etc/dnf/repos.override.d/99-config_manager.repo" contents is + """ + # Generated by dnf5 config-manager. + # Do not modify this file manually, use dnf5 config-manager instead. + [base-oss] + enabled=1 + """ + +Scenario: specific repository gets disabled + Given I create directory "/etc/dnf/repos.override.d/" + When I execute dnf with args "config-manager disable base-oss" + Then the exit code is 0 + And file "/etc/dnf/repos.override.d/99-config_manager.repo" contents is + """ + # Generated by dnf5 config-manager. + # Do not modify this file manually, use dnf5 config-manager instead. + [base-oss] + enabled=0 + """ + +Scenario: specific repository gets disabled and then re-enabled + Given I create directory "/etc/dnf/repos.override.d/" + When I execute dnf with args "config-manager disable base-oss" + And I execute dnf with args "config-manager enable base-oss" + Then the exit code is 0 + And file "/etc/dnf/repos.override.d/99-config_manager.repo" contents is + """ + # Generated by dnf5 config-manager. + # Do not modify this file manually, use dnf5 config-manager instead. + [base-oss] + enabled=1 + """ + +Scenario: pattern is used for enabling repositories + Given I create directory "/etc/dnf/repos.override.d/" + When I execute dnf with args "config-manager enable *-oss" + Then the exit code is 0 + And file "/etc/dnf/repos.override.d/99-config_manager.repo" contents is + """ + # Generated by dnf5 config-manager. + # Do not modify this file manually, use dnf5 config-manager instead. + [base-non-oss] + enabled=1 + [base-oss] + enabled=1 + [updates-oss] + enabled=1 + """ + +Scenario: invalid pattern is used + Given I create directory "/etc/dnf/repos.override.d/" + When I execute dnf with args "config-manager enable *-proprietary" + Then the exit code is 1 + And stderr contains "No matching repository to modify: \*-proprietary"