mirror of https://github.com/astral-sh/uv
Add test case for multiple indexes on the same realm (#11080)
A test case for https://github.com/astral-sh/uv/pull/11074 (and related issues)
This commit is contained in:
parent
a3049ecf69
commit
ae76a4b7f5
|
|
@ -8305,6 +8305,56 @@ fn lock_env_credentials() -> Result<()> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Test solving for packages that are pinned to separate indexes in the same realm.
|
||||||
|
/// This requires the credentials to be cached at the URL-level instead of the realm-level, or
|
||||||
|
/// credentials for one index will be used for both indexes and the request will fail.
|
||||||
|
#[test]
|
||||||
|
fn lock_multiple_indexes_same_realm_different_credentials() -> Result<()> {
|
||||||
|
let context = TestContext::new("3.12");
|
||||||
|
|
||||||
|
let pyproject_toml = context.temp_dir.child("pyproject.toml");
|
||||||
|
pyproject_toml.write_str(
|
||||||
|
r#"
|
||||||
|
[project]
|
||||||
|
name = "foo"
|
||||||
|
version = "0.1.0"
|
||||||
|
requires-python = ">=3.12"
|
||||||
|
dependencies = ["iniconfig", "anyio"]
|
||||||
|
|
||||||
|
[tool.uv.sources]
|
||||||
|
iniconfig = { index = "internal-proxy-heron" }
|
||||||
|
anyio = { index = "internal-proxy-eagle" }
|
||||||
|
|
||||||
|
[[tool.uv.index]]
|
||||||
|
name = "internal-proxy-heron"
|
||||||
|
url = "https://pypi-proxy.fly.dev/basic-auth-heron/simple"
|
||||||
|
|
||||||
|
[[tool.uv.index]]
|
||||||
|
name = "internal-proxy-eagle"
|
||||||
|
url = "https://pypi-proxy.fly.dev/basic-auth-eagle/simple"
|
||||||
|
"#,
|
||||||
|
)?;
|
||||||
|
|
||||||
|
// Provide credentials via environment variables.
|
||||||
|
uv_snapshot!(context.filters(), context.lock()
|
||||||
|
.env(EnvVars::index_username("INTERNAL_PROXY_HERON"), "public")
|
||||||
|
.env(EnvVars::index_password("INTERNAL_PROXY_HERON"), "heron")
|
||||||
|
.env(EnvVars::index_username("INTERNAL_PROXY_EAGLE"), "public")
|
||||||
|
.env(EnvVars::index_password("INTERNAL_PROXY_EAGLE"), "eagle"), @r###"
|
||||||
|
success: false
|
||||||
|
exit_code: 2
|
||||||
|
----- stdout -----
|
||||||
|
|
||||||
|
----- stderr -----
|
||||||
|
warning: Missing version constraint (e.g., a lower bound) for `iniconfig`
|
||||||
|
warning: Missing version constraint (e.g., a lower bound) for `anyio`
|
||||||
|
error: Failed to fetch: `https://pypi-proxy.fly.dev/basic-auth-heron/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl.metadata`
|
||||||
|
Caused by: HTTP status client error (401 Unauthorized) for url (https://pypi-proxy.fly.dev/basic-auth-heron/files/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl.metadata)
|
||||||
|
"###);
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
/// Resolve against an index that uses relative links.
|
/// Resolve against an index that uses relative links.
|
||||||
#[test]
|
#[test]
|
||||||
fn lock_relative_index() -> Result<()> {
|
fn lock_relative_index() -> Result<()> {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue