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()
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)
def get_app_version(): return random_version()
def get_package_version(): return random_version()
def get_package_version(): # type: () -> str return random_version()