def dump(self, keys=None, sparse=False, pnative=False, prefix='', none_str=''): if not keys: keys = [] cfg = self.get(keys, sparse) if pnative: print(cfg) else: printcfg(cfg, prefix=prefix, level=len(keys), none_str=none_str)
def test_printcfg_list_values(self): cfg = OrderedDictWithDefaults() cfg['root'] = OrderedDictWithDefaults() cfg['root']['special'] = ['a', 'b', 'c', None] cfg['root']['normal'] = 0 myhandle = StringIO() printcfg(cfg, handle=myhandle, none_str='d') expected = "[root]\n special = a, b, c, d\n normal = 0\n" actual = myhandle.getvalue() self.assertEqual(expected, actual)
def test_printcfg_break_lines(self): cfg = OrderedDictWithDefaults() cfg['root'] = OrderedDictWithDefaults() cfg['root']['special'] = "\nthis is\nvalid" cfg['root']['normal'] = 0 myhandle = StringIO() printcfg(cfg, handle=myhandle) expected = "[root]\n special = \"\"\"\n \n " \ " this is\n valid\n \"\"\"\n normal = 0\n" actual = myhandle.getvalue() self.assertEqual(expected, actual)
def test_printcfg_none_str_is_none(self): cfg = OrderedDictWithDefaults() cfg['root'] = OrderedDictWithDefaults() cfg['root']['special'] = 1 cfg['root']['normal'] = 0 cfg['root'][None] = None cfg[None] = None myhandle = StringIO() printcfg(cfg, handle=myhandle, none_str=None) expected = "[root]\n special = 1\n normal = 0\n" actual = myhandle.getvalue() self.assertEqual(expected, actual)
def dump(self, keys=None, sparse=False, prefix='', none_str='', handle=None): if not keys: keys = [] cfg = self.get(keys, sparse) printcfg(cfg, prefix=prefix, level=len(keys), none_str=none_str, handle=handle)
'cde': 'foo', }, 'hostnames': { 'host 1': { 'work dir': '/a/b/c', 'running dir': '/a/b/c/d' }, 'host 2': { 'work dir': '/x/b/c', 'running dir': '/x/b/c/d' }, } } x2 = converter(lambda x: 2 * x, 'value x 2') printcfg(cfg) sys.stdout.write('\n') upg = upgrader(cfg, 'test file') # successive upgrades are incremental - at least until I think of a # good way to remember what items have already been translated... upg.deprecate('1.3', ['item one'], ['item ONE'], x2) upg.deprecate('1.3', ['section A'], ['Heading A']) # NOTE change to new item keys here! upg.deprecate('1.3', ['Heading A', 'cde'], ['Heading A', 'CDE']) upg.deprecate('1.4', ['Heading A', 'abc'], cvtr=x2, silent=True) upg.deprecate( '1.4.1', ['item two'], ['Heading A', 'item two'], silent=True) upg.deprecate('1.5', ['hostnames'], ['hosts']) upg.deprecate( '1.5',
'cde': 'foo', }, 'hostnames': { 'host 1': { 'work dir': '/a/b/c', 'running dir': '/a/b/c/d' }, 'host 2': { 'work dir': '/x/b/c', 'running dir': '/x/b/c/d' }, } } x2 = converter(lambda x: 2 * x, 'value x 2') printcfg(cfg) sys.stdout.write('\n') upg = upgrader(cfg, 'test file') # successive upgrades are incremental - at least until I think of a # good way to remember what items have already been translated... upg.deprecate('1.3', ['item one'], ['item ONE'], x2) upg.deprecate('1.3', ['section A'], ['Heading A']) # NOTE change to new item keys here! upg.deprecate('1.3', ['Heading A', 'cde'], ['Heading A', 'CDE']) upg.deprecate('1.4', ['Heading A', 'abc'], cvtr=x2, silent=True) upg.deprecate('1.4.1', ['item two'], ['Heading A', 'item two'], silent=True) upg.deprecate('1.5', ['hostnames'], ['hosts']) upg.deprecate('1.5', ['hosts', '__MANY__', 'running dir'], ['hosts', '__MANY__', 'run dir'])