Move test support files out of `scripts/` into `test/`

(#17032)

It's been bothering me that we have a bunch of stub packages and such in
a `scripts` directory.
This commit is contained in:
Zanie Blue 2025-12-09 10:06:05 -06:00 committed by GitHub
parent 9774f8f1d4
commit a70ee58ae1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
230 changed files with 440 additions and 464 deletions

View File

@ -2064,22 +2064,22 @@ jobs:
# Test the main path (`build_wheel`) through pip
./uv venv -v --seed
./uv run --no-project python -m pip install -v scripts/packages/built-by-uv --find-links crates/uv-build/dist --no-index --no-deps
./uv run --no-project python -m pip install -v test/packages/built-by-uv --find-links crates/uv-build/dist --no-index --no-deps
./uv run --no-project python -c "from built_by_uv import greet; print(greet())"
# Test both `build_wheel` and `build_sdist` through uv
./uv venv -c -v
./uv build -v --force-pep517 scripts/packages/built-by-uv --find-links crates/uv-build/dist --offline
./uv pip install -v scripts/packages/built-by-uv/dist/*.tar.gz --find-links crates/uv-build/dist --offline --no-deps
./uv build -v --force-pep517 test/packages/built-by-uv --find-links crates/uv-build/dist --offline
./uv pip install -v test/packages/built-by-uv/dist/*.tar.gz --find-links crates/uv-build/dist --offline --no-deps
./uv run --no-project python -c "from built_by_uv import greet; print(greet())"
# Test both `build_wheel` and `build_sdist` through the official `build`
rm -rf scripts/packages/built-by-uv/dist/
rm -rf test/packages/built-by-uv/dist/
./uv venv -c -v
./uv pip install build
# Add the uv binary to PATH for `build` to find
PATH="$(pwd):$PATH" UV_OFFLINE=1 UV_FIND_LINKS=crates/uv-build/dist ./uv run --no-project python -m build -v --installer uv scripts/packages/built-by-uv
./uv pip install -v scripts/packages/built-by-uv/dist/*.tar.gz --find-links crates/uv-build/dist --offline --no-deps
PATH="$(pwd):$PATH" UV_OFFLINE=1 UV_FIND_LINKS=crates/uv-build/dist ./uv run --no-project python -m build -v --installer uv test/packages/built-by-uv
./uv pip install -v test/packages/built-by-uv/dist/*.tar.gz --find-links crates/uv-build/dist --offline --no-deps
./uv run --no-project python -c "from built_by_uv import greet; print(greet())"
cache-test-ubuntu:
@ -2943,8 +2943,8 @@ jobs:
sudo apt-get update
sudo apt-get install -y libsasl2-dev libldap2-dev libkrb5-dev
cargo run --bin uv -- venv --cache-dir .cache
cargo run --bin uv -- pip compile scripts/requirements/jupyter.in --universal --exclude-newer 2024-08-08 --cache-dir .cache
cargo run --bin uv -- pip compile scripts/requirements/airflow.in --universal --exclude-newer 2024-08-08 --cache-dir .cache
cargo run --bin uv -- pip compile test/requirements/jupyter.in --universal --exclude-newer 2024-08-08 --cache-dir .cache
cargo run --bin uv -- pip compile test/requirements/airflow.in --universal --exclude-newer 2024-08-08 --cache-dir .cache
- name: "Build benchmarks"
run: cargo codspeed build --profile profiling -p uv-bench
@ -2983,8 +2983,8 @@ jobs:
sudo apt-get update
sudo apt-get install -y libsasl2-dev libldap2-dev libkrb5-dev
cargo run --bin uv -- venv --cache-dir .cache
cargo run --bin uv -- pip compile scripts/requirements/jupyter.in --universal --exclude-newer 2024-08-08 --cache-dir .cache
cargo run --bin uv -- pip compile scripts/requirements/airflow.in --universal --exclude-newer 2024-08-08 --cache-dir .cache
cargo run --bin uv -- pip compile test/requirements/jupyter.in --universal --exclude-newer 2024-08-08 --cache-dir .cache
cargo run --bin uv -- pip compile test/requirements/airflow.in --universal --exclude-newer 2024-08-08 --cache-dir .cache
- name: "Build benchmarks"
run: cargo codspeed build --profile profiling -p uv-bench

View File

@ -4,5 +4,5 @@ PREVIEW-CHANGELOG.md
docs/reference/cli.md
docs/reference/settings.md
docs/reference/environment.md
ecosystem/home-assistant-core/LICENSE.md
test/ecosystem/home-assistant-core/LICENSE.md
docs/guides/integration/gitlab.md

View File

@ -127,7 +127,7 @@ Please refer to Ruff's
it applies to uv, too.
We provide diverse sets of requirements for testing and benchmarking the resolver in
`scripts/requirements` and for the installer in `scripts/requirements/compiled`.
`test/requirements` and for the installer in `test/requirements/compiled`.
You can use `scripts/benchmark` to benchmark predefined workloads between uv versions and with other
tools, e.g., from the `scripts/benchmark` directory:
@ -138,7 +138,7 @@ uv run resolver \
--poetry \
--benchmark \
resolve-cold \
../scripts/requirements/trio.in
../test/requirements/trio.in
```
### Analyzing concurrency
@ -148,7 +148,7 @@ visualize parallel requests and find any spots where uv is CPU-bound. Example us
`uv-dev` respectively:
```shell
RUST_LOG=uv=info TRACING_DURATIONS_FILE=target/traces/jupyter.ndjson cargo run --features tracing-durations-export --profile profiling -- pip compile scripts/requirements/jupyter.in
RUST_LOG=uv=info TRACING_DURATIONS_FILE=target/traces/jupyter.ndjson cargo run --features tracing-durations-export --profile profiling -- pip compile test/requirements/jupyter.in
```
```shell

View File

@ -1,8 +1,8 @@
[files]
extend-exclude = [
"**/snapshots/",
"ecosystem/**",
"scripts/**/*.in",
"test/ecosystem/**",
"test/requirements/**/*.in",
"crates/uv-build-frontend/src/pipreqs/mapping",
]
ignore-hidden = false

View File

@ -599,7 +599,7 @@ mod tests {
/// platform-independent deterministic builds.
#[test]
fn built_by_uv_building() {
let built_by_uv = Path::new("../../scripts/packages/built-by-uv");
let built_by_uv = Path::new("../../test/packages/built-by-uv");
let src = TempDir::new().unwrap();
for dir in [
"src",

View File

@ -840,7 +840,7 @@ mod test {
#[test]
fn test_prepare_metadata() {
let metadata_dir = TempDir::new().unwrap();
let built_by_uv = Path::new("../../scripts/packages/built-by-uv");
let built_by_uv = Path::new("../../test/packages/built-by-uv");
metadata(built_by_uv, metadata_dir.path(), "1.0.0+test").unwrap();
let mut files: Vec<_> = WalkDir::new(metadata_dir.path())

View File

@ -1441,7 +1441,7 @@ mod tests {
async fn upload_request_source_dist() {
let group = {
let raw_filename = "tqdm-999.0.0.tar.gz";
let file = PathBuf::from("../../scripts/links/").join(raw_filename);
let file = PathBuf::from("../../test/links/").join(raw_filename);
let filename = DistFilename::try_from_normalized_filename(raw_filename).unwrap();
UploadDistribution {
@ -1563,7 +1563,7 @@ mod tests {
async fn upload_request_wheel() {
let group = {
let raw_filename = "tqdm-4.66.1-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.musllinux_1_1_x86_64.whl";
let file = PathBuf::from("../../scripts/links/").join(raw_filename);
let file = PathBuf::from("../../test/links/").join(raw_filename);
let filename = DistFilename::try_from_normalized_filename(raw_filename).unwrap();
UploadDistribution {

View File

@ -17,11 +17,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black_editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black_editable",
editable: None,
virtual: None,
},
@ -34,12 +34,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black_editable",
"./test/packages/black_editable",
),
},
},
@ -67,11 +67,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black_editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black_editable",
editable: None,
virtual: None,
},
@ -84,12 +84,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black_editable",
"./test/packages/black_editable",
),
},
},
@ -121,11 +121,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/scripts/packages/black_editable",
path: "/test/packages/black_editable",
query: None,
fragment: None,
},
install_path: "/scripts/packages/black_editable",
install_path: "/test/packages/black_editable",
editable: None,
virtual: None,
},
@ -138,12 +138,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/scripts/packages/black_editable",
path: "/test/packages/black_editable",
query: None,
fragment: None,
},
given: Some(
"file:///scripts/packages/black_editable",
"file:///test/packages/black_editable",
),
},
},
@ -171,11 +171,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black editable",
editable: None,
virtual: None,
},
@ -188,12 +188,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black editable",
"./test/packages/black editable",
),
},
},
@ -221,11 +221,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black editable",
editable: None,
virtual: None,
},
@ -238,12 +238,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black editable",
"./test/packages/black editable",
),
},
},
@ -271,11 +271,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black editable",
editable: None,
virtual: None,
},
@ -288,12 +288,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black editable",
"./test/packages/black editable",
),
},
},

View File

@ -17,11 +17,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black_editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black_editable",
editable: None,
virtual: None,
},
@ -34,12 +34,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black_editable",
"./test/packages/black_editable",
),
},
},
@ -67,11 +67,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black_editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black_editable",
editable: None,
virtual: None,
},
@ -84,12 +84,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black_editable",
"./test/packages/black_editable",
),
},
},
@ -121,11 +121,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black_editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black_editable",
editable: None,
virtual: None,
},
@ -138,12 +138,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black_editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black_editable",
query: None,
fragment: None,
},
given: Some(
"file:///scripts/packages/black_editable",
"file:///test/packages/black_editable",
),
},
},
@ -171,11 +171,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black editable",
editable: None,
virtual: None,
},
@ -188,12 +188,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black editable",
"./test/packages/black editable",
),
},
},
@ -221,11 +221,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black editable",
editable: None,
virtual: None,
},
@ -238,12 +238,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black editable",
"./test/packages/black editable",
),
},
},
@ -271,11 +271,11 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
install_path: "<REQUIREMENTS_DIR>/scripts/packages/black editable",
install_path: "<REQUIREMENTS_DIR>/test/packages/black editable",
editable: None,
virtual: None,
},
@ -288,12 +288,12 @@ RequirementsTxt {
password: None,
host: None,
port: None,
path: "/<REQUIREMENTS_DIR>/scripts/packages/black%20editable",
path: "/<REQUIREMENTS_DIR>/test/packages/black%20editable",
query: None,
fragment: None,
},
given: Some(
"./scripts/packages/black editable",
"./test/packages/black editable",
),
},
},

View File

@ -1,6 +1,6 @@
./scripts/packages/black_editable
./scripts/packages/black_editable[dev]
file:///scripts/packages/black_editable
./scripts/packages/black editable
./scripts/packages/black editable ; python_version >= "3.9"
./scripts/packages/black editable # comment
./test/packages/black_editable
./test/packages/black_editable[dev]
file:///test/packages/black_editable
./test/packages/black editable
./test/packages/black editable ; python_version >= "3.9"
./test/packages/black editable # comment

View File

@ -1827,7 +1827,7 @@ mod tests {
.unwrap()
.parent()
.unwrap()
.join("scripts")
.join("test")
.join("workspaces");
let project = ProjectWorkspace::discover(
&root_dir.join(folder),

View File

@ -1533,7 +1533,7 @@ fn build_non_package() -> Result<()> {
fn build_fast_path() -> Result<()> {
let context = TestContext::new("3.12");
let built_by_uv = current_dir()?.join("../../scripts/packages/built-by-uv");
let built_by_uv = current_dir()?.join("../../test/packages/built-by-uv");
uv_snapshot!(context.build()
.arg(&built_by_uv)
@ -1633,7 +1633,7 @@ fn build_fast_path() -> Result<()> {
fn build_list_files() -> Result<()> {
let context = TestContext::new("3.12");
let built_by_uv = current_dir()?.join("../../scripts/packages/built-by-uv");
let built_by_uv = current_dir()?.join("../../test/packages/built-by-uv");
// By default, we build the wheel from the source dist, which we need to do even for the list
// task.
@ -1755,7 +1755,7 @@ fn build_list_files() -> Result<()> {
fn build_list_files_errors() -> Result<()> {
let context = TestContext::new("3.12");
let built_by_uv = current_dir()?.join("../../scripts/packages/built-by-uv");
let built_by_uv = current_dir()?.join("../../test/packages/built-by-uv");
let mut filters = context.filters();
// In CI, we run with link mode settings.
@ -1779,7 +1779,7 @@ fn build_list_files_errors() -> Result<()> {
"###);
// Not a uv build backend package, we can't list it.
let anyio_local = current_dir()?.join("../../scripts/packages/anyio_local");
let anyio_local = current_dir()?.join("../../test/packages/anyio_local");
let mut filters = context.filters();
// Windows normalization
filters.push(("/crates/uv/../../", "/"));
@ -1793,7 +1793,7 @@ fn build_list_files_errors() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to build `[WORKSPACE]/scripts/packages/anyio_local`
× Failed to build `[WORKSPACE]/test/packages/anyio_local`
Can only use `--list` with the uv backend
"###);
Ok(())
@ -1802,7 +1802,7 @@ fn build_list_files_errors() -> Result<()> {
#[test]
fn build_version_mismatch() -> Result<()> {
let context = TestContext::new("3.12");
let anyio_local = current_dir()?.join("../../scripts/packages/anyio_local");
let anyio_local = current_dir()?.join("../../test/packages/anyio_local");
context
.build()
.arg("--sdist")

View File

@ -27,7 +27,7 @@ const BUILT_BY_UV_TEST_SCRIPT: &str = indoc! {r#"
#[cfg(feature = "pypi")]
fn built_by_uv_direct_wheel() -> Result<()> {
let context = TestContext::new("3.12");
let built_by_uv = Path::new("../../scripts/packages/built-by-uv");
let built_by_uv = Path::new("../../test/packages/built-by-uv");
let temp_dir = TempDir::new()?;
@ -83,7 +83,7 @@ fn built_by_uv_direct_wheel() -> Result<()> {
#[cfg(feature = "pypi")]
fn built_by_uv_direct() -> Result<()> {
let context = TestContext::new("3.12");
let built_by_uv = Path::new("../../scripts/packages/built-by-uv");
let built_by_uv = Path::new("../../test/packages/built-by-uv");
let sdist_dir = TempDir::new()?;
@ -157,7 +157,7 @@ fn built_by_uv_direct() -> Result<()> {
#[cfg(feature = "pypi")]
fn built_by_uv_editable() -> Result<()> {
let context = TestContext::new("3.12");
let built_by_uv = Path::new("../../scripts/packages/built-by-uv");
let built_by_uv = Path::new("../../test/packages/built-by-uv");
// Without the editable, pytest fails.
context.pip_install().arg("pytest").assert().success();

View File

@ -1630,11 +1630,11 @@ impl TestContext {
/// test context.
///
/// The given name should correspond to the name of a sub-directory (not a
/// path to it) in the top-level `ecosystem` directory.
/// path to it) in the `test/ecosystem` directory.
///
/// This panics (fails the current test) for any failure.
pub fn copy_ecosystem_project(&self, name: &str) {
let project_dir = PathBuf::from(format!("../../ecosystem/{name}"));
let project_dir = PathBuf::from(format!("../../test/ecosystem/{name}"));
self.temp_dir.copy_from(project_dir, &["*"]).unwrap();
// If there is a (gitignore) lockfile, remove it.
if let Err(err) = fs_err::remove_file(self.temp_dir.join("uv.lock")) {

View File

@ -80,7 +80,7 @@ fn airflow() -> Result<()> {
}
/// Does a lock on the given ecosystem package for the given name. That
/// is, there should be a directory at `./ecosystem/{name}` from the
/// is, there should be a directory at `./test/ecosystem/{name}` from the
/// root of the `uv` repository.
fn lock_ecosystem_package(python_version: &str, name: &str) -> Result<()> {
let context = TestContext::new(python_version);

View File

@ -7521,7 +7521,7 @@ async fn add_requirements_from_remote_script() -> Result<()> {
fn remove_repeated() -> Result<()> {
let context = TestContext::new("3.12");
let anyio_local = context.workspace_root.join("scripts/packages/anyio_local");
let anyio_local = context.workspace_root.join("test/packages/anyio_local");
let pyproject_toml = context.temp_dir.child("pyproject.toml");
pyproject_toml.write_str(&formatdoc! {r#"
@ -7553,7 +7553,7 @@ fn remove_repeated() -> Result<()> {
Resolved 2 packages in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
+ anyio==4.3.0+foo (from file://[WORKSPACE]/test/packages/anyio_local)
");
let pyproject_toml = context.read("pyproject.toml");
@ -7576,7 +7576,7 @@ fn remove_repeated() -> Result<()> {
dev-dependencies = ["anyio"]
[tool.uv.sources]
anyio = { path = "[WORKSPACE]/scripts/packages/anyio_local" }
anyio = { path = "[WORKSPACE]/test/packages/anyio_local" }
"###
);
});
@ -7612,7 +7612,7 @@ fn remove_repeated() -> Result<()> {
dev-dependencies = ["anyio"]
[tool.uv.sources]
anyio = { path = "[WORKSPACE]/scripts/packages/anyio_local" }
anyio = { path = "[WORKSPACE]/test/packages/anyio_local" }
"###
);
});
@ -7626,7 +7626,7 @@ fn remove_repeated() -> Result<()> {
warning: The `tool.uv.dev-dependencies` field (used in `pyproject.toml`) is deprecated and will be removed in a future release; use `dependency-groups.dev` instead
Resolved 1 package in [TIME]
Uninstalled 1 package in [TIME]
- anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
- anyio==4.3.0+foo (from file://[WORKSPACE]/test/packages/anyio_local)
");
let pyproject_toml = context.read("pyproject.toml");
@ -11003,7 +11003,7 @@ fn add_index_with_existing_relative_path_index() -> Result<()> {
let wheel_src = context
.workspace_root
.join("scripts/links/ok-1.0.0-py3-none-any.whl");
.join("test/links/ok-1.0.0-py3-none-any.whl");
let wheel_dst = packages.child("ok-1.0.0-py3-none-any.whl");
fs_err::copy(&wheel_src, &wheel_dst)?;
@ -13021,7 +13021,7 @@ fn add_index_url_in_keyring() -> Result<()> {
.arg(
keyring_context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)
@ -13079,7 +13079,7 @@ fn add_full_url_in_keyring() -> Result<()> {
.arg(
keyring_context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)
@ -13756,7 +13756,7 @@ async fn add_redirect_with_keyring_cross_origin() -> Result<()> {
.arg(
keyring_context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)

View File

@ -11044,7 +11044,7 @@ fn lock_find_links_local_wheel() -> Result<()> {
// Populate the `--find-links` entries.
fs_err::create_dir_all(context.temp_dir.join("links"))?;
for entry in fs_err::read_dir(context.workspace_root.join("scripts/links"))? {
for entry in fs_err::read_dir(context.workspace_root.join("test/links"))? {
let entry = entry?;
let path = entry.path();
if path
@ -11158,7 +11158,7 @@ fn lock_find_links_ignore_explicit_index() -> Result<()> {
// Populate the `--find-links` entries.
fs_err::create_dir_all(context.temp_dir.join("links"))?;
for entry in fs_err::read_dir(context.workspace_root.join("scripts/links"))? {
for entry in fs_err::read_dir(context.workspace_root.join("test/links"))? {
let entry = entry?;
let path = entry.path();
if path
@ -11279,7 +11279,7 @@ fn lock_find_links_relative_url() -> Result<()> {
// Populate the `--find-links` entries.
fs_err::create_dir_all(context.temp_dir.join("links"))?;
for entry in fs_err::read_dir(context.workspace_root.join("scripts/links"))? {
for entry in fs_err::read_dir(context.workspace_root.join("test/links"))? {
let entry = entry?;
let path = entry.path();
if path
@ -11395,7 +11395,7 @@ fn lock_find_links_local_sdist() -> Result<()> {
// Populate the `--find-links` entries.
fs_err::create_dir_all(context.temp_dir.join("links"))?;
for entry in fs_err::read_dir(context.workspace_root.join("scripts/links"))? {
for entry in fs_err::read_dir(context.workspace_root.join("test/links"))? {
let entry = entry?;
let path = entry.path();
if path
@ -11689,7 +11689,7 @@ fn lock_find_links_explicit_index() -> Result<()> {
// Populate the `--find-links` entries.
fs_err::create_dir_all(context.temp_dir.join("links"))?;
for entry in fs_err::read_dir(context.workspace_root.join("scripts/links"))? {
for entry in fs_err::read_dir(context.workspace_root.join("test/links"))? {
let entry = entry?;
let path = entry.path();
if path
@ -11795,7 +11795,7 @@ fn lock_find_links_higher_priority_index() -> Result<()> {
// Populate the `--find-links` entries.
fs_err::create_dir_all(context.temp_dir.join("links"))?;
for entry in fs_err::read_dir(context.workspace_root.join("scripts/links"))? {
for entry in fs_err::read_dir(context.workspace_root.join("test/links"))? {
let entry = entry?;
let path = entry.path();
if path
@ -11886,7 +11886,7 @@ fn lock_find_links_lower_priority_index() -> Result<()> {
// Populate the `--find-links` entries.
fs_err::create_dir_all(context.temp_dir.join("links"))?;
for entry in fs_err::read_dir(context.workspace_root.join("scripts/links"))? {
for entry in fs_err::read_dir(context.workspace_root.join("test/links"))? {
let entry = entry?;
let path = entry.path();
if path
@ -12001,7 +12001,7 @@ fn lock_local_index() -> Result<()> {
fs_err::copy(
context
.workspace_root
.join("scripts/links/basic_package-0.1.0.tar.gz"),
.join("test/links/basic_package-0.1.0.tar.gz"),
&sdist,
)?;
@ -12009,7 +12009,7 @@ fn lock_local_index() -> Result<()> {
fs_err::copy(
context
.workspace_root
.join("scripts/links/basic_package-0.1.0-py3-none-any.whl"),
.join("test/links/basic_package-0.1.0-py3-none-any.whl"),
&wheel,
)?;
@ -21051,7 +21051,7 @@ fn lock_keyring_credentials() -> Result<()> {
.arg(
keyring_context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)
@ -21146,7 +21146,7 @@ fn lock_keyring_explicit_always() -> Result<()> {
.arg(
keyring_context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)
@ -21231,7 +21231,7 @@ fn lock_keyring_credentials_always_authenticate_fetches_username() -> Result<()>
.arg(
keyring_context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)
@ -21335,7 +21335,7 @@ fn lock_keyring_credentials_always_authenticate_unsupported_mode() -> Result<()>
.arg(
keyring_context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)

View File

@ -3038,7 +3038,7 @@ fn allowed_transitive_url_path_dependency() -> Result<()> {
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("hatchling_editable @ ${HATCH_PATH}")?;
let hatchling_path = current_dir()?.join("../../scripts/packages/hatchling_editable");
let hatchling_path = current_dir()?.join("../../test/packages/hatchling_editable");
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.env(EnvVars::HATCH_PATH, hatchling_path.as_os_str()), @r###"
@ -4725,8 +4725,8 @@ fn compile_editable() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str(indoc! {r"
-e ../../scripts/packages/poetry_editable
-e file://../../scripts/packages/black_editable[dev]
-e ../../test/packages/poetry_editable
-e file://../../test/packages/black_editable[dev]
boltons # normal dependency for comparison
"
})?;
@ -4739,9 +4739,9 @@ fn compile_editable() -> Result<()> {
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in
-e ../../scripts/packages/poetry_editable
-e ../../test/packages/poetry_editable
# via -r [TEMP_DIR]/requirements.in
-e file://../../scripts/packages/black_editable
-e file://../../test/packages/black_editable
# via -r [TEMP_DIR]/requirements.in
aiohttp==3.9.3
# via black
@ -4785,9 +4785,9 @@ fn deduplicate_editable() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str(indoc! {r"
-e file://../../scripts/packages/black_editable
-e ${PROJECT_ROOT}/../../scripts/packages/black_editable
-e file://../../scripts/packages/black_editable[dev]
-e file://../../test/packages/black_editable
-e ${PROJECT_ROOT}/../../test/packages/black_editable
-e file://../../test/packages/black_editable[dev]
"
})?;
@ -4799,7 +4799,7 @@ fn deduplicate_editable() -> Result<()> {
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in
-e file://../../scripts/packages/black_editable
-e file://../../test/packages/black_editable
# via -r [TEMP_DIR]/requirements.in
aiohttp==3.9.3
# via black
@ -4834,7 +4834,7 @@ fn strip_fragment_unnamed() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str(indoc! {r"
../../scripts/packages/black_editable#egg=black
../../test/packages/black_editable#egg=black
"
})?;
@ -4846,7 +4846,7 @@ fn strip_fragment_unnamed() -> Result<()> {
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in
../../scripts/packages/black_editable#egg=black
../../test/packages/black_editable#egg=black
# via -r [TEMP_DIR]/requirements.in
----- stderr -----
@ -4861,7 +4861,7 @@ fn strip_fragment_named() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str(indoc! {r"
black @ ../../scripts/packages/black_editable#egg=black
black @ ../../test/packages/black_editable#egg=black
"
})?;
@ -4873,7 +4873,7 @@ fn strip_fragment_named() -> Result<()> {
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in
../../scripts/packages/black_editable#egg=black
../../test/packages/black_editable#egg=black
# via -r [TEMP_DIR]/requirements.in
----- stderr -----
@ -4887,7 +4887,7 @@ fn strip_fragment_named() -> Result<()> {
fn recursive_extras_direct_url() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("black[dev] @ ../../scripts/packages/black_editable")?;
requirements_in.write_str("black[dev] @ ../../test/packages/black_editable")?;
uv_snapshot!(context.filters(), context
.pip_compile()
@ -4904,7 +4904,7 @@ fn recursive_extras_direct_url() -> Result<()> {
# via aiohttp
attrs==23.2.0
# via aiohttp
../../scripts/packages/black_editable
../../test/packages/black_editable
# via -r [TEMP_DIR]/requirements.in
frozenlist==1.4.1
# via
@ -4934,7 +4934,7 @@ fn recursive_extras_direct_url() -> Result<()> {
fn compile_editable_url_requirement() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("-e ../../scripts/packages/hatchling_editable")?;
requirements_in.write_str("-e ../../test/packages/hatchling_editable")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg(requirements_in.path())
@ -4944,7 +4944,7 @@ fn compile_editable_url_requirement() -> Result<()> {
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in
-e ../../scripts/packages/hatchling_editable
-e ../../test/packages/hatchling_editable
# via -r [TEMP_DIR]/requirements.in
iniconfig @ git+https://github.com/pytest-dev/iniconfig@9cae43103df70bac6fde7b9f35ad11a9f1be0cb4
# via hatchling-editable
@ -5249,7 +5249,7 @@ fn generate_hashes_local_directory() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str(indoc! {r"
../../scripts/packages/poetry_editable
../../test/packages/poetry_editable
"
})?;
@ -5270,7 +5270,7 @@ fn generate_hashes_local_directory() -> Result<()> {
--hash=sha256:9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca \
--hash=sha256:c05567e9c24a6b9faaa835c4821bad0590fbb9d5779e7caa6e1cc4978e7eb24f
# via anyio
../../scripts/packages/poetry_editable
../../test/packages/poetry_editable
# via -r [TEMP_DIR]/requirements.in
sniffio==1.3.1 \
--hash=sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2 \
@ -5292,7 +5292,7 @@ fn generate_hashes_editable() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str(indoc! {r"
-e ../../scripts/packages/poetry_editable
-e ../../test/packages/poetry_editable
"
})?;
@ -5305,7 +5305,7 @@ fn generate_hashes_editable() -> Result<()> {
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in --generate-hashes
-e ../../scripts/packages/poetry_editable
-e ../../test/packages/poetry_editable
# via -r [TEMP_DIR]/requirements.in
anyio==4.3.0 \
--hash=sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8 \
@ -5338,7 +5338,7 @@ fn generate_hashes_find_links_directory() -> Result<()> {
.arg("requirements.in")
.arg("--generate-hashes")
.arg("--find-links")
.arg(context.workspace_root.join("scripts").join("links")), @r###"
.arg(context.workspace_root.join("test").join("links")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -5400,7 +5400,7 @@ fn find_links_directory() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.arg("--find-links")
.arg(context.workspace_root.join("scripts").join("links")), @r###"
.arg(context.workspace_root.join("test").join("links")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -5550,7 +5550,7 @@ fn avoid_irrelevant_extras() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.arg("--find-links")
.arg(context.workspace_root.join("scripts").join("links")), @r###"
.arg(context.workspace_root.join("test").join("links")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -5603,7 +5603,7 @@ coverage = ["example[test]", "extras>=0.0.1,<=0.0.2"]
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.arg("--find-links")
.arg(context.workspace_root.join("scripts").join("links")), @r###"
.arg(context.workspace_root.join("test").join("links")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -7013,7 +7013,7 @@ fn invalid_metadata_requires_python() -> Result<()> {
.arg("requirements.in")
.arg("--no-index")
.arg("--find-links")
.arg(context.workspace_root.join("scripts").join("links")), @r###"
.arg(context.workspace_root.join("test").join("links")), @r###"
success: false
exit_code: 1
----- stdout -----
@ -7044,7 +7044,7 @@ fn invalid_metadata_multiple_dist_info() -> Result<()> {
.arg("requirements.in")
.arg("--no-index")
.arg("--find-links")
.arg(context.workspace_root.join("scripts").join("links")), @r###"
.arg(context.workspace_root.join("test").join("links")), @r###"
success: false
exit_code: 1
----- stdout -----
@ -7074,7 +7074,7 @@ fn invalid_metadata_backtrack() -> Result<()> {
.arg("requirements.in")
.arg("--no-index")
.arg("--find-links")
.arg(context.workspace_root.join("scripts").join("links")), @r###"
.arg(context.workspace_root.join("test").join("links")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -7193,7 +7193,7 @@ fn compile_unnamed_preference() -> Result<()> {
requirements_in.write_str("black")?;
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str("./scripts/packages/black_editable")?;
requirements_txt.write_str("./test/packages/black_editable")?;
uv_snapshot!(context
.pip_compile()
@ -7536,7 +7536,7 @@ dependencies = [
fn editable_invalid_extra() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("-e ../../scripts/packages/black_editable[empty]")?;
requirements_in.write_str("-e ../../test/packages/black_editable[empty]")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg(requirements_in.path())
@ -7546,12 +7546,12 @@ fn editable_invalid_extra() -> Result<()> {
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in
-e ../../scripts/packages/black_editable
-e ../../test/packages/black_editable
# via -r [TEMP_DIR]/requirements.in
----- stderr -----
Resolved 1 package in [TIME]
warning: The package `black @ file://[WORKSPACE]/scripts/packages/black_editable` does not have an extra named `empty`
warning: The package `black @ file://[WORKSPACE]/test/packages/black_editable` does not have an extra named `empty`
"###);
Ok(())
@ -10140,7 +10140,7 @@ fn editable_override() -> Result<()> {
// Add an editable override.
let overrides_txt = context.temp_dir.child("overrides.txt");
overrides_txt.write_str("-e ../../scripts/packages/black_editable")?;
overrides_txt.write_str("-e ../../test/packages/black_editable")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg(requirements_in.path())
@ -10152,7 +10152,7 @@ fn editable_override() -> Result<()> {
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in --override [TEMP_DIR]/overrides.txt
-e ../../scripts/packages/black_editable
-e ../../test/packages/black_editable
# via
# --override [TEMP_DIR]/overrides.txt
# -r [TEMP_DIR]/requirements.in
@ -10170,7 +10170,7 @@ fn editable_override() -> Result<()> {
fn override_editable() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("-e ../../scripts/packages/black_editable")?;
requirements_in.write_str("-e ../../test/packages/black_editable")?;
let overrides_txt = context.temp_dir.child("overrides.txt");
overrides_txt.write_str("black==23.10.1")?;
@ -10719,7 +10719,7 @@ qux = ["project[bop] ; python_version == '3.12'"]
fn editable_direct_dependency() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("-e ../../scripts/packages/setuptools_editable")?;
requirements_in.write_str("-e ../../test/packages/setuptools_editable")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg(requirements_in.path())
@ -10731,7 +10731,7 @@ fn editable_direct_dependency() -> Result<()> {
----- stdout -----
# This file was autogenerated by uv via the following command:
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in --resolution lowest-direct
-e ../../scripts/packages/setuptools_editable
-e ../../test/packages/setuptools_editable
# via -r [TEMP_DIR]/requirements.in
iniconfig==0.1
# via setuptools-editable
@ -11189,7 +11189,7 @@ fn compile_root_uri_editable() -> Result<()> {
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("-e ${ROOT_PATH}")?;
let root_path = current_dir()?.join("../../scripts/packages/root_editable");
let root_path = current_dir()?.join("../../test/packages/root_editable");
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.env(EnvVars::ROOT_PATH, root_path.as_os_str()), @r###"
@ -11200,7 +11200,7 @@ fn compile_root_uri_editable() -> Result<()> {
# uv pip compile --cache-dir [CACHE_DIR] requirements.in
-e ${ROOT_PATH}
# via -r requirements.in
black @ file://[WORKSPACE]/scripts/packages/root_editable/../black_editable
black @ file://[WORKSPACE]/test/packages/root_editable/../black_editable
# via root-editable
----- stderr -----
@ -11219,8 +11219,8 @@ fn compile_root_uri_non_editable() -> Result<()> {
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("${ROOT_PATH}\n${BLACK_PATH}")?;
let root_path = current_dir()?.join("../../scripts/packages/root_editable");
let black_path = current_dir()?.join("../../scripts/packages/black_editable");
let root_path = current_dir()?.join("../../test/packages/root_editable");
let black_path = current_dir()?.join("../../test/packages/black_editable");
uv_snapshot!(context.filters(), context.pip_compile()
.arg("requirements.in")
.env(EnvVars::ROOT_PATH, root_path.as_os_str())
@ -11598,10 +11598,10 @@ fn unnamed_path_requirement() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str(indoc! {r"
../../scripts/packages/poetry_editable
../../scripts/packages/black_editable
../../scripts/packages/setup_py_editable
../../scripts/packages/setup_cfg_editable
../../test/packages/poetry_editable
../../test/packages/black_editable
../../test/packages/setup_py_editable
../../test/packages/setup_cfg_editable
"
})?;
@ -11617,7 +11617,7 @@ fn unnamed_path_requirement() -> Result<()> {
# via
# httpx
# poetry-editable
../../scripts/packages/black_editable
../../test/packages/black_editable
# via -r [TEMP_DIR]/requirements.in
certifi==2024.2.2
# via
@ -11637,13 +11637,13 @@ fn unnamed_path_requirement() -> Result<()> {
# anyio
# httpx
# requests
../../scripts/packages/poetry_editable
../../test/packages/poetry_editable
# via -r [TEMP_DIR]/requirements.in
requests==2.31.0
# via setup-cfg-editable
../../scripts/packages/setup_cfg_editable
../../test/packages/setup_cfg_editable
# via -r [TEMP_DIR]/requirements.in
../../scripts/packages/setup_py_editable
../../test/packages/setup_py_editable
# via -r [TEMP_DIR]/requirements.in
sniffio==1.3.1
# via
@ -11742,7 +11742,7 @@ fn unnamed_https_requirement() -> Result<()> {
fn dynamic_dependencies() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("hatchling-dynamic @ ../../scripts/packages/hatchling_dynamic")?;
requirements_in.write_str("hatchling-dynamic @ ../../test/packages/hatchling_dynamic")?;
uv_snapshot!(context.filters(), context.pip_compile()
.arg(requirements_in.path())
@ -11754,7 +11754,7 @@ fn dynamic_dependencies() -> Result<()> {
# uv pip compile --cache-dir [CACHE_DIR] [TEMP_DIR]/requirements.in
anyio==4.3.0
# via hatchling-dynamic
../../scripts/packages/hatchling_dynamic
../../test/packages/hatchling_dynamic
# via -r [TEMP_DIR]/requirements.in
idna==3.6
# via anyio
@ -11920,7 +11920,7 @@ fn emit_marker_expression_pypy() -> Result<()> {
#[test]
fn local_version_of_remote_package() -> Result<()> {
let context = TestContext::new("3.12");
let root_path = context.workspace_root.join("scripts/packages");
let root_path = context.workspace_root.join("test/packages");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str("anyio")?;
@ -11957,7 +11957,7 @@ fn local_version_of_remote_package() -> Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
+ anyio==4.3.0+foo (from file://[WORKSPACE]/test/packages/anyio_local)
"###
);
@ -11983,7 +11983,7 @@ fn local_version_of_remote_package() -> Result<()> {
// Write a lockfile with the local version
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str(&indoc::formatdoc! {r"
anyio @ {workspace_root}/scripts/packages/anyio_local
anyio @ {workspace_root}/test/packages/anyio_local
",
workspace_root = context.workspace_root.simplified_display(),
})?;
@ -13376,11 +13376,11 @@ fn tool_uv_sources() -> Result<()> {
let project_root = fs_err::canonicalize(current_dir()?.join("../.."))?;
fs_err::create_dir_all(context.temp_dir.join("poetry_editable/poetry_editable"))?;
fs_err::copy(
project_root.join("scripts/packages/poetry_editable/pyproject.toml"),
project_root.join("test/packages/poetry_editable/pyproject.toml"),
context.temp_dir.join("poetry_editable/pyproject.toml"),
)?;
fs_err::copy(
project_root.join("scripts/packages/poetry_editable/poetry_editable/__init__.py"),
project_root.join("test/packages/poetry_editable/poetry_editable/__init__.py"),
context
.temp_dir
.join("poetry_editable/poetry_editable/__init__.py"),

View File

@ -131,7 +131,7 @@ fn freeze_with_editable() -> Result<()> {
"anyio\n-e {}",
context
.workspace_root
.join("scripts/packages/poetry_editable")
.join("test/packages/poetry_editable")
.display()
))?;
@ -149,7 +149,7 @@ fn freeze_with_editable() -> Result<()> {
exit_code: 0
----- stdout -----
anyio==4.3.0
-e file://[WORKSPACE]/scripts/packages/poetry_editable
-e file://[WORKSPACE]/test/packages/poetry_editable
----- stderr -----
warning: The package `anyio` requires `idna>=2.8`, but it's not installed

View File

@ -1377,7 +1377,7 @@ fn install_extras() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_install()
.arg("--all-extras")
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r"
success: false
exit_code: 2
----- stdout -----
@ -1390,7 +1390,7 @@ fn install_extras() -> Result<()> {
// Request extras for a source tree
uv_snapshot!(context.filters(), context.pip_install()
.arg("--all-extras")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r"
success: false
exit_code: 2
----- stdout -----
@ -1453,7 +1453,7 @@ fn install_editable() {
// Install the editable package.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r###"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -1464,7 +1464,7 @@ fn install_editable() {
Installed 4 packages in [TIME]
+ anyio==4.3.0
+ idna==3.6
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
+ sniffio==1.3.1
"###
);
@ -1472,7 +1472,7 @@ fn install_editable() {
// Install it again.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r###"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -1482,14 +1482,14 @@ fn install_editable() {
Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
~ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
~ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
"###
);
// Add another, non-editable dependency.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable"))
.arg(context.workspace_root.join("test/packages/poetry_editable"))
.arg("black"), @r###"
success: true
exit_code: 0
@ -1506,7 +1506,7 @@ fn install_editable() {
+ packaging==24.0
+ pathspec==0.12.1
+ platformdirs==4.2.0
~ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
~ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
"###
);
}
@ -1538,7 +1538,7 @@ fn install_editable_and_registry() {
// Install the editable version of Black. This should remove the registry-based version.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/black_editable")), @r###"
.arg(context.workspace_root.join("test/packages/black_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -1549,7 +1549,7 @@ fn install_editable_and_registry() {
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
- black==24.3.0
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
"###
);
@ -1580,7 +1580,7 @@ fn install_editable_and_registry() {
Prepared [N] packages in [TIME]
Uninstalled [N] packages in [TIME]
Installed [N] packages in [TIME]
- black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
- black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
+ black==23.10.0
"###
);
@ -1593,7 +1593,7 @@ fn install_editable_no_binary() {
// Install the editable package with no-binary enabled
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/black_editable"))
.arg(context.workspace_root.join("test/packages/black_editable"))
.arg("--no-binary")
.arg(":all:"), @r###"
success: true
@ -1604,7 +1604,7 @@ fn install_editable_no_binary() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
"###
);
}
@ -1619,7 +1619,7 @@ fn install_editable_compatible_constraint() -> Result<()> {
// Install the editable package with a compatible constraint.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/black_editable"))
.arg(context.workspace_root.join("test/packages/black_editable"))
.arg("--constraint")
.arg("constraints.txt"), @r###"
success: true
@ -1630,7 +1630,7 @@ fn install_editable_compatible_constraint() -> Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
"###
);
@ -1647,7 +1647,7 @@ fn install_editable_incompatible_constraint_version() -> Result<()> {
// Install the editable package with an incompatible constraint.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/black_editable"))
.arg(context.workspace_root.join("test/packages/black_editable"))
.arg("--constraint")
.arg("constraints.txt"), @r###"
success: false
@ -1673,7 +1673,7 @@ fn install_editable_incompatible_constraint_url() -> Result<()> {
// Install the editable package with an incompatible constraint.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/black_editable"))
.arg(context.workspace_root.join("test/packages/black_editable"))
.arg("--constraint")
.arg("constraints.txt"), @r"
success: false
@ -1682,7 +1682,7 @@ fn install_editable_incompatible_constraint_url() -> Result<()> {
----- stderr -----
error: Requirements contain conflicting URLs for package `black`:
- file://[WORKSPACE]/scripts/packages/black_editable (editable)
- file://[WORKSPACE]/test/packages/black_editable (editable)
- https://files.pythonhosted.org/packages/0f/89/294c9a6b6c75a08da55e9d05321d0707e9418735e3062b12ef0f54c33474/black-24.4.2-py3-none-any.whl
"
);
@ -1696,7 +1696,7 @@ fn install_editable_pep_508_requirements_txt() -> Result<()> {
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str(&indoc::formatdoc! {r"
-e black[d] @ file://{workspace_root}/scripts/packages/black_editable
-e black[d] @ file://{workspace_root}/test/packages/black_editable
",
workspace_root = context.workspace_root.simplified_display(),
})?;
@ -1715,7 +1715,7 @@ fn install_editable_pep_508_requirements_txt() -> Result<()> {
+ aiohttp==3.9.3
+ aiosignal==1.3.1
+ attrs==23.2.0
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
+ frozenlist==1.4.1
+ idna==3.6
+ multidict==6.0.5
@ -1724,7 +1724,7 @@ fn install_editable_pep_508_requirements_txt() -> Result<()> {
);
requirements_txt.write_str(&indoc::formatdoc! {r"
--editable black[d] @ file://{workspace_root}/scripts/packages/black_editable
--editable black[d] @ file://{workspace_root}/test/packages/black_editable
",
workspace_root = context.workspace_root.simplified_display(),
})?;
@ -1742,7 +1742,7 @@ fn install_editable_pep_508_requirements_txt() -> Result<()> {
);
requirements_txt.write_str(&indoc::formatdoc! {r"
--editable=black[d] @ file://{workspace_root}/scripts/packages/black_editable
--editable=black[d] @ file://{workspace_root}/test/packages/black_editable
",
workspace_root = context.workspace_root.simplified_display(),
})?;
@ -1760,7 +1760,7 @@ fn install_editable_pep_508_requirements_txt() -> Result<()> {
);
requirements_txt.write_str(&indoc::formatdoc! {r"
--editable= black[d] @ file://{workspace_root}/scripts/packages/black_editable
--editable= black[d] @ file://{workspace_root}/test/packages/black_editable
",
workspace_root = context.workspace_root.simplified_display(),
})?;
@ -1786,7 +1786,7 @@ fn install_editable_pep_508_cli() {
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(format!("black[d] @ file://{workspace_root}/scripts/packages/black_editable", workspace_root = context.workspace_root.simplified_display())), @r###"
.arg(format!("black[d] @ file://{workspace_root}/test/packages/black_editable", workspace_root = context.workspace_root.simplified_display())), @r###"
success: true
exit_code: 0
----- stdout -----
@ -1798,7 +1798,7 @@ fn install_editable_pep_508_cli() {
+ aiohttp==3.9.3
+ aiosignal==1.3.1
+ attrs==23.2.0
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
+ frozenlist==1.4.1
+ idna==3.6
+ multidict==6.0.5
@ -1811,7 +1811,7 @@ fn install_editable_pep_508_cli() {
fn install_editable_bare_cli() {
let context = TestContext::new("3.12");
let packages_dir = context.workspace_root.join("scripts/packages");
let packages_dir = context.workspace_root.join("test/packages");
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
@ -1826,7 +1826,7 @@ fn install_editable_bare_cli() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
"###
);
}
@ -1838,7 +1838,7 @@ fn install_editable_bare_requirements_txt() -> Result<()> {
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str("-e black_editable")?;
let packages_dir = context.workspace_root.join("scripts/packages");
let packages_dir = context.workspace_root.join("test/packages");
uv_snapshot!(context.filters(), context.pip_install()
.arg("-r")
@ -1853,7 +1853,7 @@ fn install_editable_bare_requirements_txt() -> Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
"###
);
@ -3012,7 +3012,7 @@ fn only_binary_editable() {
.arg("--only-binary")
.arg(":all:")
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/anyio_local")), @r###"
.arg(context.workspace_root.join("test/packages/anyio_local")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -3021,7 +3021,7 @@ fn only_binary_editable() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
+ anyio==4.3.0+foo (from file://[WORKSPACE]/test/packages/anyio_local)
"###
);
}
@ -3032,7 +3032,7 @@ fn only_binary_dependent_editables() {
let context = TestContext::new("3.12");
let root_path = context
.workspace_root
.join("scripts/packages/dependent_locals");
.join("test/packages/dependent_locals");
// Install the editable package.
uv_snapshot!(context.filters(), context.pip_install()
@ -3050,8 +3050,8 @@ fn only_binary_dependent_editables() {
Resolved 2 packages in [TIME]
Prepared 2 packages in [TIME]
Installed 2 packages in [TIME]
+ first-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/first_local)
+ second-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/second_local)
+ first-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/first_local)
+ second-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/second_local)
"###
);
}
@ -3066,7 +3066,7 @@ fn only_binary_editable_setup_py() {
.arg("--only-binary")
.arg(":all:")
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/setup_py_editable")), @r###"
.arg(context.workspace_root.join("test/packages/setup_py_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -3081,7 +3081,7 @@ fn only_binary_editable_setup_py() {
+ httpcore==1.0.4
+ httpx==0.27.0
+ idna==3.6
+ setup-py-editable==0.0.1 (from file://[WORKSPACE]/scripts/packages/setup_py_editable)
+ setup-py-editable==0.0.1 (from file://[WORKSPACE]/test/packages/setup_py_editable)
+ sniffio==1.3.1
"###
);
@ -3328,7 +3328,7 @@ fn no_deps_editable() {
uv_snapshot!(context.filters(), context.pip_install()
.arg("--no-deps")
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/black_editable[dev]")), @r###"
.arg(context.workspace_root.join("test/packages/black_editable[dev]")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -3337,7 +3337,7 @@ fn no_deps_editable() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
"###
);
@ -3963,7 +3963,7 @@ fn launcher() -> Result<()> {
uv_snapshot!(
filters,
context.pip_install()
.arg(format!("simple_launcher@{}", project_root.join("scripts/links/simple_launcher-0.1.0-py3-none-any.whl").display()))
.arg(format!("simple_launcher@{}", project_root.join("test/links/simple_launcher-0.1.0-py3-none-any.whl").display()))
.arg("--strict"), @r###"
success: true
exit_code: 0
@ -4008,7 +4008,7 @@ fn launcher_with_symlink() -> Result<()> {
uv_snapshot!(filters,
context.pip_install()
.arg(format!("simple_launcher@{}", project_root.join("scripts/links/simple_launcher-0.1.0-py3-none-any.whl").display()))
.arg(format!("simple_launcher@{}", project_root.join("test/links/simple_launcher-0.1.0-py3-none-any.whl").display()))
.arg("--strict"),
@r###"
success: true
@ -4151,7 +4151,7 @@ fn config_settings_path() -> Result<()> {
"-e {}",
context
.workspace_root
.join("scripts/packages/setuptools_editable")
.join("test/packages/setuptools_editable")
.display()
))?;
@ -4168,7 +4168,7 @@ fn config_settings_path() -> Result<()> {
Prepared 2 packages in [TIME]
Installed 2 packages in [TIME]
+ iniconfig==2.0.0
+ setuptools-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/setuptools_editable)
+ setuptools-editable==0.1.0 (from file://[WORKSPACE]/test/packages/setuptools_editable)
"###
);
@ -4194,7 +4194,7 @@ fn config_settings_path() -> Result<()> {
Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
~ setuptools-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/setuptools_editable)
~ setuptools-editable==0.1.0 (from file://[WORKSPACE]/test/packages/setuptools_editable)
"
);
@ -4903,7 +4903,7 @@ fn path_name_version_change() {
let context = TestContext::new("3.12");
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/links/ok-1.0.0-py3-none-any.whl")), @r###"
.arg(context.workspace_root.join("test/links/ok-1.0.0-py3-none-any.whl")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -4912,13 +4912,13 @@ fn path_name_version_change() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ ok==1.0.0 (from file://[WORKSPACE]/scripts/links/ok-1.0.0-py3-none-any.whl)
+ ok==1.0.0 (from file://[WORKSPACE]/test/links/ok-1.0.0-py3-none-any.whl)
"###
);
// Installing the same path again should be a no-op
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/links/ok-1.0.0-py3-none-any.whl")), @r###"
.arg(context.workspace_root.join("test/links/ok-1.0.0-py3-none-any.whl")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -4930,7 +4930,7 @@ fn path_name_version_change() {
// Installing a new path should succeed
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/links/ok-2.0.0-py3-none-any.whl")), @r###"
.arg(context.workspace_root.join("test/links/ok-2.0.0-py3-none-any.whl")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -4940,14 +4940,14 @@ fn path_name_version_change() {
Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
- ok==1.0.0 (from file://[WORKSPACE]/scripts/links/ok-1.0.0-py3-none-any.whl)
+ ok==2.0.0 (from file://[WORKSPACE]/scripts/links/ok-2.0.0-py3-none-any.whl)
- ok==1.0.0 (from file://[WORKSPACE]/test/links/ok-1.0.0-py3-none-any.whl)
+ ok==2.0.0 (from file://[WORKSPACE]/test/links/ok-2.0.0-py3-none-any.whl)
"###
);
// Installing a new path should succeed regardless of which version is "newer"
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/links/ok-1.0.0-py3-none-any.whl")), @r###"
.arg(context.workspace_root.join("test/links/ok-1.0.0-py3-none-any.whl")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -4956,8 +4956,8 @@ fn path_name_version_change() {
Resolved 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
- ok==2.0.0 (from file://[WORKSPACE]/scripts/links/ok-2.0.0-py3-none-any.whl)
+ ok==1.0.0 (from file://[WORKSPACE]/scripts/links/ok-1.0.0-py3-none-any.whl)
- ok==2.0.0 (from file://[WORKSPACE]/test/links/ok-2.0.0-py3-none-any.whl)
+ ok==1.0.0 (from file://[WORKSPACE]/test/links/ok-1.0.0-py3-none-any.whl)
"###
);
}
@ -4969,7 +4969,7 @@ fn path_changes_with_same_name() -> Result<()> {
let wheel = context
.workspace_root
.join("scripts/links/ok-1.0.0-py3-none-any.whl");
.join("test/links/ok-1.0.0-py3-none-any.whl");
let one = context.temp_dir.child("one");
one.create_dir_all()?;
@ -5780,7 +5780,7 @@ fn install_package_basic_auth_from_keyring() {
.arg(
context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)
@ -5827,7 +5827,7 @@ fn install_package_basic_auth_from_keyring_wrong_password() {
.arg(
context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)
@ -5870,7 +5870,7 @@ fn install_package_basic_auth_from_keyring_wrong_username() {
.arg(
context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)
@ -5982,7 +5982,7 @@ fn deptry_gitignore() {
let source_dist_dir = context
.workspace_root
.join("scripts/packages/deptry_reproducer");
.join("test/packages/deptry_reproducer");
uv_snapshot!(context.filters(), context.pip_install()
.arg(format!("deptry_reproducer @ {}", source_dist_dir.join("deptry_reproducer-0.1.0.tar.gz").simplified_display()))
@ -5998,7 +5998,7 @@ fn deptry_gitignore() {
Prepared 3 packages in [TIME]
Installed 3 packages in [TIME]
+ cffi==1.16.0
+ deptry-reproducer==0.1.0 (from file://[WORKSPACE]/scripts/packages/deptry_reproducer/deptry_reproducer-0.1.0.tar.gz)
+ deptry-reproducer==0.1.0 (from file://[WORKSPACE]/test/packages/deptry_reproducer/deptry_reproducer-0.1.0.tar.gz)
+ pycparser==2.21
"###
);
@ -6112,7 +6112,7 @@ fn already_installed_dependent_editable() {
let context = TestContext::new("3.12");
let root_path = context
.workspace_root
.join("scripts/packages/dependent_locals");
.join("test/packages/dependent_locals");
// Install the first editable
uv_snapshot!(context.filters(), context.pip_install()
@ -6126,7 +6126,7 @@ fn already_installed_dependent_editable() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ first-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/first_local)
+ first-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/first_local)
"###
);
@ -6147,7 +6147,7 @@ fn already_installed_dependent_editable() {
Resolved 2 packages in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ second-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/second_local)
+ second-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/second_local)
"###
);
@ -6165,7 +6165,7 @@ fn already_installed_dependent_editable() {
Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
~ first-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/first_local)
~ first-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/first_local)
"###
);
@ -6207,7 +6207,7 @@ fn already_installed_dependent_editable() {
Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
~ first-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/first_local)
~ first-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/first_local)
"###
);
}
@ -6218,7 +6218,7 @@ fn already_installed_local_path_dependent() {
let context = TestContext::new("3.12");
let root_path = context
.workspace_root
.join("scripts/packages/dependent_locals");
.join("test/packages/dependent_locals");
// Install the first local
uv_snapshot!(context.filters(), context.pip_install()
@ -6231,7 +6231,7 @@ fn already_installed_local_path_dependent() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ first-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/first_local)
+ first-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/first_local)
"###
);
@ -6251,7 +6251,7 @@ fn already_installed_local_path_dependent() {
Resolved 2 packages in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ second-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/second_local)
+ second-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/second_local)
"###
);
@ -6268,7 +6268,7 @@ fn already_installed_local_path_dependent() {
Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
~ first-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/first_local)
~ first-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/first_local)
"###
);
@ -6285,7 +6285,7 @@ fn already_installed_local_path_dependent() {
Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
~ first-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/first_local)
~ first-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/first_local)
"###
);
@ -6326,8 +6326,8 @@ fn already_installed_local_path_dependent() {
Prepared 2 packages in [TIME]
Uninstalled 2 packages in [TIME]
Installed 2 packages in [TIME]
~ first-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/first_local)
~ second-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/second_local)
~ first-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/first_local)
~ second-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/second_local)
"
);
@ -6350,7 +6350,7 @@ fn already_installed_local_path_dependent() {
Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
~ second-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/second_local)
~ second-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/second_local)
"###
);
@ -6375,8 +6375,8 @@ fn already_installed_local_path_dependent() {
Prepared 2 packages in [TIME]
Uninstalled 2 packages in [TIME]
Installed 2 packages in [TIME]
~ first-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/first_local)
~ second-local==0.1.0 (from file://[WORKSPACE]/scripts/packages/dependent_locals/second_local)
~ first-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/first_local)
~ second-local==0.1.0 (from file://[WORKSPACE]/test/packages/dependent_locals/second_local)
"###
);
}
@ -6385,7 +6385,7 @@ fn already_installed_local_path_dependent() {
#[test]
fn already_installed_local_version_of_remote_package() {
let context = TestContext::new("3.12");
let root_path = context.workspace_root.join("scripts/packages");
let root_path = context.workspace_root.join("test/packages");
// Install the local anyio first
uv_snapshot!(context.filters(), context.pip_install()
@ -6398,7 +6398,7 @@ fn already_installed_local_version_of_remote_package() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
+ anyio==4.3.0+foo (from file://[WORKSPACE]/test/packages/anyio_local)
"###
);
@ -6463,7 +6463,7 @@ fn already_installed_local_version_of_remote_package() {
Prepared 1 package in [TIME]
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
~ anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
~ anyio==4.3.0+foo (from file://[WORKSPACE]/test/packages/anyio_local)
"###
);
@ -6481,7 +6481,7 @@ fn already_installed_local_version_of_remote_package() {
Prepared 3 packages in [TIME]
Uninstalled 1 package in [TIME]
Installed 3 packages in [TIME]
- anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
- anyio==4.3.0+foo (from file://[WORKSPACE]/test/packages/anyio_local)
+ anyio==4.3.0
+ idna==3.6
+ sniffio==1.3.1
@ -6501,7 +6501,7 @@ fn already_installed_local_version_of_remote_package() {
Uninstalled 1 package in [TIME]
Installed 1 package in [TIME]
- anyio==4.3.0
+ anyio==4.3.0+foo (from file://[WORKSPACE]/scripts/packages/anyio_local)
+ anyio==4.3.0+foo (from file://[WORKSPACE]/test/packages/anyio_local)
"###
);
@ -6747,7 +6747,7 @@ fn find_links() {
uv_snapshot!(context.filters(), context.pip_install()
.arg("tqdm")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -6771,7 +6771,7 @@ fn find_links_no_binary() {
.arg("--no-binary")
.arg(":all:")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -6985,7 +6985,7 @@ fn require_hashes_editable() -> Result<()> {
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str(&indoc::formatdoc! {r"
-e file://{workspace_root}/scripts/packages/black_editable[d]
-e file://{workspace_root}/test/packages/black_editable[d]
",
workspace_root = context.workspace_root.simplified_display(),
})?;
@ -7000,7 +7000,7 @@ fn require_hashes_editable() -> Result<()> {
----- stdout -----
----- stderr -----
error: In `--require-hashes` mode, all requirements must have a hash, but none were provided for: file://[WORKSPACE]/scripts/packages/black_editable[d]
error: In `--require-hashes` mode, all requirements must have a hash, but none were provided for: file://[WORKSPACE]/test/packages/black_editable[d]
"###
);
@ -7652,7 +7652,7 @@ fn verify_hashes_editable() -> Result<()> {
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str(&indoc::formatdoc! {r"
-e file://{workspace_root}/scripts/packages/black_editable[d]
-e file://{workspace_root}/test/packages/black_editable[d]
",
workspace_root = context.workspace_root.simplified_display(),
})?;
@ -7673,7 +7673,7 @@ fn verify_hashes_editable() -> Result<()> {
+ aiohttp==3.9.3
+ aiosignal==1.3.1
+ attrs==23.2.0
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
+ frozenlist==1.4.1
+ idna==3.6
+ multidict==6.0.5
@ -7861,11 +7861,11 @@ fn tool_uv_sources() -> Result<()> {
let project_root = fs_err::canonicalize(std::env::current_dir()?.join("../.."))?;
fs_err::create_dir_all(context.temp_dir.join("poetry_editable/poetry_editable"))?;
fs_err::copy(
project_root.join("scripts/packages/poetry_editable/pyproject.toml"),
project_root.join("test/packages/poetry_editable/pyproject.toml"),
context.temp_dir.join("poetry_editable/pyproject.toml"),
)?;
fs_err::copy(
project_root.join("scripts/packages/poetry_editable/poetry_editable/__init__.py"),
project_root.join("test/packages/poetry_editable/poetry_editable/__init__.py"),
context
.temp_dir
.join("poetry_editable/poetry_editable/__init__.py"),
@ -7995,8 +7995,8 @@ fn prefer_editable() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/black_editable"))
.arg(context.workspace_root.join("scripts/packages/black_editable")), @r###"
.arg(context.workspace_root.join("test/packages/black_editable"))
.arg(context.workspace_root.join("test/packages/black_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -8005,7 +8005,7 @@ fn prefer_editable() -> Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
"###
);
@ -8017,13 +8017,13 @@ fn prefer_editable() -> Result<()> {
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str(&format!(
"black @ file://{}/scripts/packages/black_editable",
"black @ file://{}/test/packages/black_editable",
context.workspace_root.simplified_display()
))?;
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/black_editable"))
.arg(context.workspace_root.join("test/packages/black_editable"))
.arg("-r")
.arg("requirements.txt"), @r###"
success: true
@ -8034,7 +8034,7 @@ fn prefer_editable() -> Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
"###
);
@ -8073,7 +8073,7 @@ fn local_index_absolute() -> Result<()> {
</a>
</body>
</html>
"#, Url::from_directory_path(context.workspace_root.join("scripts/links/")).unwrap().as_str()})?;
"#, Url::from_directory_path(context.workspace_root.join("test/links/")).unwrap().as_str()})?;
uv_snapshot!(context.filters(), context.pip_install()
.env_remove(EnvVars::UV_EXCLUDE_NEWER)
@ -8124,7 +8124,7 @@ fn local_index_relative() -> Result<()> {
</a>
</body>
</html>
"#, Url::from_directory_path(context.workspace_root.join("scripts/links/")).unwrap().as_str()})?;
"#, Url::from_directory_path(context.workspace_root.join("test/links/")).unwrap().as_str()})?;
uv_snapshot!(context.filters(), context.pip_install()
.env_remove(EnvVars::UV_EXCLUDE_NEWER)
@ -8175,7 +8175,7 @@ fn local_index_requirements_txt_absolute() -> Result<()> {
</a>
</body>
</html>
"#, Url::from_directory_path(context.workspace_root.join("scripts/links/")).unwrap().as_str()})?;
"#, Url::from_directory_path(context.workspace_root.join("test/links/")).unwrap().as_str()})?;
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str(&indoc::formatdoc! {r"
@ -8231,7 +8231,7 @@ fn local_index_requirements_txt_relative() -> Result<()> {
</a>
</body>
</html>
"#, Url::from_directory_path(context.workspace_root.join("scripts/links/")).unwrap().as_str()})?;
"#, Url::from_directory_path(context.workspace_root.join("test/links/")).unwrap().as_str()})?;
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str(
@ -8405,11 +8405,7 @@ fn install_relocatable() -> Result<()> {
// (we use black_editable because it's convenient, but we don't actually install it as editable)
context
.pip_install()
.arg(
context
.workspace_root
.join("scripts/packages/black_editable"),
)
.arg(context.workspace_root.join("test/packages/black_editable"))
.assert()
.success();
@ -9337,7 +9333,7 @@ fn build_tag() {
uv_snapshot!(context.filters(), context.pip_install()
.arg("build-tag")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -10141,7 +10137,7 @@ fn other_sources_group() -> Result<()> {
// and install an editable
context = new_context()?;
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e").arg(context.workspace_root.join("scripts/packages/poetry_editable"))
.arg("-e").arg(context.workspace_root.join("test/packages/poetry_editable"))
.arg("--group").arg("foo"), @r"
success: true
exit_code: 0
@ -10153,7 +10149,7 @@ fn other_sources_group() -> Result<()> {
Installed 5 packages in [TIME]
+ anyio==4.3.0
+ idna==3.6
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
+ sniffio==1.3.1
+ sortedcontainers==2.4.0
");
@ -12265,7 +12261,7 @@ fn config_settings_package() -> Result<()> {
"-e {}",
context
.workspace_root
.join("scripts/packages/setuptools_editable")
.join("test/packages/setuptools_editable")
.display()
))?;
@ -12282,7 +12278,7 @@ fn config_settings_package() -> Result<()> {
Prepared 2 packages in [TIME]
Installed 2 packages in [TIME]
+ iniconfig==2.0.0
+ setuptools-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/setuptools_editable)
+ setuptools-editable==0.1.0 (from file://[WORKSPACE]/test/packages/setuptools_editable)
"###
);
@ -12301,7 +12297,7 @@ fn config_settings_package() -> Result<()> {
----- stderr -----
Uninstalled 1 package in [TIME]
- setuptools-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/setuptools_editable)
- setuptools-editable==0.1.0 (from file://[WORKSPACE]/test/packages/setuptools_editable)
"###);
// Install the editable package with `editable_mode=compat`, scoped to the package.
@ -12318,7 +12314,7 @@ fn config_settings_package() -> Result<()> {
Resolved 2 packages in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ setuptools-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/setuptools_editable)
+ setuptools-editable==0.1.0 (from file://[WORKSPACE]/test/packages/setuptools_editable)
"
);
@ -12337,7 +12333,7 @@ fn config_settings_package() -> Result<()> {
----- stderr -----
Uninstalled 1 package in [TIME]
- setuptools-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/setuptools_editable)
- setuptools-editable==0.1.0 (from file://[WORKSPACE]/test/packages/setuptools_editable)
"###);
// Install the editable package with `editable_mode=compat`, by scoped to a different package.
@ -12354,7 +12350,7 @@ fn config_settings_package() -> Result<()> {
----- stderr -----
Resolved 2 packages in [TIME]
Installed 1 package in [TIME]
+ setuptools-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/setuptools_editable)
+ setuptools-editable==0.1.0 (from file://[WORKSPACE]/test/packages/setuptools_editable)
"
);
@ -12852,7 +12848,7 @@ fn pip_install_build_dependencies_respect_locked_versions() -> Result<()> {
fn overlapping_packages_warning() -> Result<()> {
let context = TestContext::new("3.12");
let built_by_uv = context.workspace_root.join("scripts/packages/built-by-uv");
let built_by_uv = context.workspace_root.join("test/packages/built-by-uv");
// Overlaps with `built-by-uv`
let also_build_by_uv = context.temp_dir.child("also-built-by-uv");
@ -12891,7 +12887,7 @@ fn overlapping_packages_warning() -> Result<()> {
Prepared 2 packages in [TIME]
Installed 2 packages in [TIME]
+ also-built-by-uv==0.1.0 (from file://[TEMP_DIR]/also-built-by-uv)
+ built-by-uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/built-by-uv)
+ built-by-uv==0.1.0 (from file://[WORKSPACE]/test/packages/built-by-uv)
"
);
@ -12915,7 +12911,7 @@ fn overlapping_packages_warning() -> Result<()> {
warning: The module `built_by_uv` is provided by more than one package, which causes an install race condition and can result in a broken module. Consider removing your dependency on either `built-by-uv` (v0.1.0) or `also-built-by-uv` (v0.1.0).
Installed 2 packages in [TIME]
+ also-built-by-uv==0.1.0 (from file://[TEMP_DIR]/also-built-by-uv)
+ built-by-uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/built-by-uv)
+ built-by-uv==0.1.0 (from file://[WORKSPACE]/test/packages/built-by-uv)
"
);
@ -12946,7 +12942,7 @@ fn overlapping_packages_warning() -> Result<()> {
----- stderr -----
Uninstalled 1 package in [TIME]
- built-by-uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/built-by-uv)
- built-by-uv==0.1.0 (from file://[WORKSPACE]/test/packages/built-by-uv)
"
);
uv_snapshot!(context.filters(), context.pip_uninstall()
@ -12973,7 +12969,7 @@ fn overlapping_packages_warning() -> Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ built-by-uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/built-by-uv)
+ built-by-uv==0.1.0 (from file://[WORKSPACE]/test/packages/built-by-uv)
"
);
// Currently, we don't warn if we install them one wheel at a time.

View File

@ -287,7 +287,7 @@ fn list_editable() {
// Install the editable package.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r###"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -298,7 +298,7 @@ fn list_editable() {
Installed 4 packages in [TIME]
+ anyio==4.3.0
+ idna==3.6
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
+ sniffio==1.3.1
"###
);
@ -317,7 +317,7 @@ fn list_editable() {
[UNDERLINE]
anyio 4.3.0
idna 3.6
poetry-editable 0.1.0 [WORKSPACE]/scripts/packages/poetry_editable
poetry-editable 0.1.0 [WORKSPACE]/test/packages/poetry_editable
sniffio 1.3.1
----- stderr -----
@ -333,7 +333,7 @@ fn list_editable_only() {
// Install the editable package.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r###"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -344,7 +344,7 @@ fn list_editable_only() {
Installed 4 packages in [TIME]
+ anyio==4.3.0
+ idna==3.6
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
+ sniffio==1.3.1
"###
);
@ -362,7 +362,7 @@ fn list_editable_only() {
----- stdout -----
Package Version Editable project location
[UNDERLINE]
poetry-editable 0.1.0 [WORKSPACE]/scripts/packages/poetry_editable
poetry-editable 0.1.0 [WORKSPACE]/test/packages/poetry_editable
----- stderr -----
"###
@ -408,7 +408,7 @@ fn list_exclude() {
// Install the editable package.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r###"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -419,7 +419,7 @@ fn list_exclude() {
Installed 4 packages in [TIME]
+ anyio==4.3.0
+ idna==3.6
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
+ sniffio==1.3.1
"###
);
@ -440,7 +440,7 @@ fn list_exclude() {
[UNDERLINE]
anyio 4.3.0
idna 3.6
poetry-editable 0.1.0 [WORKSPACE]/scripts/packages/poetry_editable
poetry-editable 0.1.0 [WORKSPACE]/test/packages/poetry_editable
sniffio 1.3.1
----- stderr -----
@ -491,7 +491,7 @@ fn list_format_json() {
// Install the editable package.
uv_snapshot!(context.filters(), context.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r###"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -502,7 +502,7 @@ fn list_format_json() {
Installed 4 packages in [TIME]
+ anyio==4.3.0
+ idna==3.6
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
+ sniffio==1.3.1
"###
);
@ -518,7 +518,7 @@ fn list_format_json() {
success: true
exit_code: 0
----- stdout -----
[{"name":"anyio","version":"4.3.0"},{"name":"idna","version":"3.6"},{"name":"poetry-editable","version":"0.1.0","editable_project_location":"[WORKSPACE]/scripts/packages/poetry_editable"},{"name":"sniffio","version":"1.3.1"}]
[{"name":"anyio","version":"4.3.0"},{"name":"idna","version":"3.6"},{"name":"poetry-editable","version":"0.1.0","editable_project_location":"[WORKSPACE]/test/packages/poetry_editable"},{"name":"sniffio","version":"1.3.1"}]
----- stderr -----
"###
@ -530,7 +530,7 @@ fn list_format_json() {
success: true
exit_code: 0
----- stdout -----
[{"name":"poetry-editable","version":"0.1.0","editable_project_location":"[WORKSPACE]/scripts/packages/poetry_editable"}]
[{"name":"poetry-editable","version":"0.1.0","editable_project_location":"[WORKSPACE]/test/packages/poetry_editable"}]
----- stderr -----
"###
@ -558,7 +558,7 @@ fn list_format_freeze() {
uv_snapshot!(context.filters(), context
.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r###"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -569,7 +569,7 @@ fn list_format_freeze() {
Installed 4 packages in [TIME]
+ anyio==4.3.0
+ idna==3.6
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
+ sniffio==1.3.1
"###
);
@ -724,7 +724,7 @@ fn list_ignores_quiet_flag_format_freeze() {
uv_snapshot!(context.filters(), context
.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/poetry_editable")), @r###"
.arg(context.workspace_root.join("test/packages/poetry_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -735,7 +735,7 @@ fn list_ignores_quiet_flag_format_freeze() {
Installed 4 packages in [TIME]
+ anyio==4.3.0
+ idna==3.6
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/poetry_editable)
+ poetry-editable==0.1.0 (from file://[WORKSPACE]/test/packages/poetry_editable)
+ sniffio==1.3.1
"###
);

View File

@ -384,7 +384,7 @@ fn show_editable() -> Result<()> {
context
.pip_install()
.arg("-e")
.arg("../../scripts/packages/poetry_editable")
.arg("../../test/packages/poetry_editable")
.current_dir(current_dir()?)
.env(
EnvVars::CARGO_TARGET_DIR,
@ -401,7 +401,7 @@ fn show_editable() -> Result<()> {
Name: poetry-editable
Version: 0.1.0
Location: [SITE_PACKAGES]/
Editable project location: [WORKSPACE]/scripts/packages/poetry_editable
Editable project location: [WORKSPACE]/test/packages/poetry_editable
Requires: anyio
Required-by:

View File

@ -776,7 +776,7 @@ fn install_sdist_archive_type_bz2() -> Result<()> {
"bz2 @ {}",
context
.workspace_root
.join("scripts/links/bz2-1.0.0.tar.bz2")
.join("test/links/bz2-1.0.0.tar.bz2")
.display()
))?;
@ -791,7 +791,7 @@ fn install_sdist_archive_type_bz2() -> Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ bz2==1.0.0 (from file://[WORKSPACE]/scripts/links/bz2-1.0.0.tar.bz2)
+ bz2==1.0.0 (from file://[WORKSPACE]/test/links/bz2-1.0.0.tar.bz2)
"###
);
@ -2263,9 +2263,7 @@ fn sync_editable() -> Result<()> {
// Copy into the temporary directory so we can mutate it.
copy_dir_all(
context
.workspace_root
.join("scripts/packages/poetry_editable"),
context.workspace_root.join("test/packages/poetry_editable"),
&poetry_editable,
)?;
@ -2429,9 +2427,7 @@ fn sync_editable_and_registry() -> Result<()> {
// Copy the black test editable into the "current" directory
copy_dir_all(
context
.workspace_root
.join("scripts/packages/black_editable"),
context.workspace_root.join("test/packages/black_editable"),
context.temp_dir.join("black_editable"),
)?;
@ -2544,9 +2540,7 @@ fn sync_editable_and_local() -> Result<()> {
// Copy the black test editable into the "current" directory
copy_dir_all(
context
.workspace_root
.join("scripts/packages/black_editable"),
context.workspace_root.join("test/packages/black_editable"),
context.temp_dir.join("black_editable"),
)?;
@ -2687,7 +2681,7 @@ fn find_links() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_sync()
.arg("requirements.txt")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -2720,7 +2714,7 @@ fn find_links_no_index_match() -> Result<()> {
.arg("requirements.txt")
.arg("--no-index")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -2750,7 +2744,7 @@ fn find_links_offline_match() -> Result<()> {
.arg("requirements.txt")
.arg("--offline")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -2781,7 +2775,7 @@ fn find_links_offline_no_match() -> Result<()> {
.arg("requirements.txt")
.arg("--offline")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: false
exit_code: 1
----- stdout -----
@ -2811,7 +2805,7 @@ fn find_links_wheel_cache() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_sync()
.arg("requirements.txt")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -2829,7 +2823,7 @@ fn find_links_wheel_cache() -> Result<()> {
.arg("requirements.txt")
.arg("--reinstall")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -2861,7 +2855,7 @@ fn find_links_source_cache() -> Result<()> {
uv_snapshot!(context.filters(), context.pip_sync()
.arg("requirements.txt")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -2879,7 +2873,7 @@ fn find_links_source_cache() -> Result<()> {
.arg("requirements.txt")
.arg("--reinstall")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/")), @r###"
.arg(context.workspace_root.join("test/links/")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -4045,7 +4039,7 @@ fn require_hashes_source_tree() -> Result<()> {
"black @ {} --hash=sha256:f7ed51751b2c2add651e5747c891b47e26d2a21be5d32d9311dfe9692f3e5d7a",
context
.workspace_root
.join("scripts/packages/black_editable")
.join("test/packages/black_editable")
.display()
))?;
@ -4057,8 +4051,8 @@ fn require_hashes_source_tree() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to build `black @ file://[WORKSPACE]/scripts/packages/black_editable`
Hash-checking is not supported for local directories: `black @ file://[WORKSPACE]/scripts/packages/black_editable`
× Failed to build `black @ file://[WORKSPACE]/test/packages/black_editable`
Hash-checking is not supported for local directories: `black @ file://[WORKSPACE]/test/packages/black_editable`
"###
);
@ -4149,7 +4143,7 @@ fn require_hashes_wheel_path() -> Result<()> {
"tqdm @ {} --hash=sha256:a34996d4bd5abb2336e14ff0a2d22b92cfd0f0ed344e6883041ce01953276a13",
context
.workspace_root
.join("scripts/links/tqdm-1000.0.0-py3-none-any.whl")
.join("test/links/tqdm-1000.0.0-py3-none-any.whl")
.display()
))?;
@ -4164,7 +4158,7 @@ fn require_hashes_wheel_path() -> Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ tqdm==1000.0.0 (from file://[WORKSPACE]/scripts/links/tqdm-1000.0.0-py3-none-any.whl)
+ tqdm==1000.0.0 (from file://[WORKSPACE]/test/links/tqdm-1000.0.0-py3-none-any.whl)
"###
);
@ -4181,7 +4175,7 @@ fn require_hashes_wheel_path_mismatch() -> Result<()> {
"tqdm @ {} --hash=sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f",
context
.workspace_root
.join("scripts/links/tqdm-1000.0.0-py3-none-any.whl")
.join("test/links/tqdm-1000.0.0-py3-none-any.whl")
.display()
))?;
@ -4194,8 +4188,8 @@ fn require_hashes_wheel_path_mismatch() -> Result<()> {
----- stderr -----
Resolved 1 package in [TIME]
× Failed to read `tqdm @ file://[WORKSPACE]/scripts/links/tqdm-1000.0.0-py3-none-any.whl`
Hash mismatch for `tqdm @ file://[WORKSPACE]/scripts/links/tqdm-1000.0.0-py3-none-any.whl`
× Failed to read `tqdm @ file://[WORKSPACE]/test/links/tqdm-1000.0.0-py3-none-any.whl`
Hash mismatch for `tqdm @ file://[WORKSPACE]/test/links/tqdm-1000.0.0-py3-none-any.whl`
Expected:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
@ -4218,7 +4212,7 @@ fn require_hashes_source_path() -> Result<()> {
"tqdm @ {} --hash=sha256:89fa05cffa7f457658373b85de302d24d0c205ceda2819a8739e324b75e9430b",
context
.workspace_root
.join("scripts/links/tqdm-999.0.0.tar.gz")
.join("test/links/tqdm-999.0.0.tar.gz")
.display()
))?;
@ -4233,7 +4227,7 @@ fn require_hashes_source_path() -> Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ tqdm==999.0.0 (from file://[WORKSPACE]/scripts/links/tqdm-999.0.0.tar.gz)
+ tqdm==999.0.0 (from file://[WORKSPACE]/test/links/tqdm-999.0.0.tar.gz)
"###
);
@ -4250,7 +4244,7 @@ fn require_hashes_source_path_mismatch() -> Result<()> {
"tqdm @ {} --hash=sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f",
context
.workspace_root
.join("scripts/links/tqdm-999.0.0.tar.gz")
.join("test/links/tqdm-999.0.0.tar.gz")
.display()
))?;
@ -4262,8 +4256,8 @@ fn require_hashes_source_path_mismatch() -> Result<()> {
----- stdout -----
----- stderr -----
× Failed to build `tqdm @ file://[WORKSPACE]/scripts/links/tqdm-999.0.0.tar.gz`
Hash mismatch for `tqdm @ file://[WORKSPACE]/scripts/links/tqdm-999.0.0.tar.gz`
× Failed to build `tqdm @ file://[WORKSPACE]/test/links/tqdm-999.0.0.tar.gz`
Hash mismatch for `tqdm @ file://[WORKSPACE]/test/links/tqdm-999.0.0.tar.gz`
Expected:
sha256:cfdb2b588b9fc25ede96d8db56ed50848b0b649dca3dd1df0b11f683bb9e0b5f
@ -4312,7 +4306,7 @@ fn require_hashes_editable() -> Result<()> {
let requirements_txt = context.temp_dir.child("requirements.txt");
requirements_txt.write_str(&indoc::formatdoc! {r"
-e file://{workspace_root}/scripts/packages/black_editable[d]
-e file://{workspace_root}/test/packages/black_editable[d]
",
workspace_root = context.workspace_root.simplified_display(),
})?;
@ -4326,7 +4320,7 @@ fn require_hashes_editable() -> Result<()> {
----- stdout -----
----- stderr -----
error: In `--require-hashes` mode, all requirements must have a hash, but none were provided for: file://[WORKSPACE]/scripts/packages/black_editable[d]
error: In `--require-hashes` mode, all requirements must have a hash, but none were provided for: file://[WORKSPACE]/test/packages/black_editable[d]
"###
);

View File

@ -827,7 +827,7 @@ fn with_editable() {
uv_snapshot!(context.filters(), context
.pip_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/hatchling_editable")), @r###"
.arg(context.workspace_root.join("test/packages/hatchling_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
@ -836,7 +836,7 @@ fn with_editable() {
Resolved 2 packages in [TIME]
Prepared 2 packages in [TIME]
Installed 2 packages in [TIME]
+ hatchling-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/hatchling_editable)
+ hatchling-editable==0.1.0 (from file://[WORKSPACE]/test/packages/hatchling_editable)
+ iniconfig==2.0.1.dev6+g9cae431 (from git+https://github.com/pytest-dev/iniconfig@9cae43103df70bac6fde7b9f35ad11a9f1be0cb4)
"###
);

View File

@ -176,7 +176,7 @@ fn uninstall_editable_by_name() -> Result<()> {
"-e {}",
context
.workspace_root
.join("scripts/packages/flit_editable")
.join("test/packages/flit_editable")
.as_os_str()
.to_str()
.expect("Path is valid unicode")
@ -198,7 +198,7 @@ fn uninstall_editable_by_name() -> Result<()> {
----- stderr -----
Uninstalled 1 package in [TIME]
- flit-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/flit_editable)
- flit-editable==0.1.0 (from file://[WORKSPACE]/test/packages/flit_editable)
"###
);
@ -216,7 +216,7 @@ fn uninstall_by_path() -> Result<()> {
requirements_txt.write_str(
context
.workspace_root
.join("scripts/packages/flit_editable")
.join("test/packages/flit_editable")
.as_os_str()
.to_str()
.expect("Path is valid unicode"),
@ -232,14 +232,14 @@ fn uninstall_by_path() -> Result<()> {
// Uninstall the editable by path.
uv_snapshot!(context.filters(), context.pip_uninstall()
.arg(context.workspace_root.join("scripts/packages/flit_editable")), @r###"
.arg(context.workspace_root.join("test/packages/flit_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
----- stderr -----
Uninstalled 1 package in [TIME]
- flit-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/flit_editable)
- flit-editable==0.1.0 (from file://[WORKSPACE]/test/packages/flit_editable)
"###
);
@ -257,7 +257,7 @@ fn uninstall_duplicate_by_path() -> Result<()> {
requirements_txt.write_str(
context
.workspace_root
.join("scripts/packages/flit_editable")
.join("test/packages/flit_editable")
.as_os_str()
.to_str()
.expect("Path is valid unicode"),
@ -274,14 +274,14 @@ fn uninstall_duplicate_by_path() -> Result<()> {
// Uninstall the editable by both path and name.
uv_snapshot!(context.filters(), context.pip_uninstall()
.arg("flit-editable")
.arg(context.workspace_root.join("scripts/packages/flit_editable")), @r###"
.arg(context.workspace_root.join("test/packages/flit_editable")), @r###"
success: true
exit_code: 0
----- stdout -----
----- stderr -----
Uninstalled 1 package in [TIME]
- flit-editable==0.1.0 (from file://[WORKSPACE]/scripts/packages/flit_editable)
- flit-editable==0.1.0 (from file://[WORKSPACE]/test/packages/flit_editable)
"###
);

View File

@ -23,7 +23,7 @@ fn username_password_no_longer_supported() {
.arg("dummy")
.arg("--publish-url")
.arg("https://test.pypi.org/legacy/")
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl"), @r###"
.arg("../../test/links/ok-1.0.0-py3-none-any.whl"), @r###"
success: false
exit_code: 2
----- stdout -----
@ -31,7 +31,7 @@ fn username_password_no_longer_supported() {
----- stderr -----
Publishing 1 file to https://test.pypi.org/legacy/
Uploading ok-1.0.0-py3-none-any.whl ([SIZE])
error: Failed to publish `../../scripts/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/
error: Failed to publish `../../test/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/
Caused by: Upload failed with status code 403 Forbidden. Server says: 403 Username/Password authentication is no longer supported. Migrate to API Tokens or Trusted Publishers instead. See https://test.pypi.org/help/#apitoken and https://test.pypi.org/help/#trusted-publishers
"###
);
@ -48,7 +48,7 @@ fn invalid_token() {
.arg("dummy")
.arg("--publish-url")
.arg("https://test.pypi.org/legacy/")
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl"), @r###"
.arg("../../test/links/ok-1.0.0-py3-none-any.whl"), @r###"
success: false
exit_code: 2
----- stdout -----
@ -56,7 +56,7 @@ fn invalid_token() {
----- stderr -----
Publishing 1 file to https://test.pypi.org/legacy/
Uploading ok-1.0.0-py3-none-any.whl ([SIZE])
error: Failed to publish `../../scripts/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/
error: Failed to publish `../../test/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/
Caused by: Upload failed with status code 403 Forbidden. Server says: 403 Invalid or non-existent authentication information. See https://test.pypi.org/help/#invalid-auth for more information.
"###
);
@ -76,7 +76,7 @@ fn mixed_credentials() {
.arg("https://test.pypi.org/legacy/")
.arg("--trusted-publishing")
.arg("always")
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl")
.arg("../../test/links/ok-1.0.0-py3-none-any.whl")
// Emulate CI
.env(EnvVars::GITHUB_ACTIONS, "true"), @r###"
success: false
@ -100,7 +100,7 @@ fn missing_trusted_publishing_permission() {
.arg("https://test.pypi.org/legacy/")
.arg("--trusted-publishing")
.arg("always")
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl")
.arg("../../test/links/ok-1.0.0-py3-none-any.whl")
// Emulate CI
.env(EnvVars::GITHUB_ACTIONS, "true"), @r"
success: false
@ -126,7 +126,7 @@ fn no_credentials() {
uv_snapshot!(context.filters(), context.publish()
.arg("--publish-url")
.arg("https://test.pypi.org/legacy/")
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl")
.arg("../../test/links/ok-1.0.0-py3-none-any.whl")
// Emulate CI
.env(EnvVars::GITHUB_ACTIONS, "true"), @r"
success: false
@ -141,7 +141,7 @@ fn no_credentials() {
Caused by: GitHub Actions detection error
Caused by: insufficient permissions: missing ACTIONS_ID_TOKEN_REQUEST_URL
Uploading ok-1.0.0-py3-none-any.whl ([SIZE])
error: Failed to publish `../../scripts/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/
error: Failed to publish `../../test/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/
Caused by: Failed to send POST request
Caused by: Missing credentials for https://test.pypi.org/legacy/
"
@ -211,7 +211,7 @@ fn check_keyring_behaviours() {
.arg(
context
.workspace_root
.join("scripts")
.join("test")
.join("packages")
.join("keyring_test_plugin"),
)
@ -230,7 +230,7 @@ fn check_keyring_behaviours() {
.arg("https://test.pypi.org/simple/")
.arg("--publish-url")
.arg("https://test.pypi.org/legacy/?ok")
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl")
.arg("../../test/links/ok-1.0.0-py3-none-any.whl")
.env(EnvVars::PATH, venv_bin_path(&context.venv)), @r###"
success: false
exit_code: 2
@ -239,7 +239,7 @@ fn check_keyring_behaviours() {
----- stderr -----
Publishing 1 file to https://test.pypi.org/legacy/?ok
Uploading ok-1.0.0-py3-none-any.whl ([SIZE])
error: Failed to publish `../../scripts/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/?ok
error: Failed to publish `../../test/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/?ok
Caused by: Upload failed with status code 403 Forbidden. Server says: 403 Username/Password authentication is no longer supported. Migrate to API Tokens or Trusted Publishers instead. See https://test.pypi.org/help/#apitoken and https://test.pypi.org/help/#trusted-publishers
"###
);
@ -254,7 +254,7 @@ fn check_keyring_behaviours() {
.arg("subprocess")
.arg("--publish-url")
.arg("https://test.pypi.org/legacy/?ok")
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl")
.arg("../../test/links/ok-1.0.0-py3-none-any.whl")
.env(EnvVars::PATH, venv_bin_path(&context.venv)), @r###"
success: false
exit_code: 2
@ -264,7 +264,7 @@ fn check_keyring_behaviours() {
Publishing 1 file to https://test.pypi.org/legacy/?ok
warning: Using `--keyring-provider` with a password or token and no check URL has no effect
Uploading ok-1.0.0-py3-none-any.whl ([SIZE])
error: Failed to publish `../../scripts/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/?ok
error: Failed to publish `../../test/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/?ok
Caused by: Upload failed with status code 403 Forbidden. Server says: 403 Username/Password authentication is no longer supported. Migrate to API Tokens or Trusted Publishers instead. See https://test.pypi.org/help/#apitoken and https://test.pypi.org/help/#trusted-publishers
"###
);
@ -280,7 +280,7 @@ fn check_keyring_behaviours() {
.arg("https://test.pypi.org/simple/")
.arg("--publish-url")
.arg("https://test.pypi.org/legacy/?ok")
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl")
.arg("../../test/links/ok-1.0.0-py3-none-any.whl")
.env(EnvVars::PATH, venv_bin_path(&context.venv)), @r"
success: false
exit_code: 2
@ -294,7 +294,7 @@ fn check_keyring_behaviours() {
Uploading ok-1.0.0-py3-none-any.whl ([SIZE])
Keyring request for dummy@https://test.pypi.org/legacy/?ok
Keyring request for dummy@test.pypi.org
error: Failed to publish `../../scripts/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/?ok
error: Failed to publish `../../test/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/?ok
Caused by: Upload failed with status code 403 Forbidden. Server says: 403 Username/Password authentication is no longer supported. Migrate to API Tokens or Trusted Publishers instead. See https://test.pypi.org/help/#apitoken and https://test.pypi.org/help/#trusted-publishers
"
);
@ -308,7 +308,7 @@ fn check_keyring_behaviours() {
.arg("subprocess")
.arg("--publish-url")
.arg("https://test.pypi.org/legacy/?ok")
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl")
.arg("../../test/links/ok-1.0.0-py3-none-any.whl")
.env(EnvVars::KEYRING_TEST_CREDENTIALS, r#"{"https://test.pypi.org/legacy/?ok": {"dummy": "dummy"}}"#)
.env(EnvVars::PATH, venv_bin_path(&context.venv)), @r"
success: false
@ -319,7 +319,7 @@ fn check_keyring_behaviours() {
Publishing 1 file to https://test.pypi.org/legacy/?ok
Keyring request for dummy@https://test.pypi.org/legacy/?ok
Uploading ok-1.0.0-py3-none-any.whl ([SIZE])
error: Failed to publish `../../scripts/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/?ok
error: Failed to publish `../../test/links/ok-1.0.0-py3-none-any.whl` to https://test.pypi.org/legacy/?ok
Caused by: Upload failed with status code 403 Forbidden. Server says: 403 Username/Password authentication is no longer supported. Migrate to API Tokens or Trusted Publishers instead. See https://test.pypi.org/help/#apitoken and https://test.pypi.org/help/#trusted-publishers
"
);
@ -351,7 +351,7 @@ fn invalid_index() {
let ok_wheel = current_dir()
.unwrap()
.join("../../scripts/links/ok-1.0.0-py3-none-any.whl");
.join("../../test/links/ok-1.0.0-py3-none-any.whl");
// No such index
uv_snapshot!(context.filters(), context.publish()
@ -537,7 +537,7 @@ async fn gitlab_trusted_publishing_pypi_id_token() {
.arg("always")
.arg("--publish-url")
.arg(format!("{}/upload", server.uri()))
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl")
.arg("../../test/links/ok-1.0.0-py3-none-any.whl")
.env(EnvVars::GITLAB_CI, "true")
.env_remove(EnvVars::GITHUB_ACTIONS)
.env(EnvVars::PYPI_ID_TOKEN, "gitlab-oidc-jwt"), @r"
@ -591,7 +591,7 @@ async fn gitlab_trusted_publishing_testpypi_id_token() {
.arg("always")
.arg("--publish-url")
.arg(format!("{}/upload", server.uri()))
.arg("../../scripts/links/ok-1.0.0-py3-none-any.whl")
.arg("../../test/links/ok-1.0.0-py3-none-any.whl")
// Emulate GitLab CI with TESTPYPI_ID_TOKEN present
.env(EnvVars::GITLAB_CI, "true")
.env_remove(EnvVars::GITHUB_ACTIONS)

View File

@ -43,7 +43,7 @@ fn find_uv_bin_venv() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -52,7 +52,7 @@ fn find_uv_bin_venv() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -83,7 +83,7 @@ fn find_uv_bin_target() {
// Install in a target directory
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv"))
.arg(context.workspace_root.join("test/packages/fake-uv"))
.arg("--target")
.arg("target"), @r"
success: true
@ -95,7 +95,7 @@ fn find_uv_bin_target() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -129,7 +129,7 @@ fn find_uv_bin_prefix() {
let prefix = context.temp_dir.child("prefix");
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv"))
.arg(context.workspace_root.join("test/packages/fake-uv"))
.arg("--prefix")
.arg(prefix.path()), @r"
success: true
@ -141,7 +141,7 @@ fn find_uv_bin_prefix() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -183,7 +183,7 @@ fn find_uv_bin_base_prefix() {
uv_snapshot!(context.filters(), context.pip_install()
.arg("--python")
.arg(base_venv.path())
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -193,7 +193,7 @@ fn find_uv_bin_base_prefix() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -239,7 +239,7 @@ fn find_uv_bin_in_ephemeral_environment() -> anyhow::Result<()> {
// We should find the binary in an ephemeral `--with` environment
uv_snapshot!(context.filters(), context.run()
.arg("--with")
.arg(context.workspace_root.join("scripts/packages/fake-uv"))
.arg(context.workspace_root.join("test/packages/fake-uv"))
.arg("python")
.arg("-c")
.arg(TEST_SCRIPT), @r"
@ -254,7 +254,7 @@ fn find_uv_bin_in_ephemeral_environment() -> anyhow::Result<()> {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -284,7 +284,7 @@ fn find_uv_bin_in_parent_of_ephemeral_environment() -> anyhow::Result<()> {
[tool.uv.sources]
uv = {{ path = "{}" }}
"#,
context.workspace_root.join("scripts/packages/fake-uv").portable_display()
context.workspace_root.join("test/packages/fake-uv").portable_display()
})?;
// When running in an ephemeral environment, we should find the binary in the project
@ -305,7 +305,7 @@ fn find_uv_bin_in_parent_of_ephemeral_environment() -> anyhow::Result<()> {
Resolved 2 packages in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
Resolved 3 packages in [TIME]
Prepared 3 packages in [TIME]
Installed 3 packages in [TIME]
@ -346,7 +346,7 @@ fn find_uv_bin_user_bin() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -355,7 +355,7 @@ fn find_uv_bin_user_bin() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -430,7 +430,7 @@ fn find_uv_bin_error_message() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -439,7 +439,7 @@ fn find_uv_bin_error_message() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -486,7 +486,7 @@ fn find_uv_bin_py38() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -495,7 +495,7 @@ fn find_uv_bin_py38() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -526,7 +526,7 @@ fn find_uv_bin_py39() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -535,7 +535,7 @@ fn find_uv_bin_py39() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -566,7 +566,7 @@ fn find_uv_bin_py310() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -575,7 +575,7 @@ fn find_uv_bin_py310() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -606,7 +606,7 @@ fn find_uv_bin_py311() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -615,7 +615,7 @@ fn find_uv_bin_py311() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -646,7 +646,7 @@ fn find_uv_bin_py312() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -655,7 +655,7 @@ fn find_uv_bin_py312() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -686,7 +686,7 @@ fn find_uv_bin_py313() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -695,7 +695,7 @@ fn find_uv_bin_py313() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);
@ -726,7 +726,7 @@ fn find_uv_bin_py314() {
// Install in a virtual environment
uv_snapshot!(context.filters(), context.pip_install()
.arg(context.workspace_root.join("scripts/packages/fake-uv")), @r"
.arg(context.workspace_root.join("test/packages/fake-uv")), @r"
success: true
exit_code: 0
----- stdout -----
@ -735,7 +735,7 @@ fn find_uv_bin_py314() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ uv==0.1.0 (from file://[WORKSPACE]/scripts/packages/fake-uv)
+ uv==0.1.0 (from file://[WORKSPACE]/test/packages/fake-uv)
"
);

View File

@ -1813,15 +1813,13 @@ fn run_with_editable() -> Result<()> {
let anyio_local = context.temp_dir.child("src").child("anyio_local");
copy_dir_all(
context.workspace_root.join("scripts/packages/anyio_local"),
context.workspace_root.join("test/packages/anyio_local"),
&anyio_local,
)?;
let black_editable = context.temp_dir.child("src").child("black_editable");
copy_dir_all(
context
.workspace_root
.join("scripts/packages/black_editable"),
context.workspace_root.join("test/packages/black_editable"),
&black_editable,
)?;

View File

@ -2304,7 +2304,7 @@ fn sync_extra_build_dependencies_setuptools() -> Result<()> {
fn sync_extra_build_dependencies_sources() -> Result<()> {
let context = TestContext::new("3.12").with_filtered_counts();
let anyio_local = context.workspace_root.join("scripts/packages/anyio_local");
let anyio_local = context.workspace_root.join("test/packages/anyio_local");
// Write a test package that arbitrarily requires `anyio` at a specific _path_ at build time
let child = context.temp_dir.child("child");
@ -2536,7 +2536,7 @@ fn sync_extra_build_dependencies_index() -> Result<()> {
fn sync_extra_build_dependencies_sources_from_child() -> Result<()> {
let context = TestContext::new("3.12").with_filtered_counts();
let anyio_local = context.workspace_root.join("scripts/packages/anyio_local");
let anyio_local = context.workspace_root.join("test/packages/anyio_local");
// Write a test package that arbitrarily requires `anyio` at a specific _path_ at build time
let child = context.temp_dir.child("child");
@ -2882,7 +2882,7 @@ fn sync_relative_wheel() -> Result<()> {
context.temp_dir.child("wheels").create_dir_all()?;
fs_err::copy(
"../../scripts/links/ok-1.0.0-py3-none-any.whl",
"../../test/links/ok-1.0.0-py3-none-any.whl",
context.temp_dir.join("wheels/ok-1.0.0-py3-none-any.whl"),
)?;
@ -5856,7 +5856,7 @@ fn sync_extra_build_dependencies_script() -> Result<()> {
#[test]
fn sync_extra_build_dependencies_script_sources() -> Result<()> {
let context = TestContext::new("3.12").with_filtered_counts();
let anyio_local = context.workspace_root.join("scripts/packages/anyio_local");
let anyio_local = context.workspace_root.join("test/packages/anyio_local");
// Write a test package that arbitrarily requires `anyio` at a specific _path_ at build time
let child = context.temp_dir.child("child");
@ -10263,7 +10263,7 @@ fn sync_build_tag() -> Result<()> {
// Populate the `--find-links` entries.
fs_err::create_dir_all(context.temp_dir.join("links"))?;
for entry in fs_err::read_dir(context.workspace_root.join("scripts/links"))? {
for entry in fs_err::read_dir(context.workspace_root.join("test/links"))? {
let entry = entry?;
let path = entry.path();
if path
@ -10538,7 +10538,7 @@ fn find_links_relative_in_config_works_from_subdir() -> Result<()> {
let wheel_src = context
.workspace_root
.join("scripts/links/ok-1.0.0-py3-none-any.whl");
.join("test/links/ok-1.0.0-py3-none-any.whl");
let wheel_dst = packages.child("ok-1.0.0-py3-none-any.whl");
fs_err::copy(&wheel_src, &wheel_dst)?;

View File

@ -295,7 +295,7 @@ fn tool_install_with_editable() -> Result<()> {
let bin_dir = context.temp_dir.child("bin");
let anyio_local = context.temp_dir.child("src").child("anyio_local");
copy_dir_all(
context.workspace_root.join("scripts/packages/anyio_local"),
context.workspace_root.join("test/packages/anyio_local"),
&anyio_local,
)?;
@ -597,7 +597,7 @@ fn tool_install_editable() {
// Install `black` as an editable package.
uv_snapshot!(context.filters(), context.tool_install()
.arg("-e")
.arg(context.workspace_root.join("scripts/packages/black_editable"))
.arg(context.workspace_root.join("test/packages/black_editable"))
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str())
.env(EnvVars::PATH, bin_dir.as_os_str()), @r###"
@ -609,7 +609,7 @@ fn tool_install_editable() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
Installed 1 executable: black
"###);
@ -649,7 +649,7 @@ fn tool_install_editable() {
// We should have a tool receipt
assert_snapshot!(fs_err::read_to_string(tool_dir.join("black").join("uv-receipt.toml")).unwrap(), @r###"
[tool]
requirements = [{ name = "black", editable = "[WORKSPACE]/scripts/packages/black_editable" }]
requirements = [{ name = "black", editable = "[WORKSPACE]/test/packages/black_editable" }]
entrypoints = [
{ name = "black", install-path = "[TEMP_DIR]/bin/black", from = "black" },
]
@ -717,7 +717,7 @@ fn tool_install_editable() {
Prepared 6 packages in [TIME]
Uninstalled 1 package in [TIME]
Installed 6 packages in [TIME]
- black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
- black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
+ black==24.2.0
+ click==8.1.7
+ mypy-extensions==1.0.0
@ -898,7 +898,7 @@ fn tool_install_editable_from() {
.arg("black")
.arg("-e")
.arg("--from")
.arg(context.workspace_root.join("scripts/packages/black_editable"))
.arg(context.workspace_root.join("test/packages/black_editable"))
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str())
.env(EnvVars::PATH, bin_dir.as_os_str()), @r###"
@ -910,7 +910,7 @@ fn tool_install_editable_from() {
Resolved 1 package in [TIME]
Prepared 1 package in [TIME]
Installed 1 package in [TIME]
+ black==0.1.0 (from file://[WORKSPACE]/scripts/packages/black_editable)
+ black==0.1.0 (from file://[WORKSPACE]/test/packages/black_editable)
Installed 1 executable: black
"###);
@ -950,7 +950,7 @@ fn tool_install_editable_from() {
// We should have a tool receipt
assert_snapshot!(fs_err::read_to_string(tool_dir.join("black").join("uv-receipt.toml")).unwrap(), @r###"
[tool]
requirements = [{ name = "black", editable = "[WORKSPACE]/scripts/packages/black_editable" }]
requirements = [{ name = "black", editable = "[WORKSPACE]/test/packages/black_editable" }]
entrypoints = [
{ name = "black", install-path = "[TEMP_DIR]/bin/black", from = "black" },
]
@ -4394,7 +4394,7 @@ fn tool_install_find_links() {
// Run with `--find-links`.
uv_snapshot!(context.filters(), context.tool_run()
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/"))
.arg(context.workspace_root.join("test/links/"))
.arg("basic-app")
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r"
@ -4413,7 +4413,7 @@ fn tool_install_find_links() {
// Install with `--find-links`.
uv_snapshot!(context.filters(), context.tool_install()
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/"))
.arg(context.workspace_root.join("test/links/"))
.arg("basic-app")
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str())
@ -4464,7 +4464,7 @@ fn tool_install_find_links() {
uv_snapshot!(context.filters(), context.tool_run()
.arg("--offline")
.arg("--find-links")
.arg(context.workspace_root.join("scripts/links/"))
.arg(context.workspace_root.join("test/links/"))
.arg("basic-app")
.env(EnvVars::UV_TOOL_DIR, tool_dir.as_os_str())
.env(EnvVars::XDG_BIN_HOME, bin_dir.as_os_str()), @r"

View File

@ -1381,15 +1381,13 @@ fn tool_run_csv_with_shorthand() -> anyhow::Result<()> {
let anyio_local = context.temp_dir.child("src").child("anyio_local");
copy_dir_all(
context.workspace_root.join("scripts/packages/anyio_local"),
context.workspace_root.join("test/packages/anyio_local"),
&anyio_local,
)?;
let black_editable = context.temp_dir.child("src").child("black_editable");
copy_dir_all(
context
.workspace_root
.join("scripts/packages/black_editable"),
context.workspace_root.join("test/packages/black_editable"),
&black_editable,
)?;
@ -1445,15 +1443,13 @@ fn tool_run_csv_with() -> anyhow::Result<()> {
let anyio_local = context.temp_dir.child("src").child("anyio_local");
copy_dir_all(
context.workspace_root.join("scripts/packages/anyio_local"),
context.workspace_root.join("test/packages/anyio_local"),
&anyio_local,
)?;
let black_editable = context.temp_dir.child("src").child("black_editable");
copy_dir_all(
context
.workspace_root
.join("scripts/packages/black_editable"),
context.workspace_root.join("test/packages/black_editable"),
&black_editable,
)?;
@ -1509,15 +1505,13 @@ fn tool_run_csv_with() -> anyhow::Result<()> {
let anyio_local = context.temp_dir.child("src").child("anyio_local");
copy_dir_all(
context.workspace_root.join("scripts/packages/anyio_local"),
context.workspace_root.join("test/packages/anyio_local"),
&anyio_local,
)?;
let black_editable = context.temp_dir.child("src").child("black_editable");
copy_dir_all(
context
.workspace_root
.join("scripts/packages/black_editable"),
context.workspace_root.join("test/packages/black_editable"),
&black_editable,
)?;
@ -1573,15 +1567,13 @@ fn tool_run_repeated_with() -> anyhow::Result<()> {
let anyio_local = context.temp_dir.child("src").child("anyio_local");
copy_dir_all(
context.workspace_root.join("scripts/packages/anyio_local"),
context.workspace_root.join("test/packages/anyio_local"),
&anyio_local,
)?;
let black_editable = context.temp_dir.child("src").child("black_editable");
copy_dir_all(
context
.workspace_root
.join("scripts/packages/black_editable"),
context.workspace_root.join("test/packages/black_editable"),
&black_editable,
)?;
@ -1639,15 +1631,13 @@ fn tool_run_repeated_with() -> anyhow::Result<()> {
let anyio_local = context.temp_dir.child("src").child("anyio_local");
copy_dir_all(
context.workspace_root.join("scripts/packages/anyio_local"),
context.workspace_root.join("test/packages/anyio_local"),
&anyio_local,
)?;
let black_editable = context.temp_dir.child("src").child("black_editable");
copy_dir_all(
context
.workspace_root
.join("scripts/packages/black_editable"),
context.workspace_root.join("test/packages/black_editable"),
&black_editable,
)?;
@ -1704,15 +1694,13 @@ fn tool_run_with_editable() -> anyhow::Result<()> {
let anyio_local = context.temp_dir.child("src").child("anyio_local");
copy_dir_all(
context.workspace_root.join("scripts/packages/anyio_local"),
context.workspace_root.join("test/packages/anyio_local"),
&anyio_local,
)?;
let black_editable = context.temp_dir.child("src").child("black_editable");
copy_dir_all(
context
.workspace_root
.join("scripts/packages/black_editable"),
context.workspace_root.join("test/packages/black_editable"),
&black_editable,
)?;
@ -3419,7 +3407,7 @@ fn tool_run_windows_dotted_package_name() -> anyhow::Result<()> {
let bin_dir = context.temp_dir.child("bin");
// Copy the test package to a temporary location
let workspace_packages = context.workspace_root.join("scripts").join("packages");
let workspace_packages = context.workspace_root.join("test").join("packages");
let test_package_source = workspace_packages.join("package.name.with.dots");
let test_package_dest = context.temp_dir.child("package.name.with.dots");

View File

@ -19,7 +19,7 @@ fn workspaces_dir() -> PathBuf {
.unwrap()
.parent()
.unwrap()
.join("scripts")
.join("test")
.join("workspaces")
}

View File

@ -69,7 +69,7 @@ fn workspace_metadata_from_member() -> Result<()> {
let albatross_workspace = context
.workspace_root
.join("scripts/workspaces/albatross-root-workspace");
.join("test/workspaces/albatross-root-workspace");
copy_dir_ignore(albatross_workspace, &workspace)?;

View File

@ -46,7 +46,7 @@ fn workspace_list_root_workspace() -> Result<()> {
copy_dir_ignore(
context
.workspace_root
.join("scripts/workspaces/albatross-root-workspace"),
.join("test/workspaces/albatross-root-workspace"),
&workspace,
)?;
@ -75,7 +75,7 @@ fn workspace_list_virtual_workspace() -> Result<()> {
copy_dir_ignore(
context
.workspace_root
.join("scripts/workspaces/albatross-virtual-workspace"),
.join("test/workspaces/albatross-virtual-workspace"),
&workspace,
)?;
@ -104,7 +104,7 @@ fn workspace_list_from_member() -> Result<()> {
copy_dir_ignore(
context
.workspace_root
.join("scripts/workspaces/albatross-root-workspace"),
.join("test/workspaces/albatross-root-workspace"),
&workspace,
)?;
@ -208,7 +208,7 @@ fn workspace_list_with_excluded() -> Result<()> {
copy_dir_ignore(
context
.workspace_root
.join("scripts/workspaces/albatross-project-in-excluded"),
.join("test/workspaces/albatross-project-in-excluded"),
&workspace,
)?;

View File

@ -46,7 +46,7 @@ fn workspace_metadata_root_workspace() -> Result<()> {
copy_dir_ignore(
context
.workspace_root
.join("scripts/workspaces/albatross-root-workspace"),
.join("test/workspaces/albatross-root-workspace"),
&workspace,
)?;
@ -92,7 +92,7 @@ fn workspace_metadata_virtual_workspace() -> Result<()> {
copy_dir_ignore(
context
.workspace_root
.join("scripts/workspaces/albatross-virtual-workspace"),
.join("test/workspaces/albatross-virtual-workspace"),
&workspace,
)?;
@ -138,7 +138,7 @@ fn workspace_metadata_from_member() -> Result<()> {
copy_dir_ignore(
context
.workspace_root
.join("scripts/workspaces/albatross-root-workspace"),
.join("test/workspaces/albatross-root-workspace"),
&workspace,
)?;
@ -274,7 +274,7 @@ fn workspace_metadata_with_excluded() -> Result<()> {
copy_dir_ignore(
context
.workspace_root
.join("scripts/workspaces/albatross-project-in-excluded"),
.join("test/workspaces/albatross-project-in-excluded"),
&workspace,
)?;

View File

@ -2,9 +2,9 @@ target-version = "py312"
exclude = [
"crates/uv-virtualenv/src/activator/activate_this.py",
"crates/uv-virtualenv/src/_virtualenv.py",
"ecosystem",
"scripts/workspaces",
"scripts/packages",
"test/ecosystem",
"test/workspaces",
"test/packages",
]
[lint]

Some files were not shown because too many files have changed in this diff Show More