def test_settings_initialize_load_settings_include(self): from ptah.settings import init_settings path = os.path.join(self.dir, 'settings.cfg') f = open(path, 'wb') f.write(bytes_('[DEFAULT]\ngroup.node1 = value\n\n','ascii')) f.close() node1 = ptah.form.TextField( 'node1', default = 'default1') node2 = ptah.form.IntegerField( 'node2', default = 10) ptah.register_settings('group', node1, node2) self.init_ptah() init_settings(self.config, {'include': path}) group = ptah.get_settings('group', self.request.registry) self.assertEqual(group['node1'], 'value') self.assertEqual(group['node2'], 10)
def test_settings_export(self): field1 = ptah.form.TextField('node1', default='test') field2 = ptah.form.TextField('node2', default='test1') ptah.register_settings('group4', field1, field2) self.init_ptah(initsettings=True) settings = get_settings_ob() # changed settings self.assertEqual(settings.export(), {}) # default settings data = settings.export(default=True) self.assertIn('group4.node1', data) self.assertIn('group4.node2', data) self.assertEqual(data['group4.node1'], '"test"') self.assertEqual(data['group4.node2'], '"test1"') # changed settings group = ptah.get_settings('group4', self.registry) group['node2'] = 'changed' data = dict(settings.export()) self.assertEqual(data['group4.node2'], '"changed"')
def test_settings_group_multiple_validation(self): def validator1(fs, appstruct): raise ptah.form.Invalid('Error1', fs['node1']) def validator2(fs, appstruct): raise ptah.form.Invalid('Error2', fs['node2']) node1 = ptah.form.TextField('node1', default='test') node2 = ptah.form.TextField('node2', default='test') ptah.register_settings('group3', node1, node2, validator=(validator1, validator2)) self.init_ptah() group = ptah.get_settings('group3', self.registry) data, err = group.extract({ 'group3.node1': 'value', 'group3.node2': 'value' }) self.assertEqual(err.msg, {'group3': text_type(['Error1', 'Error2'])})
def test_edit_form(self): from ptah.manage.settings import SettingsModule, EditForm ptah.register_settings( 'test', ptah.form.TextField('node1', default='test1', required=False), ptah.form.TextField('node2', default='test2', required=False), title = 'Test settings', ttw = True, ttw_skip_fields = ('node2',)) self.init_ptah() mod = SettingsModule(None, self.request) grp = mod['test'] settings = grp.group form = EditForm(grp, self.request) self.assertEqual(form.label, settings.__title__) self.assertEqual(form.description, settings.__description__) self.assertIs(form.form_content(), settings) fields = form.fields self.assertIn('node1', fields) self.assertNotIn('node2', fields) res = form.back_handler() self.assertIsInstance(res, HTTPFound) self.assertEqual(res.headers['location'], '..') form.update_form() form.modify_handler() self.assertIn('Settings have been modified.', self.request.render_messages())
def test_settings_group_multiple_validation(self): def validator1(fs, appstruct): raise ptah.form.Invalid('Error1', fs['node1']) def validator2(fs, appstruct): raise ptah.form.Invalid('Error2', fs['node2']) node1 = ptah.form.TextField( 'node1', default = 'test') node2 = ptah.form.TextField( 'node2', default = 'test') ptah.register_settings( 'group3', node1, node2, validator=(validator1, validator2)) self.init_ptah() group = ptah.get_settings('group3', self.registry) data, err = group.extract({ 'group3.node1': 'value', 'group3.node2': 'value'}) self.assertEqual(err.msg, {'group3': text_type(['Error1', 'Error2'])})
def test_settings_export(self): field1 = ptah.form.TextField( 'node1', default = 'test') field2 = ptah.form.TextField( 'node2', default = 'test1') ptah.register_settings('group4', field1, field2) self.init_ptah(initsettings=True) settings = get_settings_ob() # changed settings self.assertEqual(settings.export(), {}) # default settings data = settings.export(default=True) self.assertIn('group4.node1', data) self.assertIn('group4.node2', data) self.assertEqual(data['group4.node1'], '"test"') self.assertEqual(data['group4.node2'], '"test1"') # changed settings group = ptah.get_settings('group4', self.registry) group['node2'] = 'changed' data = dict(settings.export()) self.assertEqual(data['group4.node2'], '"changed"')
def _create_default_group(self): node1 = ptah.form.TextField('node1', default='default1') node2 = ptah.form.IntegerField('node2', default=10) ptah.register_settings('group', node1, node2) self.init_ptah(initsettings=True) return ptah.get_settings('group', self.registry)
def test_settings_load_defaults_rawdata_with_errors_in_values(self): node = ptah.form.FloatField('node1', default=()) ptah.register_settings('group', node) self.init_ptah(initsettings=True) self.assertRaises(ptah.config.StopException, get_settings_ob().init, self.config, {'group.node1': 'l,1'})
def test_settings_group_uninitialized(self): node = ptah.form.TextField('node', default='test') ptah.register_settings( 'group1', node, title='Section title', description='Section description', ) self.init_ptah() group = ptah.get_settings('group1', self.registry) self.assertEqual(group.get('node'), 'test')
def test_settings_load_defaults_rawdata_with_errors_in_values(self): node = ptah.form.FloatField( 'node1', default = ()) ptah.register_settings('group', node) self.init_ptah(initsettings=True) self.assertRaises( ptah.config.StopException, get_settings_ob().init, self.config, {'group.node1': 'l,1'})
def test_settings_initialize_load_preparer(self): node1 = ptah.form.TextField( 'node', default = 'default1', preparer = lambda s: s.lower()) ptah.register_settings('group', node1) self.init_ptah() ptah.init_settings(self.config, {'group.node': 'Test'}) group = ptah.get_settings('group', self.request.registry) self.assertEqual(group['node'], 'test')
def _create_default_group(self): node1 = ptah.form.TextField( 'node1', default = 'default1') node2 = ptah.form.IntegerField( 'node2', default = 10) ptah.register_settings('group', node1, node2) self.init_ptah(initsettings=True) return ptah.get_settings('group', self.registry)
def test_settings_group_uninitialized(self): node = ptah.form.TextField( 'node', default = 'test') ptah.register_settings( 'group1', node, title = 'Section title', description = 'Section description', ) self.init_ptah() group = ptah.get_settings('group1', self.registry) self.assertEqual(group.get('node'), 'test')
def test_settings_group_validation(self): def validator(node, appstruct): raise ptah.form.Invalid('Error', node['node']) node = ptah.form.TextField('node', default='test') ptah.register_settings('group2', node, validator=validator) self.init_ptah() group = ptah.get_settings('group2', self.registry) data, err = group.extract({'group2.node': 'value'}) self.assertEqual(err.msg, {'group2': text_type(['Error'])})
def test_settings_initialize_load_partly_defaults(self): from ptah.settings import init_settings node1 = ptah.form.TextField('node1', default='default1') node2 = ptah.form.TextField('node2', default=10) ptah.register_settings('group', node1, node2) self.init_ptah() init_settings(self.config, {'group.node1': 'setting from ini'}) group = ptah.get_settings('group', self.request.registry) self.assertEqual(group['node1'], 'setting from ini') self.assertEqual(group['node2'], 10)
def _make_grp(self): node1 = ptah.form.TextField('node1', default='test') node2 = ptah.form.IntegerField('node2', default=50) ptah.register_settings( 'group', node1, node2, title='Section title', description='Section description', ) self.init_ptah() return ptah.get_settings('group', self.registry)
def test_settings_uri_resolver(self): node = ptah.form.TextField('node', default='test') ptah.register_settings( 'group', node, title='Section title', description='Section description', ) self.init_ptah() grp1 = ptah.get_settings('group', self.registry) self.assertEqual(grp1.__uri__, 'settings:group') grp2 = ptah.resolve('settings:group') self.assertIs(grp1, grp2)
def test_settings_get_settings_pyramid(self): node = ptah.form.TextField('node', default='test') ptah.register_settings( 'group1', node, title='Section title', description='Section description', ) self.init_ptah() grp = self.config.ptah_get_settings('group1') self.assertIsNotNone(grp) self.assertEqual(grp.__name__, 'group1') self.assertIn(node, grp.__fields__.values())
def test_settings_uri_resolver(self): node = ptah.form.TextField( 'node', default = 'test') ptah.register_settings( 'group', node, title = 'Section title', description = 'Section description', ) self.init_ptah() grp1 = ptah.get_settings('group', self.registry) self.assertEqual(grp1.__uri__, 'settings:group') grp2 = ptah.resolve('settings:group') self.assertIs(grp1, grp2)
def test_settings_group_basics(self): node = ptah.form.TextField('node', default='test') ptah.register_settings( 'group1', node, title='Section title', description='Section description', ) self.init_ptah() group = ptah.get_settings('group1', self.registry) self.assertEqual(group.keys(), ['node']) self.assertEqual(group.items(), [('node', 'test')]) group.update({'node': '12345'}) self.assertEqual(group.get('node'), '12345')
def test_settings_get_settings_pyramid(self): node = ptah.form.TextField( 'node', default = 'test') ptah.register_settings( 'group1', node, title = 'Section title', description = 'Section description', ) self.init_ptah() grp = self.config.ptah_get_settings('group1') self.assertIsNotNone(grp) self.assertEqual(grp.__name__, 'group1') self.assertIn(node, grp.__fields__.values())
def test_settings_initialize_load_defaults(self): node1 = ptah.form.TextField( 'node1', default = 'default1') node2 = ptah.form.TextField( 'node2', default = 10) ptah.register_settings('group', node1, node2) self.init_ptah() ptah.init_settings(self.config, None) group = ptah.get_settings('group', self.request.registry) self.assertEqual(group['node1'], 'default1') self.assertEqual(group['node2'], 10)
def _make_grp(self): node1 = ptah.form.TextField( 'node1', default = 'test') node2 = ptah.form.IntegerField( 'node2', default = 50) ptah.register_settings( 'group', node1, node2, title = 'Section title', description = 'Section description', ) self.init_ptah() return ptah.get_settings('group', self.registry)
def test_settings_initialize_load_partly_defaults(self): node1 = ptah.form.TextField( 'node1', default = 'default1') node2 = ptah.form.TextField( 'node2', default = 10) ptah.register_settings('group', node1, node2) self.init_ptah() ptah.init_settings(self.config, {'group.node1': 'setting from ini'}) group = ptah.get_settings('group', self.request.registry) self.assertEqual(group['node1'], 'setting from ini') self.assertEqual(group['node2'], 10)
def test_settings_group_validation(self): def validator(node, appstruct): raise ptah.form.Invalid('Error', node['node']) node = ptah.form.TextField( 'node', default = 'test') ptah.register_settings( 'group2', node, validator=validator) self.init_ptah() group = ptah.get_settings('group2', self.registry) data, err = group.extract({'group2.node': 'value'}) self.assertEqual(err.msg, {'group2': text_type(['Error'])})
def test_settings_group_basics(self): node = ptah.form.TextField( 'node', default = 'test') ptah.register_settings( 'group1', node, title = 'Section title', description = 'Section description', ) self.init_ptah() group = ptah.get_settings('group1', self.registry) self.assertEqual(group.keys(), ['node']) self.assertEqual(group.items(), [('node', 'test')]) group.update({'node': '12345'}) self.assertEqual(group.get('node'), '12345')
def test_settings_group_extract(self): node1 = ptah.form.TextField('node1', default='test1') node2 = ptah.form.TextField('node2', default='test2') ptah.register_settings('group', node1, node2) self.init_ptah() group = ptah.get_settings('group', self.registry) data, errors = group.extract({'group.node1': 'test-extract'}) self.assertEqual(data['node1'], 'test-extract') self.assertEqual(data['node2'], 'test2') group['node2'] = 'value' data, errors = group.extract({'group.node1': 'test-extract'}) self.assertEqual(data['node2'], 'value')
def test_settings_initialize_load_defaults(self): from ptah.settings import init_settings node1 = ptah.form.TextField( 'node1', default = 'default1') node2 = ptah.form.TextField( 'node2', default = 10) ptah.register_settings('group', node1, node2) self.init_ptah() init_settings(self.config, None) group = ptah.get_settings('group', self.request.registry) self.assertEqual(group['node1'], 'default1') self.assertEqual(group['node2'], 10)
def test_settings_group_extract(self): node1 = ptah.form.TextField( 'node1', default = 'test1') node2 = ptah.form.TextField( 'node2', default = 'test2') ptah.register_settings('group', node1, node2) self.init_ptah() group = ptah.get_settings('group', self.registry) data, errors = group.extract({'group.node1': 'test-extract'}) self.assertEqual(data['node1'], 'test-extract') self.assertEqual(data['node2'], 'test2') group['node2'] = 'value' data, errors = group.extract({'group.node1': 'test-extract'}) self.assertEqual(data['node2'], 'value')
def test_settings_register_simple(self): node = ptah.form.TextField('node', default='test') ptah.register_settings( 'group1', node, title='Section title', description='Section description', ) self.init_ptah() group = ptah.get_settings('group1', self.registry) self.assertEqual(len(group.__fields__), 1) self.assertIn(node, group.__fields__.values()) self.assertEqual(group['node'], 'test') self.assertRaises(KeyError, group.__getitem__, 'unknown') group.node = 'test2' self.assertFalse(group.node == group['node'])
def test_settings_initialize_load_settings_include(self): from ptah.settings import init_settings path = os.path.join(self.dir, 'settings.cfg') f = open(path, 'wb') f.write(bytes_('[DEFAULT]\ngroup.node1 = value\n\n', 'ascii')) f.close() node1 = ptah.form.TextField('node1', default='default1') node2 = ptah.form.IntegerField('node2', default=10) ptah.register_settings('group', node1, node2) self.init_ptah() init_settings(self.config, {'include': path}) group = ptah.get_settings('group', self.request.registry) self.assertEqual(group['node1'], 'value') self.assertEqual(group['node2'], 10)
def test_traverse_ttw(self): from ptah.manage.settings import SettingsModule, SettingsWrapper ptah.register_settings('test', ptah.form.TextField('node1', default='test1'), ptah.form.TextField('node2', default='test2', tint=True), title='Test settings') self.init_ptah() grp = ptah.get_settings('test', self.registry) mod = SettingsModule(None, self.request) self.assertRaises(KeyError, mod.__getitem__, 'test') grp.__ttw__ = True tgrp = mod['test'] self.assertIs(tgrp.group, grp) self.assertIsInstance(tgrp, SettingsWrapper)
def test_edit_form(self): from ptah.manage.settings import SettingsModule, EditForm ptah.register_settings('test', ptah.form.TextField('node1', default='test1', required=False), ptah.form.TextField('node2', default='test2', required=False), title='Test settings', ttw=True, ttw_skip_fields=('node2', )) self.init_ptah() mod = SettingsModule(None, self.request) grp = mod['test'] settings = grp.group form = EditForm(grp, self.request) self.assertEqual(form.label, settings.__title__) self.assertEqual(form.description, settings.__description__) self.assertIs(form.form_content(), settings) fields = form.fields self.assertIn('node1', fields) self.assertNotIn('node2', fields) res = form.back_handler() self.assertIsInstance(res, HTTPFound) self.assertEqual(res.headers['location'], '..') form.update_form() form.modify_handler() self.assertIn('Settings have been modified.', self.request.render_messages())
def test_traverse_ttw(self): from ptah.manage.settings import SettingsModule, SettingsWrapper ptah.register_settings( 'test', ptah.form.TextField('node1', default='test1'), ptah.form.TextField('node2', default='test2', tint=True), title = 'Test settings') self.init_ptah() grp = ptah.get_settings('test', self.registry) mod = SettingsModule(None, self.request) self.assertRaises( KeyError, mod.__getitem__, 'test') grp.__ttw__ = True tgrp = mod['test'] self.assertIs(tgrp.group, grp) self.assertIsInstance(tgrp, SettingsWrapper)
def test_settings_register_simple(self): node = ptah.form.TextField( 'node', default = 'test') ptah.register_settings( 'group1', node, title = 'Section title', description = 'Section description', ) self.init_ptah() group = ptah.get_settings('group1', self.registry) self.assertEqual(len(group.__fields__), 1) self.assertIn(node, group.__fields__.values()) self.assertEqual(group['node'], 'test') self.assertRaises( KeyError, group.__getitem__, 'unknown') group.node = 'test2' self.assertFalse(group.node == group['node'])
import ptah ptah.register_settings( 'ptah-minicms', ptah.form.TextField( 'band', default = 'Primus', title = 'Favorite band', description = 'This is your favorite band.'), ptah.form.TextField( 'happy', default = True, title = 'Are you happy?', description = 'Does Ptah bring you happiness?'), title = 'ptah_minicms settings', description = 'Configuration settings for ptah_minicms.' )
import ptah ptah.register_settings( 'herokuapp-settings', ptah.form.TextField( 'band', default = 'Primus', title = 'Favorite band', description = 'This is your favorite band.'), ptah.form.TextField( 'happy', default = True, title = 'Are you happy?', description = 'Does Ptah bring you happiness?'), ptah.form.TextAreaField( 'field', default = 'Test text area', title = 'Favorite band 3', description = 'This is your favorite band.'), title = 'herokuapp settings', description = 'Configuration settings for herokuapp.' )
def test_settings_command(self): field = ptah.form.TextField( 'node', default = 'test') ptah.register_settings( 'group1', field, title = 'Section1', description = 'Description1', ) ptah.register_settings( 'group2', field, title = 'Section2', description = 'Description2', ) self.init_ptah() group1 = ptah.get_settings('group1', self.registry) group2 = ptah.get_settings('group2', self.registry) # all sys.argv[1:] = ['-a', 'ptah.ini'] stdout = sys.stdout out = NativeIO() sys.stdout = out settings.main(False) sys.stdout = stdout val = out.getvalue() self.assertIn('Section1', val) self.assertIn('Section2', val) self.assertIn('group1.node', val) self.assertIn('group2.node', val) # section sys.argv[1:] = ['-l', 'group1', 'ptah.ini'] stdout = sys.stdout out = NativeIO() sys.stdout = out settings.main(False) sys.stdout = stdout val = out.getvalue() self.assertIn('Section1', val) self.assertNotIn('Section2', val) self.assertIn('group1.node', val) self.assertNotIn('group2.node', val) # print sys.argv[1:] = ['-p', 'ptah.ini'] stdout = sys.stdout out = NativeIO() sys.stdout = out settings.main(False) sys.stdout = stdout val = out.getvalue().strip() self.assertIn('group1.node = "test"', val) self.assertIn('group2.node = "test"', val)
ptah.register_settings( CFG_ID_AUTH, ptah.form.TextField('github_id', title='Client id', description='Github client id.', default=''), ptah.form.TextField('github_secret', title='Secret', description='Github client secret.', default='', tint=True), ptah.form.TextField('facebook_id', title='Id', description='Facebook client id.', default=''), ptah.form.TextField('facebook_secret', title='Secret', description='Facebook client secret.', default='', tint=True), ptah.form.TextField('google_id', title='Id', description='Google client id.', default=''), ptah.form.TextField('google_secret', title='Secret', description='Google client secret.', default='', tint=True), title='OAuth2 providers', )
ptah.register_settings( ptah.CFG_ID_PTAH, ptah.form.BoolField( 'auth', title = _('Authentication policy'), description = _('Enable authentication policy.'), default = False), ptah.form.TextField( 'secret', title = _('Authentication policy secret'), description = _('The secret (a string) used for auth_tkt ' 'cookie signing'), default = '', tint = True), ptah.form.TextField( 'hashalg', title = _('Authentication policy hash algorithm'), description = _('The hash algorithm used for auth_tkt ' 'cookie generation'), default = 'sha512'), ptah.form.TextField( 'manage', title = 'Ptah manage id', default = 'ptah-manage'), ptah.form.LinesField( 'managers', title = 'Manage login', description = 'List of user logins with access rights to '\ 'ptah management ui.', default = ()), ptah.form.TextField( 'manager_role', title = 'Manager role', description = 'Specific role with access rights to ptah management ui.', default = ''), ptah.form.LinesField( 'disable_modules', title = 'Hide Modules in Management UI', description = 'List of modules names to hide in manage ui', default = ()), ptah.form.LinesField( 'enable_modules', title = 'Enable Modules in Management UI', description = 'List of modules names to enable in manage ui', default = ()), ptah.form.LinesField( 'disable_models', title = 'Hide Models in Model Management UI', description = 'List of models to hide in model manage ui', default = ()), ptah.form.TextField( 'email_from_name', default = 'Site administrator'), ptah.form.TextField( 'email_from_address', validator = ptah.form.Email(), required = False, default = 'admin@localhost'), ptah.form.ChoiceField( 'pwd_manager', title = 'Password manager', description = 'Available password managers '\ '("plain", "ssha", "bcrypt")', vocabulary = ptah.form.Vocabulary( "plain", "ssha",), default = 'plain'), ptah.form.IntegerField( 'pwd_min_length', title = 'Length', description = 'Password minimium length.', default = 5), ptah.form.BoolField( 'pwd_letters_digits', title = 'Letters and digits', description = 'Use letters and digits in password.', default = False), ptah.form.BoolField( 'pwd_letters_mixed_case', title = 'Letters mixed case', description = 'Use letters in mixed case.', default = False), ptah.form.LinesField( 'db_skip_tables', title = 'Skip table creation', description = 'Do not create listed tables during data population.', default = ()), ptah.form.LinesField( 'default_roles', title = 'Default roles', description = 'List of default assigned roles for all principals.', default = ()), title = _('Ptah settings'), )
import ptah ptah.register_settings( 'ptah-ws', ptah.form.TextField( 'band', default = 'Primus', title = 'Favorite band', description = 'This is your favorite band.'), ptah.form.TextField( 'happy', default = True, title = 'Are you happy?', description = 'Does Ptah bring you happiness?'), ptah.form.TextAreaField( 'field', default = 'Test text area', title = 'Favorite band 3', description = 'This is your favorite band.'), title = 'ptah_ws settings', description = 'Configuration settings for ptah_ws.' )
except: self.message( "Can't connect to target host. Please try again later.",'warning') token.service.remove(tid) return if data == 'success': return HTTPFound(location='http://%s/authToken?token=%s'%(host, tid)) token.service.remove(tid) self.message("Login or password are wrong.") @form.button('Cancel') def cancelHandler(self): site = self.request.matchdict['site'] return HTTPFound(location='http://%s'%site) ptah.register_settings( 'ploud-login', form.TextField( 'backend', required = True, title = 'Backend server host.', default = '', ), title = 'Ploud login service' )
ptah.register_settings( ptah.CFG_ID_PTAH, ptah.form.BoolField( "auth", title=_("Authentication policy"), description=_("Enable authentication policy."), default=False ), ptah.form.TextField( "secret", title=_("Authentication policy secret"), description=_("The secret (a string) used for auth_tkt " "cookie signing"), default="", tint=True, ), ptah.form.TextField( "hashalg", title=_("Authentication policy hash algorithm"), description=_("The hash algorithm used for auth_tkt " "cookie generation"), default="sha512", ), ptah.form.TextField("manage", title="Ptah manage id", default="ptah-manage"), ptah.form.LinesField( "managers", title="Manage login", description="List of user logins with access rights to " "ptah management ui.", default=(), ), ptah.form.TextField( "manager_role", title="Manager role", description="Specific role with access rights to ptah management ui.", default="", ), ptah.form.LinesField( "disable_modules", title="Hide Modules in Management UI", description="List of modules names to hide in manage ui", default=(), ), ptah.form.LinesField( "enable_modules", title="Enable Modules in Management UI", description="List of modules names to enable in manage ui", default=(), ), ptah.form.LinesField( "disable_models", title="Hide Models in Model Management UI", description="List of models to hide in model manage ui", default=(), ), ptah.form.ChoiceField( "pwd_manager", title="Password manager", description="Available password managers " '("plain", "ssha", "bcrypt")', vocabulary=ptah.form.Vocabulary("plain", "ssha"), default="plain", ), ptah.form.IntegerField("pwd_min_length", title="Length", description="Password minimium length.", default=5), ptah.form.BoolField( "pwd_letters_digits", title="Letters and digits", description="Use letters and digits in password.", default=False, ), ptah.form.BoolField( "pwd_letters_mixed_case", title="Letters mixed case", description="Use letters in mixed case.", default=False ), ptah.form.LinesField( "db_skip_tables", title="Skip table creation", description="Do not create listed tables during data population.", default=(), ), ptah.form.LinesField( "default_roles", title="Default roles", description="List of default assigned roles for all principals.", default=(), ), title=_("Ptah settings"), )
def test_settings_command(self): field = ptah.form.TextField('node', default='test') ptah.register_settings( 'group1', field, title='Section1', description='Description1', ) ptah.register_settings( 'group2', field, title='Section2', description='Description2', ) self.init_ptah() group1 = ptah.get_settings('group1', self.registry) group2 = ptah.get_settings('group2', self.registry) # all sys.argv[1:] = ['-a'] stdout = sys.stdout out = NativeIO() sys.stdout = out settings.main(False) sys.stdout = stdout val = out.getvalue() self.assertIn('Section1', val) self.assertIn('Section2', val) self.assertIn('group1.node', val) self.assertIn('group2.node', val) # section sys.argv[1:] = ['-l', 'group1'] stdout = sys.stdout out = NativeIO() sys.stdout = out settings.main(False) sys.stdout = stdout val = out.getvalue() self.assertIn('Section1', val) self.assertNotIn('Section2', val) self.assertIn('group1.node', val) self.assertNotIn('group2.node', val) # print sys.argv[1:] = ['-p'] stdout = sys.stdout out = NativeIO() sys.stdout = out settings.main(False) sys.stdout = stdout val = out.getvalue().strip() self.assertIn('group1.node = "test"', val) self.assertIn('group2.node = "test"', val)
ptah.register_settings( ptah.CFG_ID_PTAH, ptah.form.BoolField( 'auth', title = _('Authentication policy'), description = _('Enable authentication policy.'), default = False), ptah.form.TextField( 'secret', title = _('Authentication policy secret'), description = _('The secret (a string) used for auth_tkt ' 'cookie signing'), default = ''), ptah.form.IntegerField( 'settings_dbpoll', title = _('Settings db poll interval (seconds).'), description = _('If you allow to change setting ttw. ' '"0" means do not poll'), default = 0), ptah.form.TextField( 'manage', title = 'Ptah manage id', default = 'ptah-manage'), ptah.form.LinesField( 'managers', title = 'Manage login', description = 'List of user logins with access rights to '\ 'ptah management ui.', default = ()), ptah.form.TextField( 'manager_role', title = 'Manager role', description = 'Specific role with access rights to ptah management ui.', default = ''), ptah.form.LinesField( 'disable_modules', title = 'Hide Modules in Management UI', description = 'List of modules names to hide in manage ui', default = ()), ptah.form.LinesField( 'disable_models', title = 'Hide Models in Model Management UI', description = 'List of models to hide in model manage ui', default = ()), ptah.form.TextField( 'email_from_name', default = 'Site administrator'), ptah.form.TextField( 'email_from_address', validator = ptah.form.Email(), required = False, default = 'admin@localhost'), title = _('Ptah settings'), )
ptah.register_settings( 'ploud', ptah.form.TextField( 'domain', title = 'Ploud Domain', description = 'Ploud domain name for hosting.', default = ''), ptah.form.TextField( 'dsn', title = 'Ploud DSN', description = 'Main ploud database dsn.', default = ''), ptah.form.TextField( 'clientsdsn', title = 'Ploud Client DSN', description = 'Ploud clients zodb database dsn.', default = ''), ptah.form.BoolField( 'registration', title = 'Registration', description = 'Enable ploud registrations.', default = True), ptah.form.TextField( 'loginservice', title = 'Login service url', default = 'http://localhost:8085'), ptah.form.BoolField( 'maintenance', title = 'Maintenance', description = 'Enable maintenance worker.', default = False), title = 'Ploud settings', )
ptah.register_settings( 'frontend', ptah.form.TextField( 'host', title = 'Host', description = 'Ploud frontend host.', default = 'http://ploud.com'), ptah.form.TextField( 'email_from', title = 'From email', default = 'Ploud.com <*****@*****.**>'), ptah.form.LinesField( 'reserved_sitenames', title = 'Reserved site names', default = ('demo', 'desktop', 'enfold','static', 'ww','www', 'wwww', 'support', 'login', 'rest',)), ptah.form.BoolField( 'validation', title = 'Validation', description = 'Ploud user validation.', default = True), ptah.form.BoolField( 'devmode', title = 'Development mode', default = False), title = 'Ploud frontend configuration', ttw = True, )
ptah.register_settings( CFG_ID_CROWD, ptah.form.TextField( 'type', title='User content type', description='User content type for crowd user provider.', default='ptah-crowd-user'), ptah.form.BoolField('join', title='Site registration', description='Enable/Disable site registration.', default=True), ptah.form.TextField('join-url', title='Join url', description='Custom join form url.', default='/join.html'), ptah.form.TextField('login-url', title='Login url', description='Custom login form url.', default='/login.html'), ptah.form.TextField('success-url', title='Successfull login url', description='Successfull logig redirect url.', default=''), ptah.form.BoolField( 'password', title='User password', description='Allow user to select password during registration.', default=False), ptah.form.BoolField('validation', title='Email validation', description='Validate user account by email.', default=True), ptah.form.BoolField('allow-unvalidated', title='Allow unvalidated', description='Allow login for unvalidated users.', default=True), ptah.form.TextField('admin-name', title='Admin name', description='Default admin name.', default='Ptah admin'), ptah.form.TextField('admin-login', title='Admin login', description='Default admin login.', default=''), ptah.form.TextField('admin-password', title='Admin password', description='Default admin password.', default='12345', tint=True), ptah.form.TextField('admin-role', title='Admin role', description='Default admin role.', default=''), title='Ptah crowd settings', )
ptah.register_settings( ptah.CFG_ID_PTAH, ptah.form.BoolField( 'auth', title = _('Authentication policy'), description = _('Enable authentication policy.'), default = False), ptah.form.TextField( 'secret', title = _('Authentication policy secret'), description = _('The secret (a string) used for auth_tkt ' 'cookie signing'), default = '', tint = True), ptah.form.TextField( 'manage', title = 'Ptah manage id', default = 'ptah-manage'), ptah.form.LinesField( 'managers', title = 'Manage login', description = 'List of user logins with access rights to '\ 'ptah management ui.', default = ()), ptah.form.TextField( 'manager_role', title = 'Manager role', description = 'Specific role with access rights to ptah management ui.', default = ''), ptah.form.LinesField( 'disable_modules', title = 'Hide Modules in Management UI', description = 'List of modules names to hide in manage ui', default = ()), ptah.form.LinesField( 'enable_modules', title = 'Enable Modules in Management UI', description = 'List of modules names to enable in manage ui', default = ()), ptah.form.LinesField( 'disable_models', title = 'Hide Models in Model Management UI', description = 'List of models to hide in model manage ui', default = ()), ptah.form.TextField( 'email_from_name', default = 'Site administrator'), ptah.form.TextField( 'email_from_address', validator = ptah.form.Email(), required = False, default = 'admin@localhost'), ptah.form.ChoiceField( 'pwd_manager', title = 'Password manager', description = 'Available password managers '\ '("plain", "ssha", "bcrypt")', vocabulary = ptah.form.SimpleVocabulary.from_values( "plain", "ssha",), default = 'plain'), ptah.form.IntegerField( 'pwd_min_length', title = 'Length', description = 'Password minimium length.', default = 5), ptah.form.BoolField( 'pwd_letters_digits', title = 'Letters and digits', description = 'Use letters and digits in password.', default = False), ptah.form.BoolField( 'pwd_letters_mixed_case', title = 'Letters mixed case', description = 'Use letters in mixed case.', default = False), ptah.form.LinesField( 'db_skip_tables', title = 'Skip table creation', description = 'Do not create listed tables during data population.', default = ()), ptah.form.LinesField( 'default_roles', title = 'Default roles', description = 'List of default assigned roles for all principals.', default = ()), ptah.form.BoolField( 'amd-spec-enabled', title = 'AMD spec', description = 'Status of amd spec support (true/false).', default = False), ptah.form.LinesField( 'amd-specs', title = 'Amd spec files', default = ()), ptah.form.TextField( 'amd-spec-dir', title = 'Directory for compiled files', default = ''), ptah.form.TextField( 'nodejs-path', title = 'NodeJS path', description = 'Path to nodejs executable.', default = ''), title = _('Ptah settings'), )
ptah.register_settings( CFG_ID_CROWD, ptah.form.TextField( 'type', title = 'User content type', description = 'User content type for crowd user provider.', default = 'ptah-crowd-user'), ptah.form.BoolField( 'join', title = 'Site registration', description = 'Enable/Disable site registration.', default = True), ptah.form.TextField( 'join-url', title = 'Join url', description = 'Custom join form url.', default = '/join.html'), ptah.form.TextField( 'login-url', title = 'Login url', description = 'Custom login form url.', default = '/login.html'), ptah.form.TextField( 'success-url', title = 'Successfull login url', description = 'Successfull logig redirect url.', default = ''), ptah.form.BoolField( 'password', title = 'User password', description = 'Allow user to select password during registration.', default = False), ptah.form.BoolField( 'validation', title = 'Email validation', description = 'Validate user account by email.', default = True), ptah.form.BoolField( 'allow-unvalidated', title = 'Allow unvalidated', description = 'Allow login for unvalidated users.', default = True), ptah.form.TextField( 'admin-name', title = 'Admin name', description = 'Default admin name.', default = 'Ptah admin'), ptah.form.TextField( 'admin-login', title = 'Admin login', description = 'Default admin login.', default = ''), ptah.form.TextField( 'admin-email', title = 'Admin email', description = 'Default admin email.', default = 'admin@localhost'), ptah.form.TextField( 'admin-password', title = 'Admin password', description = 'Default admin password.', default = '12345', tint = True), ptah.form.TextField( 'admin-role', title = 'Admin role', description = 'Default admin role.', default = ''), title = 'Ptah crowd settings', )
ptah.register_settings( CFG_ID_AUTH, ptah.form.TextField( 'github_id', title = 'Client id', description = 'Github client id.', default = ''), ptah.form.TextField( 'github_secret', title = 'Secret', description = 'Github client secret.', default = '', tint = True), ptah.form.TextField( 'facebook_id', title = 'Id', description = 'Facebook client id.', default = ''), ptah.form.TextField( 'facebook_secret', title = 'Secret', description = 'Facebook client secret.', default = '', tint = True), ptah.form.TextField( 'google_id', title = 'Id', description = 'Google client id.', default = ''), ptah.form.TextField( 'google_secret', title = 'Secret', description = 'Google client secret.', default = '', tint = True), title = 'OAuth2 providers', )