#!/usr/share/ucs-test/runner python
## desc: Create shares/printer and set sambaName during modification
## tags: [udm]
## roles:
##   - domaincontroller_master
##   - domaincontroller_slave
##   - domaincontroller_backup
##   - memberserver
##   - managedclient
## 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 univention.testing.ucr



if __name__ == '__main__':
	ucr = univention.testing.ucr.UCSTestConfigRegistry()
	ucr.load()

	with udm_test.UCSTestUDM() as udm:
		printer_properties = {
			'model': 'foomatic-ppds/Apple/Apple-12_640ps-Postscript.ppd.gz',
			'uri': 'paralell /dev/lp0',
			'spoolHost': '%s.%s' % (ucr['hostname'], ucr['domainname']),
			'name': uts.random_name()
		}

		printer_samba_name = uts.random_name()
		printer = udm.create_object('shares/printer', position = 'cn=printers,%s' % ucr['ldap/base']
, **printer_properties)
		utils.verify_ldap_object(printer, {
			'univentionPrinterModel': [printer_properties['model']],
			'univentionPrinterURI': [printer_properties['uri'].replace(' ', '')],
			'univentionPrinterSpoolHost': [printer_properties['spoolHost']]
		})

		udm.modify_object('shares/printer', dn = printer, sambaName = printer_samba_name)
		utils.verify_ldap_object(printer, {'univentionPrinterSambaName': [printer_samba_name]})
