Skip to content

Commit

Permalink
Add a test for a failing extra
Browse files Browse the repository at this point in the history
  • Loading branch information
charliermarsh committed Apr 17, 2024
1 parent aea8b0a commit 6d640c8
Show file tree
Hide file tree
Showing 21 changed files with 114 additions and 0 deletions.
49 changes: 49 additions & 0 deletions crates/uv/tests/pip_compile.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3901,6 +3901,55 @@ fn find_links_requirements_txt() -> Result<()> {
Ok(())
}


/// `extras==0.0.2` fails to build (i.e., it always throws). Since `extras==0.0.1` is pinned, we
/// should never even attempt to build `extras==0.0.2`, despite an unpinned `extras[dev]`
/// requirement.
///
/// This resolution should succeed, but currently fails.
#[test]
fn avoid_irrelevant_extras() -> Result<()> {
let context = TestContext::new("3.12");
let requirements_in = context.temp_dir.child("requirements.in");
requirements_in.write_str(indoc! {r"
extras==0.0.1
extras[dev]
"})?;

uv_snapshot!(context.filters(), context.compile()
.arg("requirements.in")
.arg("--find-links")
.arg(context.workspace_root.join("scripts").join("links")), @r###"
success: false
exit_code: 2
----- stdout -----
----- stderr -----
error: Failed to download and build: extras==0.0.2
Caused by: Failed to build: extras==0.0.2
Caused by: Build backend failed to determine extra requires with `build_wheel()` with exit status: 1
--- stdout:
--- stderr:
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "[CACHE_DIR]/[TMP]/build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "[CACHE_DIR]/[TMP]/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "[CACHE_DIR]/[TMP]/build_meta.py", line 487, in run_setup
super().run_setup(setup_script=setup_script)
File "[CACHE_DIR]/[TMP]/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 3, in <module>
ZeroDivisionError: division by zero
---
"###);

Ok(())
}

/// Use an existing resolution for `black==23.10.1`, with stale versions of `click` and `pathspec`.
/// Nothing should change.
#[test]
Expand Down
Binary file added scripts/links/editables-0.5.tar.gz
Binary file not shown.
Binary file added scripts/links/extras-0.0.1.tar.gz
Binary file not shown.
Binary file added scripts/links/extras-0.0.2.tar.gz
Binary file not shown.
Empty file.
Binary file not shown.
4 changes: 4 additions & 0 deletions scripts/packages/setup_py_editable/dist/extras-0.0.1/PKG-INFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Metadata-Version: 2.1
Name: extras
Version: 0.0.1
Provides-Extra: dev
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[egg_info]
tag_build =
tag_date = 0

12 changes: 12 additions & 0 deletions scripts/packages/setup_py_editable/dist/extras-0.0.1/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from setuptools import setup

setup(
name="extras",
version="0.0.1",
install_requires=[
"iniconfig",
],
extras_require={
"dev": ["anyio"],
}
)
Binary file not shown.
4 changes: 4 additions & 0 deletions scripts/packages/setup_py_editable/dist/extras-0.0.2/PKG-INFO
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Metadata-Version: 2.1
Name: extras
Version: 0.0.2
Provides-Extra: dev
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[egg_info]
tag_build =
tag_date = 0

14 changes: 14 additions & 0 deletions scripts/packages/setup_py_editable/dist/extras-0.0.2/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from setuptools import setup

1/0

setup(
name="extras",
version="0.0.2",
install_requires=[
"httpx",
],
extras_require={
"dev": ["anyio"],
}
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Metadata-Version: 2.1
Name: setup-py-editable
Version: 0.0.1
Provides-Extra: dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[egg_info]
tag_build =
tag_date = 0

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from setuptools import setup

setup(
name="setup-py-editable",
version="0.0.1",
install_requires=[
"httpx",
],
extras_require={
'dev': ['anyio'],
}
)
Binary file not shown.
3 changes: 3 additions & 0 deletions scripts/packages/setup_py_editable/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,7 @@
install_requires=[
"httpx",
],
extras_require={
'dev': ['anyio'],
}
)

0 comments on commit 6d640c8

Please sign in to comment.