mirror of
https://github.com/samba-team/samba.git
synced 2025-08-02 00:22:11 +03:00
s4-samdb/tests: Assert on expected set of attributes for new User object
Change-Id: I225b64ff7492b41852fecb914f464a6c8d504a2c Signed-off-by: Kamen Mazdrashki <kamenim@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Autobuild-User(master): Andrew Bartlett <abartlet@samba.org> Autobuild-Date(master): Tue Feb 3 07:30:17 CET 2015 on sn-devel-104
This commit is contained in:
committed by
Andrew Bartlett
parent
72998acc45
commit
7fd2401b7d
@ -2863,6 +2863,66 @@ class SamTests(samba.tests.TestCase):
|
||||
self.ldb.rename(pr_object[0] + "2," + pr_object[1] + self.base_dn,
|
||||
pr_object[0] + "," + pr_object[1] + self.base_dn)
|
||||
|
||||
def test_new_user_default_attributes(self):
|
||||
"""Test default attributes for new user objects"""
|
||||
print "Test default attributes for new User objects\n"
|
||||
|
||||
user_name = "ldaptestuser"
|
||||
user_dn = "CN=%s,CN=Users,%s" % (user_name, self.base_dn)
|
||||
ldb.add({
|
||||
"dn": user_dn,
|
||||
"objectclass": "user",
|
||||
"sAMAccountName": user_name})
|
||||
|
||||
res = ldb.search(user_dn, scope=SCOPE_BASE)
|
||||
self.assertTrue(len(res) == 1)
|
||||
user_obj = res[0]
|
||||
|
||||
expected_attrs = {"primaryGroupID": MessageElement(["513"]),
|
||||
"logonCount": MessageElement(["0"]),
|
||||
"cn": MessageElement([user_name]),
|
||||
"countryCode": MessageElement(["0"]),
|
||||
"objectClass": MessageElement(["top","person","organizationalPerson","user"]),
|
||||
"instanceType": MessageElement(["4"]),
|
||||
"distinguishedName": MessageElement([user_dn]),
|
||||
"sAMAccountType": MessageElement(["805306368"]),
|
||||
"objectSid": "**SKIP**",
|
||||
"whenCreated": "**SKIP**",
|
||||
"uSNCreated": "**SKIP**",
|
||||
"badPasswordTime": MessageElement(["0"]),
|
||||
"dn": Dn(ldb, user_dn),
|
||||
"pwdLastSet": MessageElement(["0"]),
|
||||
"sAMAccountName": MessageElement([user_name]),
|
||||
"objectCategory": MessageElement(["CN=Person,%s" % ldb.get_schema_basedn().get_linearized()]),
|
||||
"objectGUID": "**SKIP**",
|
||||
"whenChanged": "**SKIP**",
|
||||
"badPwdCount": MessageElement(["0"]),
|
||||
"accountExpires": MessageElement(["9223372036854775807"]),
|
||||
"name": MessageElement([user_name]),
|
||||
"codePage": MessageElement(["0"]),
|
||||
"userAccountControl": MessageElement(["546"]),
|
||||
"lastLogon": MessageElement(["0"]),
|
||||
"uSNChanged": "**SKIP**",
|
||||
"lastLogoff": MessageElement(["0"])}
|
||||
# assert we have expected attribute names
|
||||
actual_names = set(user_obj.keys())
|
||||
# Samba does not use 'dSCorePropagationData', so skip it
|
||||
actual_names -= set(['dSCorePropagationData'])
|
||||
self.assertEqual(set(expected_attrs.keys()), actual_names, "Actual object does not has expected attributes")
|
||||
# check attribute values
|
||||
for name in expected_attrs.keys():
|
||||
actual_val = user_obj.get(name)
|
||||
self.assertFalse(actual_val is None, "No value for attribute '%s'" % name)
|
||||
expected_val = expected_attrs[name]
|
||||
if expected_val == "**SKIP**":
|
||||
# "**ANY**" values means "any"
|
||||
continue
|
||||
self.assertEqual(expected_val, actual_val,
|
||||
"Unexpected value for '%s'" % name)
|
||||
# clean up
|
||||
delete_force(self.ldb, "cn=ldaptestuser,cn=users," + self.base_dn)
|
||||
|
||||
|
||||
if not "://" in host:
|
||||
if os.path.isfile(host):
|
||||
host = "tdb://%s" % host
|
||||
|
Reference in New Issue
Block a user