New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pytest_fixture_setup hook - fixtures can return None #2698

uSpike opened this Issue Aug 16, 2017 · 1 comment


None yet
3 participants

uSpike commented Aug 16, 2017

Hi, I was looking into implementing my own pytest_fixture_setup() and I noticed something interesting.

The hook is defined with @hookspec(firstresult=True) so, as the docstring describes it will stop at the first non-None result. However, it seems that this hook is supposed to return the return value of the fixture call, see This is interesting, because a fixture could return None even though it has run. A trivial example:

The effect of this is that if I want to override pytest_fixture_setup() and not have it run again (from the internally defined hook), then I must return a non-None value. But, this may not reflect the actual value as returned from the fixture.

Am I missing something? Is this not a big deal? I think it's strange to return True even if it is not affecting my tests.


This comment has been minimized.


RonnyPfannschmidt commented Aug 17, 2017

@uSpike thansk for coming out and making this weakness that is based on the structure of how the plug-in system works obvious

i believe we should try to document that pitfall
in terms of consistent typing this is indeed a big deal

however the general expectation for a fixture is to actually return something,
strictly speaking - fixtures are dependency injection, so a fixture that doesn't return/yield a dependency to be injected is not doing what its supposed to do

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment