From 94779df14b3c4eff2d5de64c2594fe5dab50ebbf Mon Sep 17 00:00:00 2001 From: Denis Karpelevich Date: Sat, 18 Jan 2025 18:56:08 +0100 Subject: [PATCH] Parametrize sssctl tests 1. - Combine various sssctl tests to the single parametrized tests. test_sssctl__check_invalid_option_name_in_snippet merges tests: test_sssctl__check_invalid_option_name_in_snippet test_sssctl__check_invalid_section_in_name_in_snippet Signed-off-by: Denis Karpelevich --- src/tests/system/tests/test_sssctl.py | 53 +++++++++------------------ 1 file changed, 18 insertions(+), 35 deletions(-) diff --git a/src/tests/system/tests/test_sssctl.py b/src/tests/system/tests/test_sssctl.py index e3481e23ef..b1efe407e9 100644 --- a/src/tests/system/tests/test_sssctl.py +++ b/src/tests/system/tests/test_sssctl.py @@ -271,50 +271,33 @@ def test_sssctl__check_misplaced_option(client: Client): assert pattern.search(result.stdout), "Wrong error message was returned" +@pytest.mark.importance("high") @pytest.mark.tools @pytest.mark.topology(KnownTopology.Client) -def test_sssctl__check_invalid_option_name_in_snippet(client: Client): - """ - :title: sssctl config-check detects invalid option name in snippet - :setup: - 1. Create new conf snippet with invalid option name - :steps: - 1. Call sssctl config-check - 2. Check error message - :expectedresults: - 1. config-check detects an error in config snippet - 2. Error message is properly set - :customerscenario: False - """ - client.sssd.common.local() - client.fs.write("/etc/sssd/conf.d/01_snippet.conf", "[domain/local]\ninvalid_option = True", mode="600") - - result = client.sssctl.config_check() - assert result.rc != 0, "Config-check did not detect misconfigured config snippet" - assert "Attribute 'invalid_option' is not allowed" in result.stdout, "Wrong error message was returned" - - -@pytest.mark.tools -@pytest.mark.topology(KnownTopology.Client) -def test_sssctl__check_invalid_section_in_name_in_snippet(client: Client): - """ - :title: sssctl config-check detects invalid domain name in snippet +@pytest.mark.parametrize( + "contents,expected", + [ + ("[domain/local]\ninvalid_option = True", "Attribute 'invalid_option' is not allowed"), + ("[invalid/local]\ninvalid_option = True", "Section [invalid/local] is not allowed"), + ], +) +def test_sssctl__check_invalid_option_name_in_snippet(client: Client, contents: str, expected: str): + """ + :title: sssctl config-check validates configuration snippet :setup: - 1. Create new conf snippet with invalid domain name + 1. Create a config snippet with an invalid option :steps: - 1. Call sssctl config-check - 2. Check error message + 1. Check the configuration using sssctl :expectedresults: - 1. config-check detects an error in config snippet - 2. Error message is properly set - :customerscenario: False + 1. The config check fails with the appropriate output + :customerscenario: True """ client.sssd.common.local() - client.fs.write("/etc/sssd/conf.d/01_snippet.conf", "[invalid/local]\ninvalid_option = True", mode="600") + client.fs.write("/etc/sssd/conf.d/01_snippet.conf", contents) result = client.sssctl.config_check() - assert result.rc != 0, "Config-check did not detect misconfigured config snippet" - assert "Section [invalid/local] is not allowed" in result.stdout, "Wrong error message was returned" + assert result.rc != 0, "Config-check did not detect misconfigured config snippet!" + assert expected in result.stdout, "Wrong error message was returned!" @pytest.mark.tools