Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit d14218b

Browse files
tunakasifLee-W
authored andcommitted
test: add test for cargo provider with lock files
Add a test to check the behavior of the cargo provider when a `Cargo.lock` file is present. This test ensures that the `CargoProvider` behaves correctly when the lock file is present, and updates both the `Cargo.lock` and `Cargo.toml` files accordingly.
1 parent aabeae3 commit d14218b

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

‎tests/providers/test_cargo_provider.py‎

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,32 @@
3333
version = "42.1"
3434
"""
3535

36+
CARGO_LOCK = """\
37+
[[package]]
38+
name = "whatever"
39+
version = "0.1.0"
40+
source = "registry+https://github.com/rust-lang/crates.io-index"
41+
checksum = "123abc"
42+
dependencies = [
43+
"packageA",
44+
"packageB",
45+
"packageC",
46+
]
47+
"""
48+
49+
CARGO_LOCK_EXPECTED = """\
50+
[[package]]
51+
name = "whatever"
52+
version = "42.1"
53+
source = "registry+https://github.com/rust-lang/crates.io-index"
54+
checksum = "123abc"
55+
dependencies = [
56+
"packageA",
57+
"packageB",
58+
"packageC",
59+
]
60+
"""
61+
3662

3763
@pytest.mark.parametrize(
3864
"content, expected",
@@ -58,3 +84,46 @@ def test_cargo_provider(
5884

5985
provider.set_version("42.1")
6086
assert file.read_text() == dedent(expected)
87+
88+
89+
@pytest.mark.parametrize(
90+
"toml_content, lock_content, toml_expected, lock_expected",
91+
(
92+
(
93+
CARGO_TOML,
94+
CARGO_LOCK,
95+
CARGO_TOML_EXPECTED,
96+
CARGO_LOCK_EXPECTED,
97+
),
98+
(
99+
CARGO_WORKSPACE_TOML,
100+
CARGO_LOCK,
101+
CARGO_WORKSPACE_TOML_EXPECTED,
102+
CARGO_LOCK_EXPECTED,
103+
),
104+
),
105+
)
106+
def test_cargo_provider_with_lock(
107+
config: BaseConfig,
108+
chdir: Path,
109+
toml_content: str,
110+
lock_content: str,
111+
toml_expected: str,
112+
lock_expected: str,
113+
):
114+
filename = CargoProvider.filename
115+
file = chdir / filename
116+
file.write_text(dedent(toml_content))
117+
118+
lock_filename = CargoProvider.lock_filename
119+
lock_file = chdir / lock_filename
120+
lock_file.write_text(dedent(lock_content))
121+
config.settings["version_provider"] = "cargo"
122+
123+
provider = get_provider(config)
124+
assert isinstance(provider, CargoProvider)
125+
assert provider.get_version() == "0.1.0"
126+
127+
provider.set_version("42.1")
128+
assert file.read_text() == dedent(toml_expected)
129+
assert lock_file.read_text() == dedent(lock_expected)

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /