]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
netcmd: models: add field test for SIDField
authorRob van der Linde <rob@catalyst.net.nz>
Wed, 22 Nov 2023 04:18:20 +0000 (17:18 +1300)
committerDouglas Bagnall <dbagnall@samba.org>
Wed, 22 Nov 2023 23:35:33 +0000 (23:35 +0000)
Signed-off-by: Rob van der Linde <rob@catalyst.net.nz>
Reviewed-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/tests/samba_tool/domain_models.py

index 548444b83cb72e395b378f663ac3aba63e5d7a08..e0f21fe22bb9aeec4fc4f72b876f5a80aa43fa89 100644 (file)
@@ -27,7 +27,7 @@ from xml.etree import ElementTree
 from ldb import FLAG_MOD_ADD, MessageElement, SCOPE_ONELEVEL
 from samba.dcerpc import security
 from samba.dcerpc.misc import GUID
-from samba.netcmd.domain.models import User, fields
+from samba.netcmd.domain.models import Group, User, fields
 from samba.netcmd.domain.models.auth_policy import StrongNTLMPolicy
 from samba.ndr import ndr_pack, ndr_unpack
 
@@ -221,6 +221,48 @@ class DnFieldTest(FieldTestMixin, SambaToolCmdTest):
         ]
 
 
+class SIDFieldTest(FieldTestMixin, SambaToolCmdTest):
+    field = fields.SIDField("FieldName")
+
+    @property
+    def to_db_value(self):
+        # Create a group for testing
+        group = Group(name="group1")
+        group.save(self.samdb)
+        self.addCleanup(group.delete, self.samdb)
+
+        # Get raw value to compare against
+        group_rec = self.samdb.search(Group.get_base_dn(self.samdb),
+                                      scope=SCOPE_ONELEVEL,
+                                      expression="(name=group1)",
+                                      attrs=["objectSid"])[0]
+        raw_sid = group_rec["objectSid"]
+
+        return [
+            (group.object_sid, raw_sid),
+            (None, None),
+        ]
+
+    @property
+    def from_db_value(self):
+        # Create a group for testing
+        group = Group(name="group1")
+        group.save(self.samdb)
+        self.addCleanup(group.delete, self.samdb)
+
+        # Get raw value to compare against
+        group_rec = self.samdb.search(Group.get_base_dn(self.samdb),
+                                      scope=SCOPE_ONELEVEL,
+                                      expression="(name=group1)",
+                                      attrs=["objectSid"])[0]
+        raw_sid = group_rec["objectSid"]
+
+        return [
+            (raw_sid, group.object_sid),
+            (None, None),
+        ]
+
+
 class GUIDFieldTest(FieldTestMixin, SambaToolCmdTest):
     field = fields.GUIDField("FieldName")