Kaydet (Commit) d7c65e28 authored tarafından Michael Foord's avatar Michael Foord

Removed XXX from unittest.mock docstring and switch to a nicer try...except...finally

üst 30162be9
...@@ -619,9 +619,7 @@ class NonCallableMock(Base): ...@@ -619,9 +619,7 @@ class NonCallableMock(Base):
def __dir__(self): def __dir__(self):
"""Filter the output of `dir(mock)` to only useful members. """Filter the output of `dir(mock)` to only useful members."""
XXXX
"""
extras = self._mock_methods or [] extras = self._mock_methods or []
from_type = dir(type(self)) from_type = dir(type(self))
from_dict = list(self.__dict__) from_dict = list(self.__dict__)
...@@ -1057,31 +1055,28 @@ class _patch(object): ...@@ -1057,31 +1055,28 @@ class _patch(object):
@wraps(func) @wraps(func)
def patched(*args, **keywargs): def patched(*args, **keywargs):
# could use with statement here
extra_args = [] extra_args = []
entered_patchers = [] entered_patchers = []
# could use try..except...finally here
try: try:
try: for patching in patched.patchings:
for patching in patched.patchings: arg = patching.__enter__()
arg = patching.__enter__() entered_patchers.append(patching)
entered_patchers.append(patching) if patching.attribute_name is not None:
if patching.attribute_name is not None: keywargs.update(arg)
keywargs.update(arg) elif patching.new is DEFAULT:
elif patching.new is DEFAULT: extra_args.append(arg)
extra_args.append(arg)
args += tuple(extra_args)
args += tuple(extra_args) return func(*args, **keywargs)
return func(*args, **keywargs) except:
except: if (patching not in entered_patchers and
if (patching not in entered_patchers and _is_started(patching)):
_is_started(patching)): # the patcher may have been started, but an exception
# the patcher may have been started, but an exception # raised whilst entering one of its additional_patchers
# raised whilst entering one of its additional_patchers entered_patchers.append(patching)
entered_patchers.append(patching) # re-raise the exception
# re-raise the exception raise
raise
finally: finally:
for patching in reversed(entered_patchers): for patching in reversed(entered_patchers):
patching.__exit__() patching.__exit__()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment