#!/usr/share/ucs-test/runner python3
## desc: Execute "udm users/user list --filter uid=Administrator" as Administrator
## bugs: [37331]
## tags: [udm, apptest]
## roles:
##   - domaincontroller_master
##   - domaincontroller_backup
## exposure: safe
## packages:
##   - univention-directory-manager-tools


from __future__ import print_function
from subprocess import Popen, PIPE

import univention.testing.utils as utils
from univention.config_registry import ConfigRegistry


if __name__ == '__main__':
	UCR = ConfigRegistry()
	UCR.load()

	# get the Administrator username translation if case of non English domain:
	admin_username = UCR.get('users/default/administrator') or "Administrator"
	print("Administrator username is:", admin_username)

	cmd = ('su', admin_username, '-c', '/usr/sbin/univention-directory-manager users/user list --filter uid=' + admin_username)
	udm = Popen(cmd, stdout=PIPE)
	output = udm.communicate()[0].decode('utf-8', 'replace')

	if udm.returncode != 0:
		utils.fail('UDM-CLI returned "%d" while trying to execute "%s" as Administrator. Returncode "0" was expected.' % (udm.returncode, cmd[3:]))

	if ('DN: uid=' + admin_username) not in output:
		utils.fail('Could not find DN of "%s" user in the UDM-CLI output:\n%s' % (admin_username, output))
