mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00
uv-resolver: add some tests for other source types
This adds some coverage for source types that aren't used as much in other tests. For example, a direct URL source with a sub-directory.
This commit is contained in:
parent
870660d8bd
commit
22ce8fdf4b
5 changed files with 284 additions and 0 deletions
|
@ -2372,6 +2372,62 @@ name = "anyio"
|
||||||
version = "4.3.0"
|
version = "4.3.0"
|
||||||
source = { path = "file:///foo/bar" }
|
source = { path = "file:///foo/bar" }
|
||||||
wheels = [{ url = "file:///foo/bar/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8" }]
|
wheels = [{ url = "file:///foo/bar/anyio-4.3.0-py3-none-any.whl", hash = "sha256:048e05d0f6caeed70d731f3db756d35dcc1f35747c8c403364a8332c630441b8" }]
|
||||||
|
"#;
|
||||||
|
let result: Result<Lock, _> = toml::from_str(data);
|
||||||
|
insta::assert_debug_snapshot!(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn source_direct_no_subdir() {
|
||||||
|
let data = r#"
|
||||||
|
version = 1
|
||||||
|
|
||||||
|
[[distribution]]
|
||||||
|
name = "anyio"
|
||||||
|
version = "4.3.0"
|
||||||
|
source = { url = "https://burntsushi.net" }
|
||||||
|
"#;
|
||||||
|
let result: Result<Lock, _> = toml::from_str(data);
|
||||||
|
insta::assert_debug_snapshot!(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn source_direct_has_subdir() {
|
||||||
|
let data = r#"
|
||||||
|
version = 1
|
||||||
|
|
||||||
|
[[distribution]]
|
||||||
|
name = "anyio"
|
||||||
|
version = "4.3.0"
|
||||||
|
source = { url = "https://burntsushi.net", subdirectory = "wat/foo/bar" }
|
||||||
|
"#;
|
||||||
|
let result: Result<Lock, _> = toml::from_str(data);
|
||||||
|
insta::assert_debug_snapshot!(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn source_directory() {
|
||||||
|
let data = r#"
|
||||||
|
version = 1
|
||||||
|
|
||||||
|
[[distribution]]
|
||||||
|
name = "anyio"
|
||||||
|
version = "4.3.0"
|
||||||
|
source = { directory = "path/to/dir" }
|
||||||
|
"#;
|
||||||
|
let result: Result<Lock, _> = toml::from_str(data);
|
||||||
|
insta::assert_debug_snapshot!(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn source_editable() {
|
||||||
|
let data = r#"
|
||||||
|
version = 1
|
||||||
|
|
||||||
|
[[distribution]]
|
||||||
|
name = "anyio"
|
||||||
|
version = "4.3.0"
|
||||||
|
source = { editable = "path/to/dir" }
|
||||||
"#;
|
"#;
|
||||||
let result: Result<Lock, _> = toml::from_str(data);
|
let result: Result<Lock, _> = toml::from_str(data);
|
||||||
insta::assert_debug_snapshot!(result);
|
insta::assert_debug_snapshot!(result);
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
---
|
||||||
|
source: crates/uv-resolver/src/lock.rs
|
||||||
|
expression: result
|
||||||
|
---
|
||||||
|
Ok(
|
||||||
|
Lock {
|
||||||
|
version: 1,
|
||||||
|
distributions: [
|
||||||
|
Distribution {
|
||||||
|
id: DistributionId {
|
||||||
|
name: PackageName(
|
||||||
|
"anyio",
|
||||||
|
),
|
||||||
|
version: "4.3.0",
|
||||||
|
source: Direct(
|
||||||
|
Url {
|
||||||
|
scheme: "https",
|
||||||
|
cannot_be_a_base: false,
|
||||||
|
username: "",
|
||||||
|
password: None,
|
||||||
|
host: Some(
|
||||||
|
Domain(
|
||||||
|
"burntsushi.net",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
port: None,
|
||||||
|
path: "/",
|
||||||
|
query: None,
|
||||||
|
fragment: None,
|
||||||
|
},
|
||||||
|
DirectSource {
|
||||||
|
subdirectory: Some(
|
||||||
|
"wat/foo/bar",
|
||||||
|
),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
},
|
||||||
|
sdist: None,
|
||||||
|
wheels: [],
|
||||||
|
dependencies: [],
|
||||||
|
optional_dependencies: {},
|
||||||
|
dev_dependencies: {},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
requires_python: None,
|
||||||
|
by_id: {
|
||||||
|
DistributionId {
|
||||||
|
name: PackageName(
|
||||||
|
"anyio",
|
||||||
|
),
|
||||||
|
version: "4.3.0",
|
||||||
|
source: Direct(
|
||||||
|
Url {
|
||||||
|
scheme: "https",
|
||||||
|
cannot_be_a_base: false,
|
||||||
|
username: "",
|
||||||
|
password: None,
|
||||||
|
host: Some(
|
||||||
|
Domain(
|
||||||
|
"burntsushi.net",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
port: None,
|
||||||
|
path: "/",
|
||||||
|
query: None,
|
||||||
|
fragment: None,
|
||||||
|
},
|
||||||
|
DirectSource {
|
||||||
|
subdirectory: Some(
|
||||||
|
"wat/foo/bar",
|
||||||
|
),
|
||||||
|
},
|
||||||
|
),
|
||||||
|
}: 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
)
|
|
@ -0,0 +1,73 @@
|
||||||
|
---
|
||||||
|
source: crates/uv-resolver/src/lock.rs
|
||||||
|
expression: result
|
||||||
|
---
|
||||||
|
Ok(
|
||||||
|
Lock {
|
||||||
|
version: 1,
|
||||||
|
distributions: [
|
||||||
|
Distribution {
|
||||||
|
id: DistributionId {
|
||||||
|
name: PackageName(
|
||||||
|
"anyio",
|
||||||
|
),
|
||||||
|
version: "4.3.0",
|
||||||
|
source: Direct(
|
||||||
|
Url {
|
||||||
|
scheme: "https",
|
||||||
|
cannot_be_a_base: false,
|
||||||
|
username: "",
|
||||||
|
password: None,
|
||||||
|
host: Some(
|
||||||
|
Domain(
|
||||||
|
"burntsushi.net",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
port: None,
|
||||||
|
path: "/",
|
||||||
|
query: None,
|
||||||
|
fragment: None,
|
||||||
|
},
|
||||||
|
DirectSource {
|
||||||
|
subdirectory: None,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
},
|
||||||
|
sdist: None,
|
||||||
|
wheels: [],
|
||||||
|
dependencies: [],
|
||||||
|
optional_dependencies: {},
|
||||||
|
dev_dependencies: {},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
requires_python: None,
|
||||||
|
by_id: {
|
||||||
|
DistributionId {
|
||||||
|
name: PackageName(
|
||||||
|
"anyio",
|
||||||
|
),
|
||||||
|
version: "4.3.0",
|
||||||
|
source: Direct(
|
||||||
|
Url {
|
||||||
|
scheme: "https",
|
||||||
|
cannot_be_a_base: false,
|
||||||
|
username: "",
|
||||||
|
password: None,
|
||||||
|
host: Some(
|
||||||
|
Domain(
|
||||||
|
"burntsushi.net",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
port: None,
|
||||||
|
path: "/",
|
||||||
|
query: None,
|
||||||
|
fragment: None,
|
||||||
|
},
|
||||||
|
DirectSource {
|
||||||
|
subdirectory: None,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
}: 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
)
|
|
@ -0,0 +1,39 @@
|
||||||
|
---
|
||||||
|
source: crates/uv-resolver/src/lock.rs
|
||||||
|
expression: result
|
||||||
|
---
|
||||||
|
Ok(
|
||||||
|
Lock {
|
||||||
|
version: 1,
|
||||||
|
distributions: [
|
||||||
|
Distribution {
|
||||||
|
id: DistributionId {
|
||||||
|
name: PackageName(
|
||||||
|
"anyio",
|
||||||
|
),
|
||||||
|
version: "4.3.0",
|
||||||
|
source: Directory(
|
||||||
|
"path/to/dir",
|
||||||
|
),
|
||||||
|
},
|
||||||
|
sdist: None,
|
||||||
|
wheels: [],
|
||||||
|
dependencies: [],
|
||||||
|
optional_dependencies: {},
|
||||||
|
dev_dependencies: {},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
requires_python: None,
|
||||||
|
by_id: {
|
||||||
|
DistributionId {
|
||||||
|
name: PackageName(
|
||||||
|
"anyio",
|
||||||
|
),
|
||||||
|
version: "4.3.0",
|
||||||
|
source: Directory(
|
||||||
|
"path/to/dir",
|
||||||
|
),
|
||||||
|
}: 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
)
|
|
@ -0,0 +1,39 @@
|
||||||
|
---
|
||||||
|
source: crates/uv-resolver/src/lock.rs
|
||||||
|
expression: result
|
||||||
|
---
|
||||||
|
Ok(
|
||||||
|
Lock {
|
||||||
|
version: 1,
|
||||||
|
distributions: [
|
||||||
|
Distribution {
|
||||||
|
id: DistributionId {
|
||||||
|
name: PackageName(
|
||||||
|
"anyio",
|
||||||
|
),
|
||||||
|
version: "4.3.0",
|
||||||
|
source: Editable(
|
||||||
|
"path/to/dir",
|
||||||
|
),
|
||||||
|
},
|
||||||
|
sdist: None,
|
||||||
|
wheels: [],
|
||||||
|
dependencies: [],
|
||||||
|
optional_dependencies: {},
|
||||||
|
dev_dependencies: {},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
requires_python: None,
|
||||||
|
by_id: {
|
||||||
|
DistributionId {
|
||||||
|
name: PackageName(
|
||||||
|
"anyio",
|
||||||
|
),
|
||||||
|
version: "4.3.0",
|
||||||
|
source: Editable(
|
||||||
|
"path/to/dir",
|
||||||
|
),
|
||||||
|
}: 0,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
)
|
Loading…
Add table
Add a link
Reference in a new issue