12
12
13
13
from libvcs import exc
14
14
from libvcs .git import (
15
+ FullRemoteDict ,
15
16
GitRemote ,
16
17
GitRepo ,
17
18
convert_pip_url as git_convert_pip_url ,
26
27
27
28
RepoTestFactory = Callable [..., GitRepo ]
28
29
RepoTestFactoryLazyKwargs = Callable [..., dict ]
30
+ RepoTestFactoryRemotesLazyExpected = Callable [..., FullRemoteDict ]
29
31
30
32
31
33
@pytest .fixture (autouse = True , scope = "module" )
@@ -215,21 +217,61 @@ def progress_callback_spy(output, timestamp):
215
217
216
218
@pytest .mark .parametrize (
217
219
# Postpone evaluation of options so fixture variables can interpolate
218
- "constructor,lazy_constructor_options" ,
220
+ "constructor,lazy_constructor_options,lazy_remote_expected " ,
219
221
[
220
222
[
221
223
GitRepo ,
222
224
lambda git_remote , repos_path , repo_name , ** kwargs : {
223
225
"url" : f"file://{ git_remote } " ,
224
226
"repo_dir" : repos_path / repo_name ,
225
227
},
228
+ lambda git_remote , ** kwargs : {"origin" : f"file://{ git_remote } " },
229
+ ],
230
+ [
231
+ GitRepo ,
232
+ lambda git_remote , repos_path , repo_name , ** kwargs : {
233
+ "url" : f"file://{ git_remote } " ,
234
+ "repo_dir" : repos_path / repo_name ,
235
+ "remotes" : {"origin" : f"file://{ git_remote } " },
236
+ },
237
+ lambda git_remote , ** kwargs : {"origin" : f"file://{ git_remote } " },
238
+ ],
239
+ [
240
+ GitRepo ,
241
+ lambda git_remote , repos_path , repo_name , ** kwargs : {
242
+ "url" : f"file://{ git_remote } " ,
243
+ "repo_dir" : repos_path / repo_name ,
244
+ "remotes" : {
245
+ "origin" : f"file://{ git_remote } " ,
246
+ "second_remote" : f"file://{ git_remote } " ,
247
+ },
248
+ },
249
+ lambda git_remote , ** kwargs : {
250
+ "origin" : f"file://{ git_remote } " ,
251
+ "second_remote" : f"file://{ git_remote } " ,
252
+ },
253
+ ],
254
+ [
255
+ GitRepo ,
256
+ lambda git_remote , repos_path , repo_name , ** kwargs : {
257
+ "url" : f"file://{ git_remote } " ,
258
+ "repo_dir" : repos_path / repo_name ,
259
+ "remotes" : {
260
+ "second_remote" : f"file://{ git_remote } " ,
261
+ },
262
+ },
263
+ lambda git_remote , ** kwargs : {
264
+ "origin" : f"file://{ git_remote } " ,
265
+ "second_remote" : f"file://{ git_remote } " ,
266
+ },
226
267
],
227
268
[
228
269
create_repo_from_pip_url ,
229
270
lambda git_remote , repos_path , repo_name , ** kwargs : {
230
271
"pip_url" : f"git+file://{ git_remote } " ,
231
272
"repo_dir" : repos_path / repo_name ,
232
273
},
274
+ lambda git_remote , ** kwargs : {"origin" : f"file://{ git_remote } " },
233
275
],
234
276
],
235
277
)
@@ -238,16 +280,23 @@ def test_remotes(
238
280
git_remote : pathlib .Path ,
239
281
constructor : RepoTestFactory ,
240
282
lazy_constructor_options : RepoTestFactoryLazyKwargs ,
283
+ lazy_remote_expected : RepoTestFactoryRemotesLazyExpected ,
241
284
):
242
285
repo_name = "myrepo"
243
286
remote_name = "myremote"
244
287
remote_url = "https://localhost/my/git/repo.git"
245
288
246
289
git_repo : GitRepo = constructor (** lazy_constructor_options (** locals ()))
247
290
git_repo .obtain ()
248
- git_repo .set_remote (name = remote_name , url = remote_url )
249
291
250
- assert (remote_name , remote_url , remote_url ) == git_repo .remote (remote_name )
292
+ expected = lazy_remote_expected (** locals ())
293
+ assert len (expected .keys ()) > 0
294
+ for expected_remote_name , expected_remote_url in expected .items ():
295
+ assert (
296
+ expected_remote_name ,
297
+ expected_remote_url ,
298
+ expected_remote_url ,
299
+ ) == git_repo .remote (expected_remote_name )
251
300
252
301
253
302
def test_git_get_url_and_rev_from_pip_url ():
0 commit comments