[pytest-dev] (Help) How to replace __multicall__ with hookwrapper?

holger krekel holger at merlinux.eu
Tue Sep 22 21:31:31 CEST 2015


On Tue, Sep 22, 2015 at 20:27 +0100, Ernesto D. Luzon Jr. wrote:
> Hi All,
> 
> I have code below that is based from the snippet provided by Holger:
> http://stackoverflow.com/questions/10754970/in-which-py-test-callout-can-i-find-both-item-and-report-data
> 
> def pytest_runtest_makereport(item, call, __multicall__):
>     rep = __multicall__.execute()
>     setattr(item, "rep_" + rep.when, rep)
>     return rep
> 
> Now, I'm struggling how to use hookwrapper instead of __multicall__.
> I'd really appreciate if someone can help, thanks!

did you look at:

https://pytest.org/latest/writing_plugins.html#hookwrapper-executing-around-other-hooks

?

Your above code should look like this:

    @pytest.hookwrapper
    def pytest_runtest_makereport(item, call):
         outcome = yield
         rep = outcome.get_result()
         setattr(item, "rep_" + rep.when, rep)
         return rep

best,
holger


> Many thanks,
> Ernesto D. Luzon Jr.

> _______________________________________________
> pytest-dev mailing list
> pytest-dev at python.org
> https://mail.python.org/mailman/listinfo/pytest-dev


-- 
about me:    http://holgerkrekel.net/about-me/
contracting: http://merlinux.eu


More information about the pytest-dev mailing list