def get_settings(content, app): fname = '/tmp/app.settings' with open(fname, 'wb') as fd: fd.write(content) populate = get_action('dev-populate-appcenter') populate.call(component_id=app.component_id, ini=app.get_ini_file(), settings='/tmp/app.settings') app = Apps().find(app.id) settings = app.get_settings() return settings
def get_default_values(app): from univention.appcenter.ini_parser import IniSectionAttribute from univention.appcenter.settings import BoolSetting, FileSetting, IntSetting, ListSetting, PasswordFileSetting, PasswordSetting, StatusSetting, StringSetting, UDMListSetting for kls in [ StringSetting, IntSetting, BoolSetting, ListSetting, UDMListSetting, FileSetting, PasswordFileSetting, PasswordSetting, StatusSetting ]: if 'default_for_testing' not in kls._attrs: attr = IniSectionAttribute() attr.name = 'default_for_testing' kls._attrs['default_for_testing'] = attr app = FindApps().find(app) app = FindApps().find_candidate(app) or app ret = {} for setting in app.get_settings(): value = setting.default_for_testing if value is not None: ret[setting.name] = setting.sanitize_value(app, value) return ret