mirror of
https://github.com/samba-team/samba.git
synced 2025-03-09 08:58:35 +03:00
selftest: Assert that name, the RDN attribute and actual RDN are in sync
This allows us to catch such errors here, rather than just on dbcheck later Signed-off-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Garming Sam <garming@catalyst.net.nz
This commit is contained in:
parent
39ac5ad90f
commit
f7eb865cd9
@ -101,10 +101,12 @@ class BasicDeleteTests(BaseDeleteTests):
|
||||
print "Checking for correct rDN"
|
||||
rdn=liveObj[rdnName][0]
|
||||
rdn2=delObj[rdnName][0]
|
||||
name2=delObj[rdnName][0]
|
||||
name2=delObj["name"][0]
|
||||
dn_rdn=delObj.dn.get_rdn_value()
|
||||
guid=liveObj["objectGUID"][0]
|
||||
self.assertEquals(rdn2, rdn + "\nDEL:" + self.GUID_string(guid))
|
||||
self.assertEquals(name2, rdn + "\nDEL:" + self.GUID_string(guid))
|
||||
self.assertEquals(name2, dn_rdn)
|
||||
|
||||
def delete_deleted(self, ldb, dn):
|
||||
print "Testing the deletion of the already deleted dn %s" % dn
|
||||
|
@ -68,8 +68,10 @@ class DrsDeleteObjectTestCase(drs_base.DrsBaseTestCase):
|
||||
# Deleted Object base DN
|
||||
dodn = self._deleted_objects_dn(sam_ldb)
|
||||
# now check properties of the user
|
||||
name_orig = obj_orig["cn"][0]
|
||||
name_cur = user_cur["cn"][0]
|
||||
cn_orig = obj_orig["cn"][0]
|
||||
cn_cur = user_cur["cn"][0]
|
||||
name_orig = obj_orig["name"][0]
|
||||
name_cur = user_cur["name"][0]
|
||||
if is_deleted:
|
||||
self.assertEquals(user_cur["isDeleted"][0],"TRUE")
|
||||
self.assertFalse("objectCategory" in user_cur)
|
||||
@ -80,9 +82,15 @@ class DrsDeleteObjectTestCase(drs_base.DrsBaseTestCase):
|
||||
self.assertTrue(dodn in str(user_cur["dn"]),
|
||||
"User %s is deleted but it is not located under %s (found at %s)!" % (name_orig, dodn, user_cur["dn"]))
|
||||
self.assertEquals(name_cur, name_orig + "\nDEL:" + guid_str)
|
||||
self.assertEquals(name_cur, user_cur.dn.get_rdn_value())
|
||||
self.assertEquals(cn_cur, cn_orig + "\nDEL:" + guid_str)
|
||||
self.assertEquals(name_cur, cn_cur)
|
||||
else:
|
||||
self.assertFalse("isDeleted" in user_cur)
|
||||
self.assertEquals(name_cur, name_orig)
|
||||
self.assertEquals(name_cur, user_cur.dn.get_rdn_value())
|
||||
self.assertEquals(cn_cur, cn_orig)
|
||||
self.assertEquals(name_cur, cn_cur)
|
||||
self.assertEquals(obj_orig["dn"], user_cur["dn"])
|
||||
self.assertTrue(dodn not in str(user_cur["dn"]))
|
||||
return user_cur
|
||||
|
@ -87,13 +87,19 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
|
||||
self.assertEquals(len(res), 1)
|
||||
user_cur = res[0]
|
||||
# now check properties of the user
|
||||
name_orig = obj_orig["cn"][0]
|
||||
name_cur = user_cur["cn"][0]
|
||||
cn_orig = obj_orig["cn"][0]
|
||||
cn_cur = user_cur["cn"][0]
|
||||
name_orig = obj_orig["name"][0]
|
||||
name_cur = user_cur["name"][0]
|
||||
dn_orig = obj_orig["dn"]
|
||||
dn_cur = user_cur["dn"]
|
||||
self.assertFalse("isDeleted" in user_cur)
|
||||
self.assertEquals(cn_cur, cn_orig)
|
||||
self.assertEquals(name_cur, name_orig)
|
||||
self.assertEquals(dn_cur, dn_orig)
|
||||
self.assertEqual(name_cur, cn_cur)
|
||||
self.assertEqual(name_cur, user_cur.dn.get_rdn_value())
|
||||
|
||||
return user_cur
|
||||
|
||||
|
||||
|
@ -140,9 +140,12 @@ objectClass: organizationalUnit
|
||||
scope=SCOPE_BASE, attrs=["name"])
|
||||
print res1[0]["name"][0]
|
||||
print res2[0]["name"][0]
|
||||
self.assertFalse('CNF:%s' % self.ou2 in str(res2[0]["name"][0]))
|
||||
self.assertTrue('CNF:%s' % self.ou1 in str(res1[0]["name"][0]))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc2, self.domain_dn) not in str(res1[0].dn))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc2, self.domain_dn) not in str(res2[0].dn))
|
||||
self.assertEqual(str(res1[0]["name"][0]), res1[0].dn.get_rdn_value())
|
||||
self.assertEqual(str(res2[0]["name"][0]), res2[0].dn.get_rdn_value())
|
||||
|
||||
# Delete both objects by GUID on DC2
|
||||
|
||||
@ -184,6 +187,8 @@ objectClass: organizationalUnit
|
||||
self.assertTrue('CNF:%s' % self.ou1 in str(res1[0]["name"][0]))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res1[0].dn))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res2[0].dn))
|
||||
self.assertEqual(str(res1[0]["name"][0]), res1[0].dn.get_rdn_value())
|
||||
self.assertEqual(str(res2[0]["name"][0]), res2[0].dn.get_rdn_value())
|
||||
|
||||
# Delete both objects by GUID on DC1
|
||||
|
||||
@ -225,6 +230,8 @@ objectClass: organizationalUnit
|
||||
self.assertTrue('CNF:%s' % self.ou2 in str(res2[0]["name"][0]), "Got %s for %s" % (str(res2[0]["name"][0]), self.ou2))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res1[0].dn))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res2[0].dn))
|
||||
self.assertEqual(str(res1[0]["name"][0]), res1[0].dn.get_rdn_value())
|
||||
self.assertEqual(str(res2[0]["name"][0]), res2[0].dn.get_rdn_value())
|
||||
|
||||
# Delete both objects by GUID on DC1
|
||||
|
||||
@ -269,6 +276,8 @@ objectClass: organizationalUnit
|
||||
self.assertTrue('CNF:%s' % self.ou1 in str(res1[0]["name"][0]))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res1[0].dn))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res2[0].dn))
|
||||
self.assertEqual(str(res1[0]["name"][0]), res1[0].dn.get_rdn_value())
|
||||
self.assertEqual(str(res2[0]["name"][0]), res2[0].dn.get_rdn_value())
|
||||
|
||||
# Delete both objects by GUID on DC1
|
||||
|
||||
@ -324,6 +333,8 @@ objectClass: organizationalUnit
|
||||
self.assertTrue('CNF:%s' % self.ou1 in str(res1[0]["name"][0]))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res1[0].dn))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res2[0].dn))
|
||||
self.assertEqual(str(res1[0]["name"][0]), res1[0].dn.get_rdn_value())
|
||||
self.assertEqual(str(res2[0]["name"][0]), res2[0].dn.get_rdn_value())
|
||||
|
||||
# Delete both objects by GUID on DC1
|
||||
|
||||
@ -376,6 +387,8 @@ objectClass: organizationalUnit
|
||||
self.assertTrue('CNF:%s' % self.ou1 in str(res1[0]["name"][0]))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res1[0].dn))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res2[0].dn))
|
||||
self.assertEqual(str(res1[0]["name"][0]), res1[0].dn.get_rdn_value())
|
||||
self.assertEqual(str(res2[0]["name"][0]), res2[0].dn.get_rdn_value())
|
||||
|
||||
# Delete both objects by GUID on DC1
|
||||
|
||||
@ -431,6 +444,8 @@ objectClass: organizationalUnit
|
||||
self.assertTrue('CNF:%s' % self.ou2 in str(res2[0]["name"][0]))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res1[0].dn))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) not in str(res2[0].dn))
|
||||
self.assertEqual(str(res1[0]["name"][0]), res1[0].dn.get_rdn_value())
|
||||
self.assertEqual(str(res2[0]["name"][0]), res2[0].dn.get_rdn_value())
|
||||
|
||||
# Delete both objects by GUID on DC1
|
||||
|
||||
@ -487,6 +502,8 @@ objectClass: organizationalUnit
|
||||
self.assertTrue('CNF:%s' % ou1_child in str(res1[0]["name"][0]) or 'CNF:%s' % ou2_child in str(res2[0]["name"][0]))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) in str(res1[0].dn))
|
||||
self.assertTrue(self._lost_and_found_dn(self.ldb_dc1, self.domain_dn) in str(res2[0].dn))
|
||||
self.assertEqual(str(res1[0]["name"][0]), res1[0].dn.get_rdn_value())
|
||||
self.assertEqual(str(res2[0]["name"][0]), res2[0].dn.get_rdn_value())
|
||||
|
||||
# Delete all objects by GUID on DC1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user