Merge pull request #5768 from robholt/fixture-class-instance

Fix self reference in function scoped fixtures
This commit is contained in:
Bruno Oliveira
2019-08-30 12:31:16 -03:00
committed by GitHub
4 changed files with 41 additions and 0 deletions

View File

@@ -900,6 +900,12 @@ def resolve_fixture_function(fixturedef, request):
# request.instance so that code working with "fixturedef" behaves
# as expected.
if request.instance is not None:
# handle the case where fixture is defined not in a test class, but some other class
# (for example a plugin class with a fixture), see #2270
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)