# HG changeset patch # User Thomas Arendsen Hein # Date 1151354688 -7200 # Node ID 18cf95ad3666585dc7b9340a692c1b9ce21344ca # Parent b73552a00b209c8fcd71fd23fb990c5d05910010 Allow using default values with ui.configlist, too, and add a test for this. diff -r b73552a00b20 -r 18cf95ad3666 mercurial/ui.py --- a/mercurial/ui.py Mon Jun 26 16:47:24 2006 +0200 +++ b/mercurial/ui.py Mon Jun 26 22:44:48 2006 +0200 @@ -99,10 +99,10 @@ """Return a list of comma/space separated strings""" result = self.config(section, name) if result is None: - return [] - else: - return result.replace(",", " ").split() - + result = default or [] + if isinstance(result, basestring): + result = result.replace(",", " ").split() + return result def configbool(self, section, name, default=False): if self.overlay.has_key((section, name)): diff -r b73552a00b20 -r 18cf95ad3666 tests/test-ui-config --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-ui-config Mon Jun 26 22:44:48 2006 +0200 @@ -0,0 +1,47 @@ +#!/usr/bin/env python + +from mercurial import ui + +testui = ui.ui() +testui.updateopts(config=[ + 'values.string=string value', + 'values.bool1=true', + 'values.bool2=false', + 'lists.list1=foo', + 'lists.list2=foo bar baz', + 'lists.list3=alice, bob', + 'lists.list4=foo bar baz alice, bob', +]) + +print repr(testui.configitems('values')) +print repr(testui.configitems('lists')) +print "---" +print repr(testui.config('values', 'string')) +print repr(testui.config('values', 'bool1')) +print repr(testui.config('values', 'bool2')) +print repr(testui.config('values', 'unknown')) +print "---" +try: + print repr(testui.configbool('values', 'string')) +except ValueError, why: + print why +print repr(testui.configbool('values', 'bool1')) +print repr(testui.configbool('values', 'bool2')) +print repr(testui.configbool('values', 'bool2', True)) +print repr(testui.configbool('values', 'unknown')) +print repr(testui.configbool('values', 'unknown', True)) +print "---" +print repr(testui.configlist('lists', 'list1')) +print repr(testui.configlist('lists', 'list2')) +print repr(testui.configlist('lists', 'list3')) +print repr(testui.configlist('lists', 'list4')) +print repr(testui.configlist('lists', 'list4', ['foo'])) +print repr(testui.configlist('lists', 'unknown')) +print repr(testui.configlist('lists', 'unknown', '')) +print repr(testui.configlist('lists', 'unknown', 'foo')) +print repr(testui.configlist('lists', 'unknown', ['foo'])) +print repr(testui.configlist('lists', 'unknown', 'foo bar')) +print repr(testui.configlist('lists', 'unknown', 'foo, bar')) +print repr(testui.configlist('lists', 'unknown', ['foo bar'])) +print repr(testui.configlist('lists', 'unknown', ['foo', 'bar'])) +print "---" diff -r b73552a00b20 -r 18cf95ad3666 tests/test-ui-config.out --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-ui-config.out Mon Jun 26 22:44:48 2006 +0200 @@ -0,0 +1,29 @@ +[('bool1', 'true'), ('bool2', 'false'), ('string', 'string value')] +[('list1', 'foo'), ('list2', 'foo bar baz'), ('list3', 'alice, bob'), ('list4', 'foo bar baz alice, bob')] +--- +'string value' +'true' +'false' +None +--- +Not a boolean: string value +True +False +False +False +True +--- +['foo'] +['foo', 'bar', 'baz'] +['alice', 'bob'] +['foo', 'bar', 'baz', 'alice', 'bob'] +['foo', 'bar', 'baz', 'alice', 'bob'] +[] +[] +['foo'] +['foo'] +['foo', 'bar'] +['foo', 'bar'] +['foo bar'] +['foo', 'bar'] +---