#!/usr/share/ucs-test/runner python
## desc: Create a full ldap schema objects
## tags: [udm-ldapextensions,apptest]
## roles: [domaincontroller_master]
## exposure: dangerous
## packages:
##   - univention-directory-manager-tools

import univention.testing.utils as utils
import univention.testing.udm as udm_test
import univention.testing.strings as uts
import bz2
import base64

if __name__ == '__main__':
	with udm_test.UCSTestUDM() as udm:
		for active in ['TRUE', 'FALSE']:
			schema_name = uts.random_name()
			filename = '90%s' % uts.random_name()
			data = '# schema test'
			package_version='99.%s-%s' % (uts.random_int(), uts.random_int())
			package = uts.random_name(),
			appidentifier = '%s' % uts.random_name(),

			schema = udm.create_object('settings/ldapschema',
							name = schema_name,
							data = base64.encodestring(bz2.compress(data)),
							filename = filename,
							packageversion = package_version,
							appidentifier = appidentifier,
							package = package[0],
							active = active)

			utils.verify_ldap_object(schema, {
							'cn': [schema_name],
							'univentionLDAPSchemaData': [bz2.compress(data)],
							'univentionLDAPSchemaFilename': [filename],
							'univentionOwnedByPackage': package,
							'univentionOwnedByPackageVersion': [package_version],
							'univentionAppIdentifier': appidentifier,
							'univentionLDAPSchemaActive': [active],
							'univentionObjectType': ['settings/ldapschema'],
						})


