From ad13b829cfc6d2facc574b28feaedb4936c40ab1 Mon Sep 17 00:00:00 2001 From: Kevin Deldycke Date: Wed, 19 Nov 2025 10:10:31 +0400 Subject: [PATCH 1/3] Randomize tests and run them in parrallel Help detection of leaks and flaky tests --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 39f6b2ea4..9310dc1af 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,6 +50,8 @@ pre-commit = [ ] tests = [ "pytest", + "pytest-randomly", + "pytest-xdist", ] typing = [ "mypy", From c326bb28b52eedde6b4f5b26016c6211223b7f89 Mon Sep 17 00:00:00 2001 From: Kevin Deldycke Date: Wed, 19 Nov 2025 10:14:40 +0400 Subject: [PATCH 2/3] Update lock file --- uv.lock | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/uv.lock b/uv.lock index df3befb46..69e559220 100644 --- a/uv.lock +++ b/uv.lock @@ -200,6 +200,8 @@ pre-commit = [ ] tests = [ { name = "pytest" }, + { name = "pytest-randomly" }, + { name = "pytest-xdist" }, ] typing = [ { name = "mypy" }, @@ -229,7 +231,11 @@ pre-commit = [ { name = "pre-commit" }, { name = "pre-commit-uv" }, ] -tests = [{ name = "pytest" }] +tests = [ + { name = "pytest" }, + { name = "pytest-randomly" }, + { name = "pytest-xdist" }, +] typing = [ { name = "mypy" }, { name = "pyright" }, @@ -275,6 +281,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/36/f4/c6e662dade71f56cd2f3735141b265c3c79293c109549c1e6933b0651ffc/exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10", size = 16674, upload-time = "2025-05-10T17:42:49.33Z" }, ] +[[package]] +name = "execnet" +version = "2.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/89/780e11f9588d9e7128a3f87788354c7946a9cbb1401ad38a48c4db9a4f07/execnet-2.1.2.tar.gz", hash = "sha256:63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd", size = 166622, upload-time = "2025-11-12T09:56:37.75Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec", size = 40708, upload-time = "2025-11-12T09:56:36.333Z" }, +] + [[package]] name = "filelock" version = "3.20.0" @@ -714,6 +729,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/8b/6300fb80f858cda1c51ffa17075df5d846757081d11ab4aa35cef9e6258b/pytest-9.0.1-py3-none-any.whl", hash = "sha256:67be0030d194df2dfa7b556f2e56fb3c3315bd5c8822c6951162b92b32ce7dad", size = 373668, upload-time = "2025-11-12T13:05:07.379Z" }, ] +[[package]] +name = "pytest-randomly" +version = "4.0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c4/1d/258a4bf1109258c00c35043f40433be5c16647387b6e7cd5582d638c116b/pytest_randomly-4.0.1.tar.gz", hash = "sha256:174e57bb12ac2c26f3578188490bd333f0e80620c3f47340158a86eca0593cd8", size = 14130, upload-time = "2025-09-12T15:23:00.085Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/3e/a4a9227807b56869790aad3e24472a554b585974fe7e551ea350f50897ae/pytest_randomly-4.0.1-py3-none-any.whl", hash = "sha256:e0dfad2fd4f35e07beff1e47c17fbafcf98f9bf4531fd369d9260e2f858bfcb7", size = 8304, upload-time = "2025-09-12T15:22:58.946Z" }, +] + +[[package]] +name = "pytest-xdist" +version = "3.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "execnet" }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/b4/439b179d1ff526791eb921115fca8e44e596a13efeda518b9d845a619450/pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1", size = 88069, upload-time = "2025-07-01T13:30:59.346Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" }, +] + [[package]] name = "pyyaml" version = "6.0.3" From 2f81d8e753f7feedfe9d310a0aa18775041b7e08 Mon Sep 17 00:00:00 2001 From: Kevin Deldycke Date: Wed, 19 Nov 2025 10:22:42 +0400 Subject: [PATCH 3/3] Use all available CPU cores --- pyproject.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 9310dc1af..87b6f654e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -85,6 +85,9 @@ testpaths = ["tests"] filterwarnings = [ "error", ] +addopts = [ + "--numprocesses=auto", +] [tool.coverage.run] branch = true