]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
tests/system/tests/test_gpasswd.py: add user to group membership as root user
authorIker Pedrosa <ipedrosa@redhat.com>
Wed, 10 Sep 2025 09:26:56 +0000 (11:26 +0200)
committerSerge Hallyn <serge@hallyn.com>
Wed, 25 Mar 2026 02:33:15 +0000 (21:33 -0500)
This is the transformation to Python of the test located in
`tests/grouptools/gpasswd/31_gpasswd_add_user_to_group/gpasswd.test`,
which checks that `gpasswd` is able to add a user to a group membership
running as root.

Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
tests/system/tests/test_gpasswd.py [new file with mode: 0644]

diff --git a/tests/system/tests/test_gpasswd.py b/tests/system/tests/test_gpasswd.py
new file mode 100644 (file)
index 0000000..6c04af6
--- /dev/null
@@ -0,0 +1,41 @@
+"""
+Test gpasswd
+"""
+
+from __future__ import annotations
+
+import pytest
+
+from framework.roles.shadow import Shadow
+from framework.topology import KnownTopology
+
+
+@pytest.mark.topology(KnownTopology.Shadow)
+def test_gpasswd__add_user_group_member_as_root(shadow: Shadow):
+    """
+    :title: Add user to group membership as root user
+    :setup:
+        1. Create test user and group
+    :steps:
+        1. Add user to group membership using gpasswd as root
+        2. Check group and gshadow entry
+    :expectedresults:
+        1. User is added to group
+        2. group and gshadow entry values are correct
+    :customerscenario: False
+    """
+    shadow.useradd("tuser")
+    shadow.groupadd("tgroup")
+
+    shadow.gpasswd("-a tuser tgroup")
+
+    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 "tuser" 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 "tuser" in gshadow_entry.members, "User should be member of group"