From: Iker Pedrosa Date: Wed, 10 Sep 2025 10:58:24 +0000 (+0200) Subject: tests/system/tests/test_gpasswd.py: add user to group membership as non-root user X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=083f684eaef3d96bdcdd95987bd7299ac830001d;p=thirdparty%2Fshadow.git tests/system/tests/test_gpasswd.py: add user to group membership as non-root user Signed-off-by: Iker Pedrosa --- diff --git a/tests/system/tests/test_gpasswd.py b/tests/system/tests/test_gpasswd.py index a99193855..43b7dd650 100644 --- a/tests/system/tests/test_gpasswd.py +++ b/tests/system/tests/test_gpasswd.py @@ -65,3 +65,38 @@ def test_gpasswd__add_user_group_administrator_as_root(shadow: Shadow): assert gshadow_entry is not None, "Group should be found" assert gshadow_entry.name == "tgroup", "Incorrect groupname" assert "tuser" in gshadow_entry.administrators, "User should be administrator of group" + + +@pytest.mark.topology(KnownTopology.Shadow) +def test_gpasswd__add_user_group_member_as_non_root(shadow: Shadow): + """ + :title: Add user to group membership as non-root user + :setup: + 1. Create two test users and group + 2. Add first user as group administrator + :steps: + 1. Add second user as group member using gpasswd as first user + 2. Check group and gshadow entry + :expectedresults: + 1. Second user is added as group member + 2. group and gshadow entry values are correct + :customerscenario: False + """ + shadow.useradd("tadmin") + shadow.useradd("tmember") + shadow.groupadd("tgroup") + + shadow.gpasswd("-A tadmin tgroup") + shadow.gpasswd("-a tmember tgroup", run_as="tadmin") + + group_entry = shadow.tools.getent.group("tgroup") + assert group_entry is not None, "Group should be found" + assert group_entry.name == "tgroup", "Incorrect groupname" + assert "tmember" in group_entry.members, "User should be member of group" + + if shadow.host.features["gshadow"]: + gshadow_entry = shadow.tools.getent.gshadow("tgroup") + assert gshadow_entry is not None, "Group should be found" + assert gshadow_entry.name == "tgroup", "Incorrect groupname" + assert "tadmin" in gshadow_entry.administrators, "tadmin should be administrator of group" + assert "tmember" in gshadow_entry.members, "tmember should be member of group"