Fix self reference in function scoped fixtures

This commit is contained in:
Robert Holt
2019-08-19 15:57:39 -04:00
parent 307652202c
commit 62381125e7
4 changed files with 35 additions and 0 deletions

View File

@@ -897,6 +897,10 @@ def resolve_fixture_function(fixturedef, request):
# request.instance so that code working with "fixturedef" behaves
# as expected.
if request.instance is not None:
if hasattr(fixturefunc, "__self__") and not isinstance(
request.instance, fixturefunc.__self__.__class__
):
return fixturefunc
fixturefunc = getimfunc(fixturedef.func)
if fixturefunc != fixturedef.func:
fixturefunc = fixturefunc.__get__(request.instance)