diff options
-rw-r--r-- | configuration.py | 2 | ||||
-rw-r--r-- | optparser.py | 2 | ||||
-rw-r--r-- | test/unittest_configuration.py | 26 |
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() |