Esempio n. 1
0
def test_ucr_register_api():
    package_name = random_string()
    package_version = random_version()
    package = DebianPackage(name=package_name, version=package_version)
    package.create_debian_file_from_buffer(
        '/etc/univention/templates/modules/%s.py' % (package_name, ),
        UCR_MODULE)
    package.create_debian_file_from_buffer(
        '/etc/univention/templates/info/%s.info' % (package_name, ),
        UCR_INFO % (package_name, package_name))
    try:
        package.build()
        package.install()

        with UCSTestConfigRegistry():
            subprocess.call(['ucr', 'set', '%s/foo=bar' % (package_name, )])

            changes = json.loads(
                subprocess.check_output(['ucr', 'register',
                                         package_name]).split(b'####')[1])
            expected = {
                '%s/.*$' % (package_name, ): [None, None],
                '%s/foo' % (package_name, ): [None, 'bar'],
            }
            assert changes == expected, changes

            changes = json.loads(
                subprocess.check_output(
                    ['ucr', 'set',
                     '%s/foo=blub' % (package_name, )]).split(b'####')[1])
            expected = {'%s/foo' % (package_name, ): ['bar', 'blub']}
            assert changes == expected, changes
    finally:
        package.uninstall()
        package.remove()
Esempio n. 2
0
	def __init__(self, name, version, container_version=None, app_directory_suffix=None, package_name=None, build_package=True, call_join_scripts=True):
		self.app_name = name
		self.app_version = version
		self.call_join_scripts = call_join_scripts

		if not app_directory_suffix:
			self.app_directory_suffix = random_version()
		else:
			self.app_directory_suffix = app_directory_suffix

		self.app_directory = '%s_%s' % (self.app_name, self.app_directory_suffix)

		if package_name:
			self.package_name = package_name
		else:
			self.package_name = get_app_name()

		self.package_version = '%s.%s' % (version, get_app_version())

		self.ucr = ConfigRegistry()
		self.ucr.load()

		if build_package:
			self.package = DebianPackage(name=self.package_name, version=self.package_version)
			self.package.build()
		else:
			self.package = None

		self.ini = {}

		self.ini['ID'] = self.app_name
		self.ini['Code'] = self.app_name[0:2]
		self.ini['Name'] = self.app_name
		self.ini['Version'] = self.app_version
		self.ini['NotifyVendor'] = False
		self.ini['Categories'] = 'System services'
		self.ini['Logo'] = '%s.svg' % self.app_name
		if self.package:
			self.ini['DefaultPackages'] = self.package_name
		self.ini['ServerRole'] = 'domaincontroller_master,domaincontroller_backup,domaincontroller_slave,memberserver'

		self.scripts = {}

		if not container_version:
			self.ucs_version = self.ucr.get('version/version')
		else:
			self.ucs_version = container_version
			self.ini['SupportedUCSVersions'] = '%s-0,%s-0' % (container_version, self.ucr.get('version/version'))

		self.installed = False

		self.admin_user = self.ucr.get('tests/domainadmin/account').split(',')[0][len('uid='):]
		self.admin_pwdfile = self.ucr.get('tests/domainadmin/pwdfile')

		print repr(self)
Esempio n. 3
0
def get_app_version():
    return random_version()
Esempio n. 4
0
def get_package_version():
    return random_version()
Esempio n. 5
0
def get_package_version():
	# type: () -> str
	return random_version()