diff options
Diffstat (limited to 'source4/dsdb/tests/python/deletetest.py')
-rwxr-xr-x | source4/dsdb/tests/python/deletetest.py | 173 |
1 files changed, 0 insertions, 173 deletions
diff --git a/source4/dsdb/tests/python/deletetest.py b/source4/dsdb/tests/python/deletetest.py index 60bb689485..6044c9f7c0 100755 --- a/source4/dsdb/tests/python/deletetest.py +++ b/source4/dsdb/tests/python/deletetest.py @@ -387,179 +387,6 @@ class BasicDeleteTests(BaseDeleteTests): self.assertFalse("CN=Deleted Objects" in str(objDeleted6.dn)) self.assertFalse("CN=Deleted Objects" in str(objDeleted7.dn)) -class BasicUndeleteTests(BaseDeleteTests): - - def setUp(self): - super(BasicUndeleteTests, self).setUp() - - def enable_recycle_bin(self): - msg = Message() - msg.dn = Dn(self.ldb, "") - msg["enableOptionalFeature"] = MessageElement( - "CN=Partitions," + self.configuration_dn + ":766ddcd8-acd0-445e-f3b9-a7f9b6744f2a", - FLAG_MOD_ADD, "enableOptionalFeature") - try: - self.ldb.modify(msg) - except LdbError, (num, _): - self.assertEquals(num, ERR_ATTRIBUTE_OR_VALUE_EXISTS) - - def undelete_deleted(self, olddn, newdn, samldb): - msg = Message() - msg.dn = Dn(samldb, olddn) - msg["isDeleted"] = MessageElement([], FLAG_MOD_DELETE, "isDeleted") - msg["distinguishedName"] = MessageElement([newdn], FLAG_MOD_REPLACE, "distinguishedName") - samldb.modify(msg, ["show_deleted:1"]) - - def undelete_deleted_with_mod(self, olddn, newdn): - msg = Message() - msg.dn = Dn(self.ldb, olddn) - msg["isDeleted"] = MessageElement([], FLAG_MOD_DELETE, "isDeleted") - msg["distinguishedName"] = MessageElement([newdn], FLAG_MOD_REPLACE, "distinguishedName") - msg["url"] = MessageElement(["www.samba.org"], FLAG_MOD_REPLACE, "url") - self.ldb.modify(msg, ["show_deleted:1"]) - - - def test_undelete(self): - print "Testing standard undelete operation" - usr1="cn=testuser,cn=users," + self.base_dn - delete_force(self.ldb, usr1) - self.ldb.add({ - "dn": usr1, - "objectclass": "user", - "description": "test user description", - "samaccountname": "testuser"}) - objLive1 = self.search_dn(usr1) - guid1=objLive1["objectGUID"][0] - self.ldb.delete(usr1) - objDeleted1 = self.search_guid(guid1) - self.undelete_deleted(str(objDeleted1.dn), usr1, self.ldb) - objLive2 = self.search_dn(usr1) - self.assertEqual(str(objLive2.dn).lower(),str(objLive1.dn).lower()) - delete_force(self.ldb, usr1) - - def __test_rename(self): - print "Testing attempt to rename deleted object" - usr1="cn=testuser,cn=users," + self.base_dn - self.ldb.add({ - "dn": usr1, - "objectclass": "user", - "description": "test user description", - "samaccountname": "testuser"}) - objLive1 = self.search_dn(usr1) - guid1=objLive1["objectGUID"][0] - self.ldb.delete(usr1) - objDeleted1 = self.search_guid(guid1) - #just to make sure we get the correct error if the show deleted is missing - try: - self.ldb.rename(str(objDeleted1.dn), usr1) - self.fail() - except LdbError, (num, _): - self.assertEquals(num,ERR_NO_SUCH_OBJECT) - - try: - self.ldb.rename(str(objDeleted1.dn), usr1, ["show_deleted:1"]) - self.fail() - except LdbError, (num, _): - self.assertEquals(num,ERR_UNWILLING_TO_PERFORM) - - def test_undelete_with_mod(self): - print "Testing standard undelete operation with modification of additional attributes" - usr1="cn=testuser,cn=users," + self.base_dn - self.ldb.add({ - "dn": usr1, - "objectclass": "user", - "description": "test user description", - "samaccountname": "testuser"}) - objLive1 = self.search_dn(usr1) - guid1=objLive1["objectGUID"][0] - self.ldb.delete(usr1) - objDeleted1 = self.search_guid(guid1) - self.undelete_deleted_with_mod(str(objDeleted1.dn), usr1) - objLive2 = self.search_dn(usr1) - self.assertEqual(objLive2["url"][0],"www.samba.org") - delete_force(self.ldb, usr1) - - def test_undelete_newuser(self): - print "Testing undelete user with a different dn" - usr1="cn=testuser,cn=users," + self.base_dn - usr2="cn=testuser2,cn=users," + self.base_dn - delete_force(self.ldb, usr1) - self.ldb.add({ - "dn": usr1, - "objectclass": "user", - "description": "test user description", - "samaccountname": "testuser"}) - objLive1 = self.search_dn(usr1) - guid1=objLive1["objectGUID"][0] - self.ldb.delete(usr1) - objDeleted1 = self.search_guid(guid1) - self.undelete_deleted(str(objDeleted1.dn), usr2, self.ldb) - objLive2 = self.search_dn(usr2) - delete_force(self.ldb, usr1) - delete_force(self.ldb, usr2) - - def test_undelete_existing(self): - print "Testing undelete user after a user with the same dn has been created" - usr1="cn=testuser,cn=users," + self.base_dn - self.ldb.add({ - "dn": usr1, - "objectclass": "user", - "description": "test user description", - "samaccountname": "testuser"}) - objLive1 = self.search_dn(usr1) - guid1=objLive1["objectGUID"][0] - self.ldb.delete(usr1) - self.ldb.add({ - "dn": usr1, - "objectclass": "user", - "description": "test user description", - "samaccountname": "testuser"}) - objDeleted1 = self.search_guid(guid1) - try: - self.undelete_deleted(str(objDeleted1.dn), usr1, self.ldb) - self.fail() - except LdbError, (num, _): - self.assertEquals(num, ERR_ENTRY_ALREADY_EXISTS) - - def test_undelete_cross_nc(self): - print "Cross NC undelete" - c1 = "cn=ldaptestcontainer," + self.base_dn - c2 = "cn=ldaptestcontainer2," + self.configuration_dn - c3 = "cn=ldaptestcontainer," + self.configuration_dn - c4 = "cn=ldaptestcontainer2," + self.base_dn - self.ldb.add({ - "dn": c1, - "objectclass": "container"}) - self.ldb.add({ - "dn": c2, - "objectclass": "container"}) - objLive1 = self.search_dn(c1) - objLive2 = self.search_dn(c2) - guid1=objLive1["objectGUID"][0] - guid2=objLive2["objectGUID"][0] - self.ldb.delete(c1) - self.ldb.delete(c2) - objDeleted1 = self.search_guid(guid1) - objDeleted2 = self.search_guid(guid2) - #try to undelete from base dn to config - try: - self.undelete_deleted(str(objDeleted1.dn), c3, self.ldb) - self.fail() - except LdbError, (num, _): - self.assertEquals(num, ERR_OPERATIONS_ERROR) - #try to undelete from config to base dn - try: - self.undelete_deleted(str(objDeleted2.dn), c4, self.ldb) - self.fail() - except LdbError, (num, _): - self.assertEquals(num, ERR_OPERATIONS_ERROR) - #assert undeletion will work in same nc - self.undelete_deleted(str(objDeleted1.dn), c4, self.ldb) - self.undelete_deleted(str(objDeleted2.dn), c3, self.ldb) - delete_force(self.ldb, c3) - delete_force(self.ldb, c4) - - if not "://" in host: if os.path.isfile(host): |