[pypy-svn] r33333 - in pypy/branch/even-more-config3/pypy/config: . test
cfbolz at codespeak.net
cfbolz at codespeak.net
Mon Oct 16 15:43:03 CEST 2006
Author: cfbolz
Date: Mon Oct 16 15:43:02 2006
New Revision: 33333
Modified:
pypy/branch/even-more-config3/pypy/config/config.py
pypy/branch/even-more-config3/pypy/config/test/test_config.py
Log:
(pedronis, cfbolz): rename _cfgimpl_get_by_path to _cfgimpl_get_home_by_path to
make it more clearer that it is really the parent that is returned. Then fix
the handling of useoptions group.* syntax.
Modified: pypy/branch/even-more-config3/pypy/config/config.py
==============================================================================
--- pypy/branch/even-more-config3/pypy/config/config.py (original)
+++ pypy/branch/even-more-config3/pypy/config/config.py Mon Oct 16 15:43:02 2006
@@ -22,9 +22,9 @@
def override(self, overrides):
for name, value in overrides.iteritems():
- subconfig, name = self._cfgimpl_get_by_path(name)
- setattr(subconfig, name, value)
- subconfig._cfgimpl_value_owners[name] = 'default'
+ homeconfig, name = self._cfgimpl_get_home_by_path(name)
+ setattr(homeconfig, name, value)
+ homeconfig._cfgimpl_value_owners[name] = 'default'
def __setattr__(self, name, value):
if self._cfgimpl_frozen and getattr(self, name) != value:
@@ -55,7 +55,7 @@
def require(self, name, value):
self.setoption(name, value, "required")
- def _cfgimpl_get_by_path(self, path):
+ def _cfgimpl_get_home_by_path(self, path):
"""returns tuple (config, name)"""
path = path.split('.')
for step in path[:-1]:
@@ -168,8 +168,8 @@
name = self._name
for path, reqvalue in self._requires.get(value, []):
toplevel = config._cfgimpl_get_toplevel()
- subconfig, name = toplevel._cfgimpl_get_by_path(path)
- subconfig.require(name, reqvalue)
+ homeconfig, name = toplevel._cfgimpl_get_home_by_path(path)
+ homeconfig.require(name, reqvalue)
super(ChoiceOption, self).setoption(config, value)
def validate(self, value):
@@ -349,29 +349,25 @@
for path in useoptions:
if path.endswith(".*"):
path = path[:-2]
- subconf, name = config._cfgimpl_get_by_path(path)
- path = path.rsplit(".", 1)
- if len(path)==1:
- path = ""
- else:
- path = path[0] + "."
+ homeconf, name = config._cfgimpl_get_home_by_path(path)
+ subconf = getattr(homeconf, name)
children = [
- path + child
+ path + "." + child
for child in subconf.getpaths()]
useoptions.extend(children)
else:
if path in seen:
continue
seen[path] = True
- subconf, name = config._cfgimpl_get_by_path(path)
- option = getattr(subconf._cfgimpl_descr, name)
+ homeconf, name = config._cfgimpl_get_home_by_path(path)
+ option = getattr(homeconf._cfgimpl_descr, name)
if option.cmdline is DEFAULT_OPTION_NAME:
chunks = ('--%s' % (path.replace('.', '-'),),)
elif option.cmdline is None:
continue
else:
chunks = option.cmdline.split(' ')
- grp = get_group(path, subconf._cfgimpl_descr.doc)
- option.add_optparse_option(chunks, grp, subconf)
+ grp = get_group(path, homeconf._cfgimpl_descr.doc)
+ option.add_optparse_option(chunks, grp, homeconf)
return parser
Modified: pypy/branch/even-more-config3/pypy/config/test/test_config.py
==============================================================================
--- pypy/branch/even-more-config3/pypy/config/test/test_config.py (original)
+++ pypy/branch/even-more-config3/pypy/config/test/test_config.py Mon Oct 16 15:43:02 2006
@@ -196,7 +196,8 @@
OptionDescription("sub", "", [
BoolOption("b2", "", default=False, cmdline="--b2")
])
- ])
+ ]),
+ BoolOption("b3", "", default=False, cmdline="--b3"),
])
config = Config(descr)
assert not config.a.b1
@@ -205,6 +206,8 @@
options, args = parser.parse_args(args=["--b1", "--b2"])
assert config.a.b1
assert config.a.sub.b2
+ py.test.raises(SystemExit,
+ "(options, args) = parser.parse_args(args=['--b3'])")
config = Config(descr)
assert not config.a.b1
More information about the Pypy-commit
mailing list