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:
Andrew Gallant 2024-06-28 12:13:21 -04:00 committed by Andrew Gallant
parent 870660d8bd
commit 22ce8fdf4b
5 changed files with 284 additions and 0 deletions

View file

@ -2372,6 +2372,62 @@ name = "anyio"
version = "4.3.0"
source = { path = "file:///foo/bar" }
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);
insta::assert_debug_snapshot!(result);

View file

@ -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,
},
},
)

View file

@ -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,
},
},
)

View file

@ -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,
},
},
)

View file

@ -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,
},
},
)