From 462c01502bd84f3e991e52865011179afd9e420f Mon Sep 17 00:00:00 2001 From: Jackson Severino da Rocha Date: Tue, 15 Sep 2026 12:56:09 -0300 Subject: [PATCH] Expose FixtureFunctionDefinition in public API --- changelog/14853.feature.rst | 1 + src/pytest/__init__.py | 2 ++ testing/python/fixtures.py | 10 ++++++++++ 3 files changed, 13 insertions(+) create mode 100644 changelog/14853.feature.rst diff --git a/changelog/14853.feature.rst b/changelog/14853.feature.rst new file mode 100644 index 00000000000..2dd0fe7e7ee --- /dev/null +++ b/changelog/14853.feature.rst @@ -0,0 +1 @@ +Exposed ``FixtureFunctionDefinition`` as ``pytest.FixtureFunctionDefinition``. diff --git a/src/pytest/__init__.py b/src/pytest/__init__.py index f6ea24f95a1..fac1608ffd7 100644 --- a/src/pytest/__init__.py +++ b/src/pytest/__init__.py @@ -26,6 +26,7 @@ from _pytest.doctest import DoctestItem from _pytest.fixtures import fixture from _pytest.fixtures import FixtureDef +from _pytest.fixtures import FixtureFunctionDefinition from _pytest.fixtures import FixtureLookupError from _pytest.fixtures import FixtureRequest from _pytest.fixtures import register_fixture @@ -115,6 +116,7 @@ "ExitCode", "File", "FixtureDef", + "FixtureFunctionDefinition", "FixtureLookupError", "FixtureRequest", "Function", diff --git a/testing/python/fixtures.py b/testing/python/fixtures.py index 8e779a93d76..6092dc8d6f7 100644 --- a/testing/python/fixtures.py +++ b/testing/python/fixtures.py @@ -1869,6 +1869,16 @@ def test_fixture_has_same_doc(): result = pytester.runpytest() result.assert_outcomes(passed=1) + def test_fixture_function_definition_public_api(self) -> None: + """FixtureFunctionDefinition is accessible as pytest.FixtureFunctionDefinition.""" + assert "FixtureFunctionDefinition" in pytest.__all__ + + @pytest.fixture + def fixture_func() -> None: + pass + + assert isinstance(fixture_func, pytest.FixtureFunctionDefinition) + class TestFixtureManagerParseFactories: @pytest.fixture