2323"""
2424
2525CARGO_WORKSPACE_TOML = """\
26+ [workspace]
27+ members = ["member1", "folder/member2", "crates/*"]
28+ exclude = ["crates/member4", "folder/member5"]
29+
2630[workspace.package]
27- members = ["whatever"]
2831version = "0.1.0"
2932"""
3033
31- CARGO_WORKSPACE_MEMBER_TOML = """\
34+ CARGO_WORKSPACE_MEMBERS = [
35+ {
36+ "path" : "member1" ,
37+ "content" : """\
3238 [package]
33- name = "whatever "
39+ name = "member1 "
3440version.workspace = true
35- """
41+ """ ,
42+ },
43+ {
44+ "path" : "folder/member2" ,
45+ "content" : """\
46+ [package]
47+ name = "member2"
48+ version.workspace = "1.1.1"
49+ """ ,
50+ },
51+ {
52+ "path" : "crates/member3" ,
53+ "content" : """\
54+ [package]
55+ name = "member3"
56+ version.workspace = true
57+ """ ,
58+ },
59+ {
60+ "path" : "crates/member4" ,
61+ "content" : """\
62+ [package]
63+ name = "member4"
64+ version.workspace = "2.2.2"
65+ """ ,
66+ },
67+ {
68+ "path" : "folder/member5" ,
69+ "content" : """\
70+ [package]
71+ name = "member5"
72+ version.workspace = "3.3.3"
73+ """ ,
74+ },
75+ ]
76+
3677
3778CARGO_WORKSPACE_TOML_EXPECTED = """\
79+ [workspace]
80+ members = ["member1", "folder/member2", "crates/*"]
81+ exclude = ["crates/member4", "folder/member5"]
82+
3883[workspace.package]
39- members = ["whatever"]
4084version = "42.1"
4185"""
4286
66110]
67111"""
68112
113+ CARGO_WORKSPACE_LOCK = """\
114+ [[package]]
115+ name = "member1"
116+ version = "0.1.0"
117+ source = "registry+https://github.com/rust-lang/crates.io-index"
118+ checksum = "123abc"
119+ dependencies = [
120+ "packageA",
121+ "packageB",
122+ "packageC",
123+ ]
124+
125+ [[package]]
126+ name = "member2"
127+ version = "1.1.1"
128+ source = "registry+https://github.com/rust-lang/crates.io-index"
129+ checksum = "123abc"
130+ dependencies = [
131+ "packageA",
132+ "packageB",
133+ "packageC",
134+ ]
135+
136+ [[package]]
137+ name = "member3"
138+ version = "0.1.0"
139+ source = "registry+https://github.com/rust-lang/crates.io-index"
140+ checksum = "123abc"
141+ dependencies = [
142+ "packageA",
143+ "packageB",
144+ "packageC",
145+ ]
146+
147+ [[package]]
148+ name = "member4"
149+ version = "2.2.2"
150+ source = "registry+https://github.com/rust-lang/crates.io-index"
151+ checksum = "123abc"
152+ dependencies = [
153+ "packageA",
154+ "packageB",
155+ "packageC",
156+ ]
157+
158+ [[package]]
159+ name = "member5"
160+ version = "3.3.3"
161+ source = "registry+https://github.com/rust-lang/crates.io-index"
162+ checksum = "123abc"
163+ dependencies = [
164+ "packageA",
165+ "packageB",
166+ "packageC",
167+ ]
168+ """
169+
170+ CARGO_WORKSPACE_LOCK_EXPECTED = """\
171+ [[package]]
172+ name = "member1"
173+ version = "42.1"
174+ source = "registry+https://github.com/rust-lang/crates.io-index"
175+ checksum = "123abc"
176+ dependencies = [
177+ "packageA",
178+ "packageB",
179+ "packageC",
180+ ]
181+
182+ [[package]]
183+ name = "member2"
184+ version = "1.1.1"
185+ source = "registry+https://github.com/rust-lang/crates.io-index"
186+ checksum = "123abc"
187+ dependencies = [
188+ "packageA",
189+ "packageB",
190+ "packageC",
191+ ]
192+
193+ [[package]]
194+ name = "member3"
195+ version = "42.1"
196+ source = "registry+https://github.com/rust-lang/crates.io-index"
197+ checksum = "123abc"
198+ dependencies = [
199+ "packageA",
200+ "packageB",
201+ "packageC",
202+ ]
203+
204+ [[package]]
205+ name = "member4"
206+ version = "2.2.2"
207+ source = "registry+https://github.com/rust-lang/crates.io-index"
208+ checksum = "123abc"
209+ dependencies = [
210+ "packageA",
211+ "packageB",
212+ "packageC",
213+ ]
214+
215+ [[package]]
216+ name = "member5"
217+ version = "3.3.3"
218+ source = "registry+https://github.com/rust-lang/crates.io-index"
219+ checksum = "123abc"
220+ dependencies = [
221+ "packageA",
222+ "packageB",
223+ "packageC",
224+ ]
225+ """
226+
69227
70228@pytest .mark .parametrize (
71229 "content, expected" ,
@@ -104,9 +262,9 @@ def test_cargo_provider(
104262 ),
105263 (
106264 CARGO_WORKSPACE_TOML ,
107- CARGO_LOCK ,
265+ CARGO_WORKSPACE_LOCK ,
108266 CARGO_WORKSPACE_TOML_EXPECTED ,
109- CARGO_LOCK_EXPECTED ,
267+ CARGO_WORKSPACE_LOCK_EXPECTED ,
110268 ),
111269 ),
112270)
@@ -122,10 +280,14 @@ def test_cargo_provider_with_lock(
122280 file = chdir / filename
123281 file .write_text (dedent (toml_content ))
124282
125- member_folder = chdir / "whatever"
126- os .mkdir (member_folder )
127- member_file = member_folder / "Cargo.toml"
128- member_file .write_text (dedent (CARGO_WORKSPACE_MEMBER_TOML ))
283+ # Create workspace members
284+ os .mkdir (chdir / "crates" )
285+ os .mkdir (chdir / "folder" )
286+ for i in range (0 , 5 ):
287+ member_folder = Path (CARGO_WORKSPACE_MEMBERS [i ]["path" ])
288+ os .mkdir (member_folder )
289+ member_file = member_folder / "Cargo.toml"
290+ member_file .write_text (dedent (CARGO_WORKSPACE_MEMBERS [i ]["content" ]))
129291
130292 lock_filename = CargoProvider .lock_filename
131293 lock_file = chdir / lock_filename
0 commit comments