diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5aa3b4502..f2c51c122 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -48,7 +48,6 @@ jobs: poetry install - name: Run simulation_params tests - run: poetry run pytest -rA tests/simulation -vv - + run: poetry run pytest -n logical -rA tests/simulation -vv - name: Run flow360_params tests - run: poetry run pytest -rA --ignore tests/simulation -vv + run: poetry run pytest -n logical -rA --ignore tests/simulation -vv diff --git a/poetry.lock b/poetry.lock index 4858abdf0..de1e596d3 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.2.1 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. [[package]] name = "accessible-pygments" @@ -1421,6 +1421,21 @@ typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} [package.extras] test = ["pytest (>=6)"] +[[package]] +name = "execnet" +version = "2.1.1" +description = "execnet: rapid multi-Python deployment" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc"}, + {file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"}, +] + +[package.extras] +testing = ["hatch", "pre-commit", "pytest", "tox"] + [[package]] name = "executing" version = "2.2.0" @@ -4532,6 +4547,28 @@ pytest = ">=6.2.5" [package.extras] dev = ["pre-commit", "pytest-asyncio", "tox"] +[[package]] +name = "pytest-xdist" +version = "3.6.1" +description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"}, + {file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"}, +] + +[package.dependencies] +execnet = ">=2.1" +psutil = {version = ">=3.0", optional = true, markers = "extra == \"psutil\""} +pytest = ">=7.0.0" + +[package.extras] +psutil = ["psutil (>=3.0)"] +setproctitle = ["setproctitle"] +testing = ["filelock"] + [[package]] name = "python-dateutil" version = "2.9.0.post0" @@ -6441,4 +6478,4 @@ docs = ["autodoc_pydantic", "cairosvg", "ipython", "jinja2", "jupyter", "myst-pa [metadata] lock-version = "2.1" python-versions = ">=3.9,<3.13" -content-hash = "61f8de578809c08cf788c95b63b78ae66d760c6eb911f730fb981dddb478959c" +content-hash = "386cbf5927b74abdc30f829f3cd5bf2276d6ff0b2ccf5aaf1583f290e9a2c95d" diff --git a/pyproject.toml b/pyproject.toml index 98a5903e0..66b97223f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,6 +63,7 @@ numexpr = "^2.10.1" sphinxcontrib-mermaid = {version="*", optional = true} pylatex = "^1.4.2" prettyprinttree = "^2.0.1" +pytest-xdist = {extras = ["psutil"], version = "^3.6.1"} [tool.poetry.group.dev.dependencies] diff --git a/tests/simulation/params/test_automated_farfield.py b/tests/simulation/params/test_automated_farfield.py index 8bf035371..81e11460b 100644 --- a/tests/simulation/params/test_automated_farfield.py +++ b/tests/simulation/params/test_automated_farfield.py @@ -29,6 +29,7 @@ UserDefinedField, ) from flow360.component.simulation.primitives import Surface +from flow360.component.simulation.services import clear_context from flow360.component.simulation.simulation_params import SimulationParams from flow360.component.simulation.unit_system import SI_unit_system from flow360.component.surface_mesh_v2 import SurfaceMeshMetaV2, SurfaceMeshV2 @@ -39,6 +40,11 @@ def change_test_dir(request, monkeypatch): monkeypatch.chdir(request.fspath.dirname) +@pytest.fixture(autouse=True) +def reset_context(): + clear_context() + + def test_automated_farfield_surface_usage(): # Test use of GhostSurface in meshing with pytest.raises( diff --git a/tests/v1/test_examples.py b/tests/v1/test_examples.py index 6082e35fe..857107863 100644 --- a/tests/v1/test_examples.py +++ b/tests/v1/test_examples.py @@ -33,8 +33,8 @@ def test_om6_release_22_3_3_0_example(): def test_cylinder_example(): Cylinder2D.get_files() assert os.path.exists(Cylinder2D.case_json) - assert os.path.exists(OM6wing.mesh_json) - assert os.path.exists(OM6wing.mesh_filename) + assert os.path.exists(Cylinder2D.mesh_json) + assert os.path.exists(Cylinder2D.mesh_filename) def test_airplane_example():