Add notes to docstring of `monkeypatch.undo()`

Note that calling `undo()` is generally not needed, and describe the "gotcha" discovered in #981.
This commit is contained in:
David Vierra 2015-08-29 16:53:57 -10:00
parent c0eec5d61c
commit 6380e19f07
1 changed files with 11 additions and 1 deletions

View File

@ -191,7 +191,17 @@ class monkeypatch:
def undo(self):
""" Undo previous changes. This call consumes the
undo stack. Calling it a second time has no effect unless
you do more monkeypatching after the undo call."""
you do more monkeypatching after the undo call.
There is generally no need to call `undo()`, since it is
called automatically during tear-down.
Note that the same `monkeypatch` fixture is used across a
single test invocation. If `monkeypatch` is used both by
the test function itself and one of the test fixtures,
calling `undo()` will undo all of the changes made in
both functions.
"""
for obj, name, value in self._setattr:
if value is not notset:
setattr(obj, name, value)