diff options
-rw-r--r-- | logilab/common/configuration.py | 2 | ||||
-rw-r--r-- | test/unittest_configuration.py | 33 |
2 files changed, 31 insertions, 4 deletions
diff --git a/logilab/common/configuration.py b/logilab/common/configuration.py index b292427..bfc3c19 100644 --- a/logilab/common/configuration.py +++ b/logilab/common/configuration.py @@ -909,7 +909,7 @@ class OptionsProviderMixIn(object): (optname, optdict, self.option_value(optname))) if None in sections: yield None, sections.pop(None) - for section, options in sections.items(): + for section, options in sorted(sections.items()): yield section.upper(), options def options_and_values(self, options=None): diff --git a/test/unittest_configuration.py b/test/unittest_configuration.py index 378b536..f72f2e1 100644 --- a/test/unittest_configuration.py +++ b/test/unittest_configuration.py @@ -51,6 +51,8 @@ OPTIONS = [('dothis', {'type':'yn', 'action': 'store', 'default': True, 'metavar ('reset-value', {'type': 'string', 'metavar': '<string>', 'short': 'r', 'dest':'value'}), + ('opt-b-1', {'type': 'string', 'metavar': '<string>', 'group': 'bgroup'}), + ('opt-b-2', {'type': 'string', 'metavar': '<string>', 'group': 'bgroup'}), ] class MyConfiguration(Configuration): @@ -210,7 +212,14 @@ named=key:val [AGROUP] -diffgroup=pouet""") +diffgroup=pouet + + +[BGROUP] + +#opt-b-1= + +#opt-b-2=""") def test_generate_config_with_space_string(self): self.cfg['value'] = ' ' @@ -239,7 +248,14 @@ reset-value=' ' [AGROUP] -diffgroup=pouet""") +diffgroup=pouet + + +[BGROUP] + +#opt-b-1= + +#opt-b-2=""") def test_roundtrip(self): @@ -295,6 +311,10 @@ Options: Agroup: --diffgroup=<key=val> + Bgroup: + --opt-b-1=<string> + --opt-b-2=<string> + Bonus: a nice additional help""" if version_info < (2, 5): @@ -356,7 +376,14 @@ reset-value=' ' [AGROUP] -diffgroup=pouet""") +diffgroup=pouet + + +[BGROUP] + +#opt-b-1= + +#opt-b-2=""") class Linter(OptionsManagerMixIn, OptionsProviderMixIn): options = ( |