1
0
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:
Kamen Mazdrashki
2015-01-25 21:39:17 +02:00
committed by Andrew Bartlett
parent 72998acc45
commit 7fd2401b7d

View File

@ -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