mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 13:25:00 +00:00
![]() This PR refactors the command creation in the test suite to remove the duplication. **1)** We add the same set of test stubbing args to almost any uv invocation in the tests: ```rust command .arg("--cache-dir") .arg(self.cache_dir.path()) .env("VIRTUAL_ENV", self.venv.as_os_str()) .env("UV_NO_WRAP", "1") .env("HOME", self.home_dir.as_os_str()) .env("UV_TOOLCHAIN_DIR", "") .env("UV_TEST_PYTHON_PATH", &self.python_path()) .current_dir(self.temp_dir.path()); if cfg!(all(windows, debug_assertions)) { // TODO(konstin): Reduce stack usage in debug mode enough that the tests pass with the // default windows stack of 1MB command.env("UV_STACK_SIZE", (8 * 1024 * 1024).to_string()); } ``` Centralizing these into a `TestContext::add_shared_args` method removes them from everywhere. **2)** Prefix all `TextContext` methods of the pip interface with `pip_`. This is now necessary due to `uv sync` vs. `uv pip sync`. **3)** Move command creation in the various test files into dedicated functions or methods to avoid repeating the arguments. Except for error message tests, there should be at most one `Command::new(get_bin())` call per test file. `EXCLUDE_NEWER` is exclusively used in `TestContext`. --- I'm considering adding a `TestCommand` on top of these changes (in another PR) that holds a reference to the `TextContext`, has `add_shared_args` as a method and uses `Fn(Self) -> Self` instead of `Fn(&mut Self) -> Self` for methods to improved chaining. |
||
---|---|---|
.. | ||
bench | ||
benchmarks | ||
links | ||
packages | ||
popular_packages | ||
requirements | ||
scenarios | ||
workspaces | ||
check_cache_compat.py | ||
check_embedded_python.py | ||
check_system_python.py | ||
release.sh | ||
sync_scenarios.sh | ||
transform_readme.py | ||
update_schemastore.py |