Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ test = [
"pytest-asyncio>=0.23",
"playwright>=1.40", # E2E browser automation against http://127.0.0.1:<port> (Backend §4.10.3)
"pytest-cov>=4.1", # Coverage reporting; configured under [tool.coverage.run]
"pytest-rerunfailures>=14", # Opt-in retries for timing-sensitive flakes (@pytest.mark.flaky)
# httpx is already in core deps -- used for AsyncClient(app=app) in integration tests too
]

Expand Down
5 changes: 5 additions & 0 deletions tests/integration/controller/test_creation_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -492,6 +492,11 @@ def get_record(self, name: str) -> PluginRecord | None:
# ---------------------------------------------------------------------------


# Timing-sensitive: this test races the creation pipeline against a mid-flight
# cancel (it polls with ``asyncio.sleep`` and branches on whether the dir landed
# first). Under load the race can occasionally lose; retry rather than fail the
# suite on a transient timing miss.
@pytest.mark.flaky(reruns=3, reruns_delay=0.5)
async def test_cancel_with_discard_files_removes_partial_dir(tmp_path: Path) -> None:
"""A cancel with ``discard_files=True`` deletes the partial directory."""
local_root = tmp_path / "data"
Expand Down
16 changes: 16 additions & 0 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading