#!/usr/share/ucs-test/runner python3
## desc: Remove an container/ou recursively
## tags: [udm,apptest]
## roles: [domaincontroller_master]
## exposure: careful
## packages:
##   - univention-config
##   - univention-directory-manager-tools


import univention.testing.utils as utils
import univention.testing.udm as udm_test
import univention.testing.strings as uts
import ldap.dn


if __name__ == '__main__':

	with udm_test.UCSTestUDM() as udm:
		ou_name = uts.random_string()
		ou2_name = uts.random_string()

		ou = udm.create_object('container/ou', name=ou_name)
		ou2 = udm.create_object('container/ou', name=ou2_name)
		ou3 = udm.create_object('container/ou', name=uts.random_name())

		udm.move_object('container/ou', dn=ou, position=ou2)
		udm.move_object('container/ou', dn=ou2, position=ou3)
		ou = 'ou=%s,ou=%s,%s' % (ldap.dn.escape_dn_chars(ou_name), ldap.dn.escape_dn_chars(ou2_name), ou3)
		udm.remove_object('container/ou', dn=ou3)
		utils.verify_ldap_object(ou, should_exist=False)
