@@ -373,6 +373,41 @@ def test_conditional_includes_from_branch_name_error(self, rw_dir):
373
373
assert not config ._has_includes ()
374
374
assert config ._included_paths () == []
375
375
376
+ @with_rw_directory
377
+ def test_conditional_includes_remote_url (self , rw_dir ):
378
+ # Initiate mocked repository.
379
+ repo = mock .Mock ()
380
+ repo .remotes = [mock .Mock (url = "https://github.com/foo/repo" )]
381
+
382
+ # Initiate config files.
383
+ path1 = osp .join (rw_dir , "config1" )
384
+ path2 = osp .join (rw_dir , "config2" )
385
+ template = '[includeIf "hasconfig:remote.*.url:{}"]\n path={}\n '
386
+
387
+ # Ensure that config with hasconfig and full url is correct.
388
+ with open (path1 , "w" ) as stream :
389
+ stream .write (template .format ("https://github.com/foo/repo" , path2 ))
390
+
391
+ with GitConfigParser (path1 , repo = repo ) as config :
392
+ assert config ._has_includes ()
393
+ assert config ._included_paths () == [("path" , path2 )]
394
+
395
+ # Ensure that config with hasconfig and incorrect url is incorrect.
396
+ with open (path1 , "w" ) as stream :
397
+ stream .write (template .format ("incorrect" , path2 ))
398
+
399
+ with GitConfigParser (path1 , repo = repo ) as config :
400
+ assert not config ._has_includes ()
401
+ assert config ._included_paths () == []
402
+
403
+ # Ensure that config with hasconfig and url using glob pattern is correct.
404
+ with open (path1 , "w" ) as stream :
405
+ stream .write (template .format ("**/**github.com*/**" , path2 ))
406
+
407
+ with GitConfigParser (path1 , repo = repo ) as config :
408
+ assert config ._has_includes ()
409
+ assert config ._included_paths () == [("path" , path2 )]
410
+
376
411
def test_rename (self ):
377
412
file_obj = self ._to_memcache (fixture_path ("git_config" ))
378
413
with GitConfigParser (file_obj , read_only = False , merge_includes = False ) as cw :
0 commit comments