mirror of
https://github.com/PrefectHQ/fastmcp.git
synced 2026-08-09 15:19:10 +02:00
56 lines
1.9 KiB
YAML
56 lines
1.9 KiB
YAML
name: "Run Pytest"
|
|
description: "Run pytest with appropriate flags for the test type and platform"
|
|
|
|
inputs:
|
|
test-type:
|
|
description: "Type of tests to run: unit, integration, client_process, or conformance"
|
|
required: false
|
|
default: "unit"
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- name: Run pytest
|
|
shell: bash
|
|
run: |
|
|
if [ "${{ inputs.test-type }}" == "integration" ]; then
|
|
MARKER="integration"
|
|
TIMEOUT="30"
|
|
MAX_PROCS="2"
|
|
EXTRA_FLAGS=""
|
|
elif [ "${{ inputs.test-type }}" == "client_process" ]; then
|
|
MARKER="client_process or subprocess_heavy"
|
|
TIMEOUT="5"
|
|
MAX_PROCS="0"
|
|
EXTRA_FLAGS="-x"
|
|
elif [ "${{ inputs.test-type }}" == "conformance" ]; then
|
|
MARKER="conformance"
|
|
TIMEOUT="120"
|
|
MAX_PROCS="0"
|
|
EXTRA_FLAGS="-x"
|
|
else
|
|
MARKER="not integration and not client_process and not subprocess_heavy and not conformance"
|
|
TIMEOUT="5"
|
|
MAX_PROCS="4"
|
|
EXTRA_FLAGS=""
|
|
fi
|
|
|
|
# Windows previously ran serially: parallel workers crashed intermittently
|
|
# when many tests spawned stdio subprocesses (#2715, reverted in #2726).
|
|
# Most of those tests now run in-memory, but tests that spawn a fresh
|
|
# interpreter importing all of FastMCP still crash xdist workers on the
|
|
# 2-core Windows runners. They carry the subprocess_heavy marker and run
|
|
# in the serial client_process step instead.
|
|
PARALLEL_FLAGS=""
|
|
if [ "$MAX_PROCS" != "0" ]; then
|
|
PARALLEL_FLAGS="--numprocesses auto --maxprocesses $MAX_PROCS --dist worksteal"
|
|
fi
|
|
|
|
uv run --no-sync pytest \
|
|
--inline-snapshot=disable \
|
|
--timeout=$TIMEOUT \
|
|
--durations=50 \
|
|
-m "$MARKER" \
|
|
$PARALLEL_FLAGS \
|
|
$EXTRA_FLAGS \
|
|
tests
|