diff --git a/html5lib/tests/conftest.py b/html5lib/tests/conftest.py
index fffeb50c..4a97dc21 100644
--- a/html5lib/tests/conftest.py
+++ b/html5lib/tests/conftest.py
@@ -90,22 +90,22 @@ def pytest_configure(config):
pytest.exit("\n".join(msgs))
-def pytest_collect_file(path, parent):
- dir = os.path.abspath(path.dirname)
+def pytest_collect_file(file_path, parent):
+ dir = file_path.parent
dir_and_parents = set()
while dir not in dir_and_parents:
dir_and_parents.add(dir)
- dir = os.path.dirname(dir)
+ dir = dir.parent
if _tree_construction in dir_and_parents:
- if path.ext == ".dat":
- return TreeConstructionFile.from_parent(parent, fspath=path)
+ if file_path.suffix == ".dat":
+ return TreeConstructionFile.from_parent(parent, path=file_path)
elif _tokenizer in dir_and_parents:
- if path.ext == ".test":
- return TokenizerFile.from_parent(parent, fspath=path)
+ if file_path.suffix == ".test":
+ return TokenizerFile.from_parent(parent, path=file_path)
elif _sanitizer_testdata in dir_and_parents:
- if path.ext == ".dat":
- return SanitizerFile.from_parent(parent, fspath=path)
+ if file_path.suffix == ".dat":
+ return SanitizerFile.from_parent(parent, path=file_path)
# Tiny wrapper to allow .from_parent constructors on older pytest for PY27
diff --git a/requirements-test.txt b/requirements-test.txt
index aca31f5e..860f5af1 100644
--- a/requirements-test.txt
+++ b/requirements-test.txt
@@ -3,7 +3,7 @@
flake8==3.9.2 ; python_version < '3.6'
flake8>=5.0.4; python_version >= '3.6'
pytest>=4.6.10,<5 ; python_version < '3'
-pytest>=5.4.2,<8 ; python_version >= '3'
+pytest>=7,<10 ; python_version >= '3'
coverage>=5.1,<6
pytest-expect>=1.1.0,<2
mock>=3.0.5,<4 ; python_version < '3.3'