66
77from libvcs .sync .git import GitSync
88from libvcs .url .base import RuleMap
9- from libvcs .url .git import DEFAULT_RULES , PIP_DEFAULT_RULES , GitBaseURL , GitURL
9+ from libvcs .url .git import (
10+ DEFAULT_RULES ,
11+ PIP_DEFAULT_RULES ,
12+ GitBaseURL ,
13+ GitURL ,
14+ )
1015
1116
1217class GitURLFixture (typing .NamedTuple ):
@@ -104,6 +109,7 @@ class GitURLKwargsFixture(typing.NamedTuple):
104109
105110 url : str
106111 is_valid : bool
112+ is_generic : bool # If git base URLs would be truthy
107113 git_url_kwargs : GitURLKwargs
108114
109115
@@ -117,34 +123,39 @@ class GitURLKwargsFixture(typing.NamedTuple):
117123 GitURLKwargsFixture (
118124 url = "git+https://github.com/liuxinyu95/AlgoXY.git" ,
119125 is_valid = True ,
126+ is_generic = False ,
120127 git_url_kwargs = GitURLKwargs (url = "git+https://github.com/liuxinyu95/AlgoXY.git" ),
121128 ),
122129 GitURLKwargsFixture (
123130 url = "git+ssh://git@github.com:tony/AlgoXY.git" ,
124131 is_valid = True ,
132+ is_generic = False ,
125133 git_url_kwargs = GitURLKwargs (url = "git+ssh://git@github.com:tony/AlgoXY.git" ),
126134 ),
127135 GitURLKwargsFixture (
128136 url = "git+file://{local_repo}" ,
129137 is_valid = True ,
138+ is_generic = False ,
130139 git_url_kwargs = GitURLKwargs (url = "git+file://{local_repo}" ),
131140 ),
132141 # Incompatible
133142 GitURLKwargsFixture (
134143 url = "git+ssh://git@github.com/tony/AlgoXY.git" ,
135144 is_valid = True ,
145+ is_generic = False ,
136146 git_url_kwargs = GitURLKwargs (url = "git+ssh://git@github.com/tony/AlgoXY.git" ),
137147 ),
138148]
139149
140150
141151@pytest .mark .parametrize (
142- ( "url" , "is_valid" , "git_url_kwargs" ) ,
152+ GitURLKwargsFixture . _fields ,
143153 PIP_TEST_FIXTURES ,
144154)
145155def test_git_url_extension_pip (
146156 url : str ,
147157 is_valid : bool ,
158+ is_generic : bool ,
148159 git_url_kwargs : GitURLKwargs ,
149160 git_repo : GitSync ,
150161) -> None :
@@ -160,9 +171,15 @@ class GitURLWithPip(GitBaseURL):
160171 git_url = GitURLWithPip (** git_url_kwargs )
161172 git_url .url = git_url .url .format (local_repo = git_repo .path )
162173
163- assert (
164- GitBaseURL .is_valid (url ) != is_valid
165- ), f"{ url } compatibility should work with core, expects { not is_valid } "
174+ if is_generic :
175+ assert (
176+ GitBaseURL .is_valid (url ) == is_valid
177+ ), f"{ url } compatibility should be { is_valid } "
178+ else :
179+ assert (
180+ GitBaseURL .is_valid (url ) != is_valid
181+ ), f"{ url } compatibility should work with core, expects { not is_valid } "
182+
166183 assert (
167184 GitURLWithPip .is_valid (url ) == is_valid
168185 ), f"{ url } compatibility should be { is_valid } "
0 commit comments