From: Stefan Metzmacher Date: Fri, 9 Jan 2015 07:56:59 +0000 (+0100) Subject: s4:dsdb/tests: add test_timevalues1() to verify timestamp values X-Git-Tag: samba-4.2.0rc5~42 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8a5df7dcdddca59a65a24991004261084df359f1;p=thirdparty%2Fsamba.git s4:dsdb/tests: add test_timevalues1() to verify timestamp values Bug: https://bugzilla.samba.org/show_bug.cgi?id=9810 Signed-off-by: Stefan Metzmacher Reviewed-by: Andreas Schneider Reviewed-by: Günther Deschner Autobuild-User(master): Stefan Metzmacher Autobuild-Date(master): Sat Jan 24 20:17:20 CET 2015 on sn-devel-104 (cherry picked from commit dc2f91020e3b52942f8aab60fd1db70d2afadd51) --- diff --git a/source4/dsdb/tests/python/ldap.py b/source4/dsdb/tests/python/ldap.py index f6b08e4cf3f..c0bb18c7b4f 100755 --- a/source4/dsdb/tests/python/ldap.py +++ b/source4/dsdb/tests/python/ldap.py @@ -96,6 +96,7 @@ class BasicTests(samba.tests.TestCase): delete_force(self.ldb, "description=xyz,cn=users," + self.base_dn) delete_force(self.ldb, "ou=testou,cn=users," + self.base_dn) delete_force(self.ldb, "cn=Test Secret,cn=system," + self.base_dn) + delete_force(self.ldb, "cn=testtimevaluesuser1,cn=users," + self.base_dn) def test_objectclasses(self): """Test objectClass behaviour""" @@ -2892,6 +2893,45 @@ nTSecurityDescriptor:: """ + desc_base64 self.assertTrue("whenCreated" in res[0]) self.assertTrue("whenChanged" in res[0]) + def test_timevalues1(self): + """Tests possible syntax of time attributes""" + + user_name = "testtimevaluesuser1" + user_dn = "CN=%s,CN=Users,%s" % (user_name, self.base_dn) + + delete_force(self.ldb, user_dn) + self.ldb.add({ "dn": user_dn, + "objectClass": "user", + "sAMAccountName": user_name }) + + # + # We check the following values: + # + # 370101000000Z => 20370101000000.0Z + # 20370102000000.*Z => 20370102000000.0Z + # + ext = [ "Z", ".0Z", ".Z", ".000Z", ".RandomIgnoredCharacters...987654321Z" ] + for i in range(0, len(ext)): + v_raw = "203701%02d000000" % (i + 1) + if ext[i] == "Z": + v_set = v_raw[2:] + ext[i] + else: + v_set = v_raw + ext[i] + v_get = v_raw + ".0Z" + + m = Message() + m.dn = Dn(ldb, user_dn) + m["msTSExpireDate"] = MessageElement([v_set], + FLAG_MOD_REPLACE, + "msTSExpireDate") + self.ldb.modify(m) + + res = self.ldb.search(base=user_dn, scope=SCOPE_BASE, attrs=["msTSExpireDate"]) + self.assertTrue(len(res) == 1) + self.assertTrue("msTSExpireDate" in res[0]) + self.assertTrue(len(res[0]["msTSExpireDate"]) == 1) + self.assertEquals(res[0]["msTSExpireDate"][0], v_get) + class BaseDnTests(samba.tests.TestCase): def setUp(self):