Skip to content

chore: add pytest-timeout and refresh uv.lock - #6

Merged
hectorvent merged 1 commit into
mainfrom
chore/pytest-timeout
Oct 7, 2026
Merged

hectorvent merged 1 commit into
mainfrom
chore/pytest-timeout

Conversation

@hectorvent

@hectorvent hectorvent commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

What

  • Adds pytest-timeout>=2.3 to the dev extra.
  • Refreshes testcontainers in uv.lock (4.14.2 to 4.15.0 on Python 3.10+).

Why

  1. The CI "Integration tests" job runs pytest -m integration -v --timeout=120, but pytest-timeout was never installed, so pytest stops with unrecognized arguments: --timeout=120 before collecting anything (for example run 37538885916 on docs: standardize README and community files #5). The integration suite has not actually run in CI on recent main builds. Keeping the flag is deliberate: a hung container start should fail the job instead of stalling until the runner timeout.
  2. The documented contributor setup (uv sync --extra dev, then uv run mypy floci) failed the type check: the lock pinned testcontainers 4.14.2, which mypy treats as untyped, so FlociContainer(DockerContainer) failed under strict = true. CI installs with pip, resolves 4.15.0 and passes, so CI and the uv environment disagreed. The lock now matches what CI resolves.

Area

Dev dependencies and lockfile only; no library code changes, so chore: (no release).

uv.lock package changes: pytest-timeout 2.4.0 added; testcontainers 4.14.2 to 4.15.0 for Python 3.10+ (the Python 3.9 forks keep their pins). The rest of the diff is the newer uv writing lockfile revision 5 (was 3), which drops redundant per-dependency markers.

Tests

  • pytest -m integration -v --timeout=120 collects and passes the integration tests (4 passed, 5 deselected) on Linux, Python 3.11, and in this PR's CI.
  • In the refreshed uv environment (Python 3.13): uv run ruff check ., uv run mypy floci (no issues) and the unit tests (5 passed).
  • mypy 2.x still prints a notice that [tool.mypy] python_version = "3.9" is unsupported. It does not fail the check; whether to raise that target while 3.9 is a supported runtime is left for a separate decision.

Note: the "Lint & type-check" job will still fail here until #5 merges. ruff format --check fails on main because ruff 0.16 formats README code blocks, which #5 fixes.

Refs

Found while reviewing CI on #5.

@greptile-apps

greptile-apps Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[High risk] Dependency and lockfile refresh with new test tool.

This PR appears safe to merge; no actionable new defects were found.

What we checked:

  • CI gets the timeout plugin: The integration job installs the dev extra. That extra now includes pytest-timeout.
  • Python 3.9 keeps its pins: The root dependency guards keep both Python 3.9 versions. They select 4.15.0 only on Python 3.10 and newer.
Summary

Adds pytest-timeout to the dev extra so CI can use its existing --timeout=120 option. Refreshes uv.lock to select testcontainers 4.15.0 on Python 3.10 and newer.

  • Keeps the existing Python 3.9 dependency branches.
  • No actionable new issues found.
  • The requested greptile_confidence label could not be added because GitHub authentication was unavailable.

Reviews (4) · Last reviewed commit: "chore: add pytest-timeout and refresh uv..." · Reviewed by Greptile

@hectorvent
hectorvent force-pushed the chore/pytest-timeout branch from 1717466 to b7f2578 Compare October 6, 2026 22:31
@hectorvent hectorvent changed the title chore: add pytest-timeout to the dev extra chore: add pytest-timeout and refresh uv.lock Oct 6, 2026
@hectorvent
hectorvent force-pushed the chore/pytest-timeout branch from b7f2578 to 4400644 Compare October 7, 2026 01:53
The CI integration job runs pytest -m integration --timeout=120, but
pytest-timeout was never a dependency, so pytest exited with
"unrecognized arguments: --timeout=120" before collecting a test. The
integration suite has not actually run in CI on any recent main build.

uv.lock also pinned testcontainers 4.14.2, which mypy treats as untyped,
so `uv sync --extra dev && uv run mypy floci` failed under strict mode
while CI (pip, testcontainers 4.15.0) passed. The lock now resolves
testcontainers 4.15.0 on Python 3.10 and later, matching CI.

Lockfile changes: pytest-timeout 2.4.0 added, testcontainers 4.14.2 to
4.15.0 (Python 3.10+). Everything else is the newer uv lockfile revision
(3 to 5) dropping redundant markers; no other version changes.

Signed-off-by: Hector Ventura <hectorvent@gmail.com>
@hectorvent
hectorvent force-pushed the chore/pytest-timeout branch from 4400644 to ebfad96 Compare October 7, 2026 01:57
@hectorvent
hectorvent merged commit 3b4877b into main Oct 7, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant