action = self._option_string_actions[option_string]
tup = action, option_string, '', short_explicit_arg
result.append(tup)
- elif option_string.startswith(option_prefix):
+ elif self.allow_abbrev and option_string.startswith(option_prefix):
action = self._option_string_actions[option_string]
tup = action, option_string, None, None
result.append(tup)
]
+class TestOptionalsDisallowSingleDashLongAbbreviation(ParserTestCase):
+ """Do not allow abbreviations of long options at all"""
+
+ parser_signature = Sig(allow_abbrev=False)
+ argument_signatures = [
+ Sig('-foo'),
+ Sig('-foodle', action='store_true'),
+ Sig('-foonly'),
+ ]
+ failures = ['-foon 3', '-food', '-food -foo 2']
+ successes = [
+ ('', NS(foo=None, foodle=False, foonly=None)),
+ ('-foo 3', NS(foo='3', foodle=False, foonly=None)),
+ ('-foonly 7 -foodle -foo 2', NS(foo='2', foodle=True, foonly='7')),
+ ]
+
+
class TestDisallowLongAbbreviationAllowsShortGrouping(ParserTestCase):
"""Do not allow abbreviations of long options at all"""