]> git.ipfire.org Git - thirdparty/shadow.git/commitdiff
Tests: Add group with password using -p flag
authorAkshay Sakure <asakure@redhat.com>
Tue, 30 Jun 2026 14:09:56 +0000 (19:39 +0530)
committerIker Pedrosa <ikerpedrosam@gmail.com>
Wed, 1 Jul 2026 14:22:03 +0000 (16:22 +0200)
This is Python transformation of the test located in
'tests/grouptools/groupadd/04_groupadd_set_password/groupadd.test'
which checks that 'groupadd' can create group with password using
-p flag

Signed-off-by: Akshay Sakure <asakure@redhat.com>
tests/system/tests/test_groupadd.py

index 31c6ef5a87473779d5d54edb13e301283869a8da..643d9bf9691b8a252026c88d2cbede4cc299a9ca 100644 (file)
@@ -4,8 +4,13 @@ Test groupadd
 
 from __future__ import annotations
 
+import re
+
 import pytest
 
+from passlib.hash import sha512_crypt
+
+from framework.misc import shadow_password_pattern
 from framework.roles.shadow import Shadow
 from framework.topology import KnownTopology
 
@@ -86,3 +91,32 @@ def test_groupadd__set_gid(shadow: Shadow):
     assert group_entry is not None, "Group should be found"
     assert group_entry.name == "tgroup", "Incorrect groupname"
     assert group_entry.gid == 1500, "Incorrect GID"
+
+
+@pytest.mark.topology(KnownTopology.Shadow)
+def test_groupadd__set_password(shadow: Shadow):
+    """
+    :title: Add group with password using -p flag
+    :setup:
+        1. Create group with password
+    :steps:
+        1. Check group entry
+        2. Check gshadow entry
+    :expectedresults:
+        1. Group entry is created
+        2. Group's password is correctly set
+    :customerscenario: False
+    """
+    password = "Secret123"
+    password_hash = sha512_crypt.hash(password)
+    shadow.groupadd(f"-p '{password_hash}' tgroup")
+
+    group_entry = shadow.tools.getent.group("tgroup")
+    assert group_entry is not None, "Group should be found"
+
+    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 gshadow_entry.password is not None, "Password should not be None"
+        assert re.match(shadow_password_pattern(), gshadow_entry.password), "Incorrect password"