Skip to content

Commit

Permalink
Merge pull request #9066 from eamanu/fix-8994
Browse files Browse the repository at this point in the history
  • Loading branch information
nicoddemus committed Oct 5, 2021
2 parents fb52fc5 + dc9192c commit 9546fb7
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 1 deletion.
2 changes: 2 additions & 0 deletions changelog/8994.improvement.rst
@@ -0,0 +1,2 @@
Included the module of the class in the error message about direct
node construction (without using ``from_parent``).
2 changes: 1 addition & 1 deletion src/_pytest/nodes.py
Expand Up @@ -123,7 +123,7 @@ def __call__(self, *k, **kw):
"See "
"https://docs.pytest.org/en/stable/deprecations.html#node-construction-changed-to-node-from-parent"
" for more details."
).format(name=self.__name__)
).format(name=f"{self.__module__}.{self.__name__}")
fail(msg, pytrace=False)

def _create(self, *k, **kw):
Expand Down
14 changes: 14 additions & 0 deletions testing/test_nodes.py
Expand Up @@ -6,6 +6,7 @@
import pytest
from _pytest import nodes
from _pytest.compat import legacy_path
from _pytest.outcomes import OutcomeException
from _pytest.pytester import Pytester
from _pytest.warning_types import PytestWarning

Expand Down Expand Up @@ -40,6 +41,19 @@ def test_node_from_parent_disallowed_arguments() -> None:
nodes.Node.from_parent(None, config=None) # type: ignore[arg-type]


def test_node_direct_construction_deprecated() -> None:
with pytest.raises(
OutcomeException,
match=(
"Direct construction of _pytest.nodes.Node has been deprecated, please "
"use _pytest.nodes.Node.from_parent.\nSee "
"https://docs.pytest.org/en/stable/deprecations.html#node-construction-changed-to-node-from-parent"
" for more details."
),
):
nodes.Node(None, session=None) # type: ignore[arg-type]


def test_subclassing_both_item_and_collector_deprecated(
request, tmp_path: Path
) -> None:
Expand Down

0 comments on commit 9546fb7

Please sign in to comment.