Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions pytest_factoryboy/compat.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from collections.abc import Sequence
from importlib.metadata import version
from typing import Any

from _pytest.fixtures import FixtureDef, FixtureManager
from _pytest.nodes import Node
Expand All @@ -18,10 +19,14 @@

if pytest_version.release >= (8, 1):

def getfixturedefs(fixturemanager: FixtureManager, fixturename: str, node: Node) -> Sequence[FixtureDef] | None:
def getfixturedefs(
fixturemanager: FixtureManager, fixturename: str, node: Node
) -> Sequence[FixtureDef[Any]] | None:
return fixturemanager.getfixturedefs(fixturename, node)

else:

def getfixturedefs(fixturemanager: FixtureManager, fixturename: str, node: Node) -> Sequence[FixtureDef] | None:
return fixturemanager.getfixturedefs(fixturename, node.nodeid)
def getfixturedefs(
fixturemanager: FixtureManager, fixturename: str, node: Node
) -> Sequence[FixtureDef[Any]] | None:
return fixturemanager.getfixturedefs(fixturename, node.nodeid) # type: ignore[arg-type]
6 changes: 2 additions & 4 deletions pytest_factoryboy/plugin.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ def get_deps(self, request: SubRequest, fixture: str, deps: set[str] | None = No
if fixture == "request":
return deps

fixturedefs = getfixturedefs(request._fixturemanager, fixture, request._pyfuncitem.parent)
fixturedefs = getfixturedefs(request._fixturemanager, fixture, request._pyfuncitem)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is different, does it actually still work?

for fixturedef in fixturedefs or []:
for argname in fixturedef.argnames:
if argname not in deps:
Expand Down Expand Up @@ -114,9 +114,7 @@ def factoryboy_request() -> Request:
return Request()


# type ignored because pluggy v1.0.0 has no type annotations:
# https://github.com/pytest-dev/pluggy/issues/191
@pytest.hookimpl(tryfirst=True) # type: ignore[misc]
@pytest.hookimpl(tryfirst=True)
def pytest_runtest_call(item: Item) -> None:
"""Before the test item is called."""
# TODO: We should instead do an `if isinstance(item, Function)`.
Expand Down