fixtures: only call `instance` property once in function
No need to compute the property multiple times.
This commit is contained in:
parent
006058f1f9
commit
774f0c44e6
|
@ -1101,17 +1101,18 @@ def resolve_fixture_function(
|
||||||
# The fixture function needs to be bound to the actual
|
# The fixture function needs to be bound to the actual
|
||||||
# request.instance so that code working with "fixturedef" behaves
|
# request.instance so that code working with "fixturedef" behaves
|
||||||
# as expected.
|
# as expected.
|
||||||
if request.instance is not None:
|
instance = request.instance
|
||||||
|
if instance is not None:
|
||||||
# Handle the case where fixture is defined not in a test class, but some other class
|
# 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.
|
# (for example a plugin class with a fixture), see #2270.
|
||||||
if hasattr(fixturefunc, "__self__") and not isinstance(
|
if hasattr(fixturefunc, "__self__") and not isinstance(
|
||||||
request.instance,
|
instance,
|
||||||
fixturefunc.__self__.__class__, # type: ignore[union-attr]
|
fixturefunc.__self__.__class__, # type: ignore[union-attr]
|
||||||
):
|
):
|
||||||
return fixturefunc
|
return fixturefunc
|
||||||
fixturefunc = getimfunc(fixturedef.func)
|
fixturefunc = getimfunc(fixturedef.func)
|
||||||
if fixturefunc != fixturedef.func:
|
if fixturefunc != fixturedef.func:
|
||||||
fixturefunc = fixturefunc.__get__(request.instance) # type: ignore[union-attr]
|
fixturefunc = fixturefunc.__get__(instance) # type: ignore[union-attr]
|
||||||
return fixturefunc
|
return fixturefunc
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue