Adds similar test with differents paths that resolves identically

This commit is contained in:
Franck Charras 2023-12-19 14:46:46 +01:00
parent 901d3d46ba
commit 2c836fa507
1 changed files with 26 additions and 0 deletions

View File

@ -129,6 +129,32 @@ class TestPytestPluginInteractions:
conftest_lower, importmode="prepend", rootpath=pytester.path conftest_lower, importmode="prepend", rootpath=pytester.path
) )
def test_conftestpath_no_normalization(self, pytester: Pytester) -> None:
"""Non-regression test for https://github.com/pytest-dev/pytest/issues/9765
Ensures that the conftests are registered in the plugin dictionary with a key
that does not depend on the normalization of the input path.
"""
config = pytester.parseconfig()
pytester.makepyfile(**{"tests/conftest.py": ""})
conftest = pytester.path.joinpath("tests/conftest.py")
contest_similar = pytester.path.joinpath("tests/../tests/conftest.py")
mod = config.pluginmanager._importconftest(
conftest, importmode="prepend", rootpath=pytester.path
)
# Those two calls should succeed because the conftest should be registered
# independently of the normalization of conftestpath.
assert mod is config.pluginmanager._importconftest(
conftest, importmode="prepend", rootpath=pytester.path
)
assert mod is config.pluginmanager._importconftest(
contest_similar, importmode="prepend", rootpath=pytester.path
)
def test_hook_tracing(self, _config_for_test: Config) -> None: def test_hook_tracing(self, _config_for_test: Config) -> None:
pytestpm = _config_for_test.pluginmanager # fully initialized with plugins pytestpm = _config_for_test.pluginmanager # fully initialized with plugins
saveindent = [] saveindent = []