summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configuration.py2
-rw-r--r--optparser.py2
-rw-r--r--test/unittest_configuration.py26
3 files changed, 27 insertions, 3 deletions
diff --git a/configuration.py b/configuration.py
index 2a1ff70..0549b05 100644
--- a/configuration.py
+++ b/configuration.py
@@ -434,7 +434,7 @@ class OptionsManagerMixIn(object):
# initialization methods ##################################################
- def load_defaults(self):
+ def load_provider_defaults(self):
"""initialize configuration using default values"""
for provider in self.options_providers:
provider.load_defaults()
diff --git a/optparser.py b/optparser.py
index 7184993..f589ead 100644
--- a/optparser.py
+++ b/optparser.py
@@ -69,7 +69,7 @@ class OptionParser(optparse.OptionParser):
# optparse inserts self.description between usage and options help
self.description = help
if isinstance(mod_or_f, str):
- exec('from %s import run, add_options'%module)
+ exec 'from %s import run, add_options' % mod_or_f
else:
run, add_options = mod_or_f
add_options(self)
diff --git a/test/unittest_configuration.py b/test/unittest_configuration.py
index 5ebac0c..f904360 100644
--- a/test/unittest_configuration.py
+++ b/test/unittest_configuration.py
@@ -3,7 +3,8 @@ import os
from cStringIO import StringIO
from logilab.common.testlib import TestCase, unittest_main
-from logilab.common.configuration import Configuration, OptionValueError
+from logilab.common.configuration import Configuration, OptionValueError, \
+ OptionsManagerMixIn, OptionsProviderMixIn
options = [('dothis', {'type':'yn', 'default': True, 'metavar': '<y or n>'}),
('value', {'type': 'string', 'metavar': '<string>', 'short': 'v'}),
@@ -169,6 +170,29 @@ options:
def test_manpage(self):
from logilab.common import __pkginfo__
self.cfg.generate_manpage(__pkginfo__, stream=StringIO())
+
+
+class Linter(OptionsManagerMixIn, OptionsProviderMixIn):
+ options = (
+ ('profile', {'type' : 'yn', 'metavar' : '<y_or_n>',
+ 'default': False,
+ 'help' : 'Profiled execution.'}),
+ )
+ def __init__(self):
+ OptionsManagerMixIn.__init__(self, usage="")
+ OptionsProviderMixIn.__init__(self)
+ self.register_options_provider(self)
+ self.load_provider_defaults()
+
+class RegrTC(TestCase):
+
+ def setUp(self):
+ self.linter = Linter()
+
+ def test_load_defaults(self):
+ self.linter.load_command_line_configuration([])
+ self.assertEquals(self.linter.config.profile, False)
+
if __name__ == '__main__':
unittest_main()