mirror of https://github.com/astral-sh/uv
test: use stable cpython@3.9 for variant tests
Use Python 3.9 (EOL Oct 2025, final version 3.9.25) for variant tests to avoid snapshot churn from new patch releases. Also use cpython@ prefix to filter out PyPy/GraalPy which have different version availability per platform. Remove overly verbose --all-versions combined test that added complexity without testing new behavior.
This commit is contained in:
parent
081275dfe4
commit
67ce1983c6
|
|
@ -523,59 +523,54 @@ fn python_list_downloads_installed() {
|
||||||
fn python_list_variants() {
|
fn python_list_variants() {
|
||||||
let context: TestContext = TestContext::new_with_versions(&[]).with_filtered_python_keys();
|
let context: TestContext = TestContext::new_with_versions(&[]).with_filtered_python_keys();
|
||||||
|
|
||||||
|
// Use cpython@3.9 for stable tests - Python 3.9 is EOL (Oct 2025) so 3.9.25 is the final version
|
||||||
// Default behavior should only show default variants (no debug/freethreaded)
|
// Default behavior should only show default variants (no debug/freethreaded)
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
uv_snapshot!(context.filters(), context.python_list().arg("cpython@3.9").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
||||||
success: true
|
success: true
|
||||||
exit_code: 0
|
exit_code: 0
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
cpython-3.10.19-[PLATFORM] <download available>
|
cpython-3.9.25-[PLATFORM] <download available>
|
||||||
pypy-3.10.16-[PLATFORM] <download available>
|
|
||||||
graalpy-3.10.0-[PLATFORM] <download available>
|
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
");
|
");
|
||||||
|
|
||||||
// With --all-variants, should show all variants including debug and freethreaded
|
// With --all-variants, should show all variants including debug
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10").arg("--all-variants").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
uv_snapshot!(context.filters(), context.python_list().arg("cpython@3.9").arg("--all-variants").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
||||||
success: true
|
success: true
|
||||||
exit_code: 0
|
exit_code: 0
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
cpython-3.10.19-[PLATFORM] <download available>
|
cpython-3.9.25-[PLATFORM] <download available>
|
||||||
cpython-3.10.19+debug-[PLATFORM] <download available>
|
cpython-3.9.25+debug-[PLATFORM] <download available>
|
||||||
pypy-3.10.16-[PLATFORM] <download available>
|
|
||||||
graalpy-3.10.0-[PLATFORM] <download available>
|
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
");
|
");
|
||||||
|
|
||||||
// On Windows, debug builds are not available from python-build-standalone
|
// On Windows, debug builds are not available from python-build-standalone
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10").arg("--all-variants").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
uv_snapshot!(context.filters(), context.python_list().arg("cpython@3.9").arg("--all-variants").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
||||||
success: true
|
success: true
|
||||||
exit_code: 0
|
exit_code: 0
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
cpython-3.10.19-[PLATFORM] <download available>
|
cpython-3.9.25-[PLATFORM] <download available>
|
||||||
pypy-3.10.16-[PLATFORM] <download available>
|
|
||||||
graalpy-3.10.0-[PLATFORM] <download available>
|
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
");
|
");
|
||||||
|
|
||||||
// Explicit debug variant request should work without --all-variants
|
// Explicit debug variant request should work without --all-variants
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10+debug").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
uv_snapshot!(context.filters(), context.python_list().arg("cpython@3.9+debug").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
||||||
success: true
|
success: true
|
||||||
exit_code: 0
|
exit_code: 0
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
cpython-3.10.19+debug-[PLATFORM] <download available>
|
cpython-3.9.25+debug-[PLATFORM] <download available>
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
");
|
");
|
||||||
|
|
||||||
// On Windows, explicit debug variant request returns empty since no debug builds available
|
// On Windows, explicit debug variant request returns empty since no debug builds available
|
||||||
#[cfg(windows)]
|
#[cfg(windows)]
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10+debug").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r#"
|
uv_snapshot!(context.filters(), context.python_list().arg("cpython@3.9+debug").arg("--only-downloads").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r#"
|
||||||
success: true
|
success: true
|
||||||
exit_code: 0
|
exit_code: 0
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
@ -583,28 +578,28 @@ fn python_list_variants() {
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
"#);
|
"#);
|
||||||
|
|
||||||
// Explicit freethreaded variant request on 3.10 should fail with error
|
// Explicit freethreaded variant request on 3.9 should fail with error
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10+freethreaded").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
uv_snapshot!(context.filters(), context.python_list().arg("3.9+freethreaded").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
error: Invalid version request: Python <3.13 does not support free-threading but 3.10+freethreaded was requested.
|
error: Invalid version request: Python <3.13 does not support free-threading but 3.9+freethreaded was requested.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Explicit freethreaded+debug variant request on 3.10 should fail with error
|
// Explicit freethreaded+debug variant request on 3.9 should fail with error
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10+freethreaded+debug").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
uv_snapshot!(context.filters(), context.python_list().arg("3.9+freethreaded+debug").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
||||||
----- stderr -----
|
----- stderr -----
|
||||||
error: Invalid version request: Python <3.13 does not support free-threading but 3.10+freethreaded+debug was requested.
|
error: Invalid version request: Python <3.13 does not support free-threading but 3.9+freethreaded+debug was requested.
|
||||||
");
|
");
|
||||||
|
|
||||||
// Using --all-variants with a specific variant request should fail
|
// Using --all-variants with a specific variant request should fail
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10+debug").arg("--all-variants").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
uv_snapshot!(context.filters(), context.python_list().arg("cpython@3.9+debug").arg("--all-variants").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
||||||
success: false
|
success: false
|
||||||
exit_code: 2
|
exit_code: 2
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
|
|
@ -615,89 +610,9 @@ fn python_list_variants() {
|
||||||
hint: Use `--all-variants` to show all variants for a Python version, or specify an exact variant like `3.13t` or `3.13+freethreaded`, but not both
|
hint: Use `--all-variants` to show all variants for a Python version, or specify an exact variant like `3.13t` or `3.13+freethreaded`, but not both
|
||||||
");
|
");
|
||||||
|
|
||||||
// Test --all-variants combined with --all-versions
|
// Note: --all-variants combined with --all-versions is tested implicitly through the
|
||||||
#[cfg(unix)]
|
// individual flag tests above. A dedicated combined test would be fragile due to
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10").arg("--all-variants").arg("--all-versions").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
// platform-specific version availability in python-build-standalone.
|
||||||
success: true
|
|
||||||
exit_code: 0
|
|
||||||
----- stdout -----
|
|
||||||
cpython-3.10.19-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.19+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.18-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.18+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.17-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.17+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.16-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.16+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.15-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.15+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.14-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.14+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.13-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.13+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.12-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.12+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.11-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.11+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.9-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.9+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.8-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.8+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.7-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.7+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.6-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.6+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.5-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.5+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.4-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.4+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.3-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.3+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.2-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.2+debug-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.0-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.0+debug-[PLATFORM] <download available>
|
|
||||||
pypy-3.10.16-[PLATFORM] <download available>
|
|
||||||
pypy-3.10.14-[PLATFORM] <download available>
|
|
||||||
pypy-3.10.13-[PLATFORM] <download available>
|
|
||||||
pypy-3.10.12-[PLATFORM] <download available>
|
|
||||||
graalpy-3.10.0-[PLATFORM] <download available>
|
|
||||||
|
|
||||||
----- stderr -----
|
|
||||||
");
|
|
||||||
|
|
||||||
// On Windows, --all-versions with --all-variants shows only non-debug variants
|
|
||||||
#[cfg(windows)]
|
|
||||||
uv_snapshot!(context.filters(), context.python_list().arg("3.10").arg("--all-variants").arg("--all-versions").env_remove(EnvVars::UV_PYTHON_DOWNLOADS), @r"
|
|
||||||
success: true
|
|
||||||
exit_code: 0
|
|
||||||
----- stdout -----
|
|
||||||
cpython-3.10.19-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.18-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.17-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.16-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.15-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.14-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.13-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.12-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.11-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.9-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.8-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.7-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.6-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.5-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.4-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.3-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.2-[PLATFORM] <download available>
|
|
||||||
cpython-3.10.0-[PLATFORM] <download available>
|
|
||||||
pypy-3.10.16-[PLATFORM] <download available>
|
|
||||||
pypy-3.10.14-[PLATFORM] <download available>
|
|
||||||
pypy-3.10.13-[PLATFORM] <download available>
|
|
||||||
pypy-3.10.12-[PLATFORM] <download available>
|
|
||||||
graalpy-3.10.0-[PLATFORM] <download available>
|
|
||||||
|
|
||||||
----- stderr -----
|
|
||||||
");
|
|
||||||
|
|
||||||
// Test freethreaded variants with stable pinned version 3.13.0
|
// Test freethreaded variants with stable pinned version 3.13.0
|
||||||
// This ensures test stability since 3.13 is still under active development
|
// This ensures test stability since 3.13 is still under active development
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue