Skip to content

Commit

Permalink
Merge pull request #3177 from nicoddemus/mention-force-result
Browse files Browse the repository at this point in the history
Mention outcome.force_result() and add link to pluggy's docs
  • Loading branch information
nicoddemus committed Feb 7, 2018
2 parents f721829 + 653abad commit 16c52f0
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions doc/en/writing_plugins.rst
Original file line number Diff line number Diff line change
Expand Up @@ -462,19 +462,24 @@ Here is an example definition of a hook wrapper::

@pytest.hookimpl(hookwrapper=True)
def pytest_pyfunc_call(pyfuncitem):
# do whatever you want before the next hook executes
do_something_before_next_hook_executes()

outcome = yield
# outcome.excinfo may be None or a (cls, val, tb) tuple

res = outcome.get_result() # will raise if outcome was exception
# postprocess result

post_process_result(res)

outcome.force_result(new_res) # to override the return value to the plugin system

Note that hook wrappers don't return results themselves, they merely
perform tracing or other side effects around the actual hook implementations.
If the result of the underlying hook is a mutable object, they may modify
that result but it's probably better to avoid it.

For more information, consult the `pluggy documentation <http:https://pluggy.readthedocs.io/en/latest/#wrappers>`_.


Hook function ordering / call example
-------------------------------------
Expand Down

0 comments on commit 16c52f0

Please sign in to comment.