Variant of patch #1478292. doctest.register_optionflag(name)
shouldn't create a new flag when `name` is already the name of an option flag.
This commit is contained in:
parent
40f55b2f08
commit
ad2ef33245
|
@ -129,9 +129,8 @@ warnings.filterwarnings("ignore", "is_private", DeprecationWarning,
|
|||
|
||||
OPTIONFLAGS_BY_NAME = {}
|
||||
def register_optionflag(name):
|
||||
flag = 1 << len(OPTIONFLAGS_BY_NAME)
|
||||
OPTIONFLAGS_BY_NAME[name] = flag
|
||||
return flag
|
||||
# Create a new flag unless `name` is already known.
|
||||
return OPTIONFLAGS_BY_NAME.setdefault(name, 1 << len(OPTIONFLAGS_BY_NAME))
|
||||
|
||||
DONT_ACCEPT_TRUE_FOR_1 = register_optionflag('DONT_ACCEPT_TRUE_FOR_1')
|
||||
DONT_ACCEPT_BLANKLINE = register_optionflag('DONT_ACCEPT_BLANKLINE')
|
||||
|
|
|
@ -1300,6 +1300,26 @@ count as failures:
|
|||
ValueError: 2
|
||||
(3, 5)
|
||||
|
||||
New option flags can also be registered, via register_optionflag(). Here
|
||||
we reach into doctest's internals a bit.
|
||||
|
||||
>>> unlikely = "UNLIKELY_OPTION_NAME"
|
||||
>>> unlikely in doctest.OPTIONFLAGS_BY_NAME
|
||||
False
|
||||
>>> new_flag_value = doctest.register_optionflag(unlikely)
|
||||
>>> unlikely in doctest.OPTIONFLAGS_BY_NAME
|
||||
True
|
||||
|
||||
Before 2.4.4/2.5, registering a name more than once erroneously created
|
||||
more than one flag value. Here we verify that's fixed:
|
||||
|
||||
>>> redundant_flag_value = doctest.register_optionflag(unlikely)
|
||||
>>> redundant_flag_value == new_flag_value
|
||||
True
|
||||
|
||||
Clean up.
|
||||
>>> del doctest.OPTIONFLAGS_BY_NAME[unlikely]
|
||||
|
||||
"""
|
||||
|
||||
def option_directives(): r"""
|
||||
|
|
Loading…
Reference in New Issue