diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2014-09-16 15:50:04 -0700 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2014-10-22 13:11:55 -0500 |
commit | 5c0b8c2b0229992671e076e74c1256a880381d62 (patch) | |
tree | d112dd9129e8e44fd17633fe13d2a359bdbeebbc /src/lib/Bcfg2/Options/Actions.py | |
parent | 56d2b72b6f8b2e1a27a16dbfdab10f0b83816ceb (diff) | |
download | bcfg2-5c0b8c2b0229992671e076e74c1256a880381d62.tar.gz bcfg2-5c0b8c2b0229992671e076e74c1256a880381d62.tar.bz2 bcfg2-5c0b8c2b0229992671e076e74c1256a880381d62.zip |
testsuite: Added unit tests for new option parsing
Diffstat (limited to 'src/lib/Bcfg2/Options/Actions.py')
-rw-r--r-- | src/lib/Bcfg2/Options/Actions.py | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/lib/Bcfg2/Options/Actions.py b/src/lib/Bcfg2/Options/Actions.py index 8b941f2bb..2916cc194 100644 --- a/src/lib/Bcfg2/Options/Actions.py +++ b/src/lib/Bcfg2/Options/Actions.py @@ -2,7 +2,8 @@ import sys import argparse -from Bcfg2.Options.Parser import get_parser +from Bcfg2.Options.Parser import get_parser, OptionParserException +from Bcfg2.Options.Options import _debug __all__ = ["ConfigFileAction", "ComponentAction", "PluginsAction"] @@ -101,7 +102,7 @@ class ComponentAction(FinalizableAction): fail_silently = False def __init__(self, *args, **kwargs): - if self.mapping: + if self.mapping and not self.islist: if 'choices' not in kwargs: kwargs['choices'] = self.mapping.keys() FinalizableAction.__init__(self, *args, **kwargs) @@ -143,7 +144,7 @@ class ComponentAction(FinalizableAction): if cls: get_parser().add_component(cls) elif not self.fail_silently: - print("Could not load component %s" % name) + raise OptionParserException("Could not load component %s" % name) return cls def __call__(self, parser, namespace, values, option_string=None): @@ -168,7 +169,10 @@ class ConfigFileAction(FinalizableAction): ``bcfg2-lint.conf``). """ def __call__(self, parser, namespace, values, option_string=None): - parser.add_config_file(self.dest, values, reparse=False) + if values: + parser.add_config_file(self.dest, values, reparse=False) + else: + _debug("No config file passed for %s" % self) FinalizableAction.__call__(self, parser, namespace, values, option_string=option_string) |