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

import bz2
import univention.testing.utils as utils
import univention.testing.udm as udm_test
import univention.testing.ucr as ucr_test
import univention.testing.strings as uts


with ucr_test.UCSTestConfigRegistry() as ucr:
	with udm_test.UCSTestUDM() as udm:
		data = uts.random_name(500)
		kwargs = dict(
			position='cn=data,cn=univention,{}'.format(ucr['ldap/base']),
			name=uts.random_name(),
			filename=uts.random_name(),
			description=uts.random_name(),
			data_type=uts.random_name(),
			data=bz2.compress(data).encode('base64').strip(),
			ucsversionstart=uts.random_ucs_version(),
			ucsversionend=uts.random_ucs_version(),
			meta=[uts.random_name(), uts.random_name()],
			package=uts.random_name(),
			packageversion=uts.random_version(),
		)

		dn = udm.create_object('settings/data', **kwargs)

		utils.verify_ldap_object(
			dn,
			{
				'cn': [kwargs['name']],
				'description': [kwargs['description']],
				'univentionDataFilename': [kwargs['filename']],
				'univentionDataType': [kwargs['data_type']],
				'univentionData': [bz2.compress(data)],
				'univentionUCSVersionStart': [kwargs['ucsversionstart']],
				'univentionUCSVersionEnd': [kwargs['ucsversionend']],
				'univentionDataMeta': kwargs['meta'],
				'univentionOwnedByPackage': [kwargs['package']],
				'univentionOwnedByPackageVersion': [kwargs['packageversion']],
			}
		)
