summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Options/Actions.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2014-09-16 15:50:04 -0700
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2014-11-10 17:35:43 -0600
commit477c9c4119df5fd45c1129651922d238dccad8c9 (patch)
tree8ccbb610e1748a4cb07b93686d6926e4521db815 /src/lib/Bcfg2/Options/Actions.py
parent389ce1a86b704222ddc9458cd49c281e7601b803 (diff)
downloadbcfg2-477c9c4119df5fd45c1129651922d238dccad8c9.tar.gz
bcfg2-477c9c4119df5fd45c1129651922d238dccad8c9.tar.bz2
bcfg2-477c9c4119df5fd45c1129651922d238dccad8c9.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.py12
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)