|
25 | 25 | def obtain(dest, url): |
26 | 26 | pass |
27 | 27 |
|
28 | | - |
29 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
30 | | -def test_fetch_with_git_http_url_returns_a_response(mock_backend): |
31 | | - mock_backend.return_value.obtain = obtain |
32 | | - url = "git+http://github.com/jamesor/mongoose-versioner" |
33 | | - response = fetch_via_vcs(url=url) |
34 | | - assert response.vcs_type == "git" |
35 | | - assert response.domain == "github.com" |
36 | | - |
37 | | - |
38 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
39 | | -def test_fetch_with_git_url_returns_a_response(mock_backend): |
40 | | - mock_backend.return_value.obtain = obtain |
41 | | - url = "git://github.com/jamesor/mongoose-versioner" |
42 | | - response = fetch_via_vcs(url=url) |
43 | | - assert response.vcs_type == "git" |
44 | | - assert response.domain == "github.com" |
45 | | - |
46 | | - |
47 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
48 | | -def test_fetch_with_git_https_url_returns_a_response(mock_backend): |
49 | | - mock_backend.return_value.obtain = obtain |
50 | | - url = "git+https://github.com/jamesor/mongoose-versioner" |
51 | | - response = fetch_via_vcs(url=url) |
52 | | - assert response.vcs_type == "git" |
53 | | - assert response.domain == "github.com" |
54 | | - |
55 | | - |
56 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
57 | | -def test_fetch_with_git_ssh_url_returns_a_response(mock_backend): |
58 | | - mock_backend.return_value.obtain = obtain |
59 | | - url = "git+ssh://github.com/jamesor/mongoose-versioner" |
60 | | - response = fetch_via_vcs(url=url) |
61 | | - assert response.vcs_type == "git" |
62 | | - assert response.domain == "github.com" |
63 | | - |
64 | | - |
65 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
66 | | -def test_fetch_with_git_file_url_returns_a_response(mock_backend): |
67 | | - mock_backend.return_value.obtain = obtain |
68 | | - url = "git+file://github.com/jamesor/mongoose-versioner" |
69 | | - response = fetch_via_vcs(url=url) |
70 | | - assert response.vcs_type == "git" |
71 | | - assert response.domain == "github.com" |
72 | | - |
73 | | - |
74 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
75 | | -def test_fetch_with_git_ssh_url_returns_a_response(mock_backend): |
76 | | - mock_backend.return_value.obtain = obtain |
77 | | - url = "git+git://github.com/jamesor/mongoose-versioner" |
78 | | - response = fetch_via_vcs(url=url) |
79 | | - assert response.vcs_type == "git" |
80 | | - assert response.domain == "github.com" |
81 | | - |
82 | | - |
83 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
84 | | -def test_fetch_with_bzr_http_url_returns_a_response(mock_backend): |
85 | | - mock_backend.return_value.obtain = obtain |
86 | | - url = "bzr+http://gitlab.com/jamesor/mongoose-versioner" |
87 | | - response = fetch_via_vcs(url=url) |
88 | | - assert response.vcs_type == "bzr" |
89 | | - assert response.domain == "gitlab.com" |
90 | | - |
91 | | - |
92 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
93 | | -def test_fetch_with_bzr_https_url_returns_a_response(mock_backend): |
94 | | - mock_backend.return_value.obtain = obtain |
95 | | - url = "bzr+https://gitlab.com/jamesor/mongoose-versioner" |
96 | | - response = fetch_via_vcs(url=url) |
97 | | - assert response.vcs_type == "bzr" |
98 | | - assert response.domain == "gitlab.com" |
99 | | - |
100 | | - |
101 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
102 | | -def test_fetch_with_bzr_url_returns_a_response(mock_backend): |
103 | | - mock_backend.return_value.obtain = obtain |
104 | | - url = "bzr://gitlab.com/jamesor/mongoose-versioner" |
105 | | - response = fetch_via_vcs(url=url) |
106 | | - assert response.vcs_type == "bzr" |
107 | | - assert response.domain == "gitlab.com" |
108 | | - |
109 | | - |
110 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
111 | | -def test_fetch_with_bzr_ssh_url_returns_a_response(mock_backend): |
112 | | - mock_backend.return_value.obtain = obtain |
113 | | - url = "bzr+ssh://gitlab.com/jamesor/mongoose-versioner" |
114 | | - response = fetch_via_vcs(url=url) |
115 | | - assert response.vcs_type == "bzr" |
116 | | - assert response.domain == "gitlab.com" |
117 | | - |
118 | | - |
119 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
120 | | -def test_fetch_with_bzr_ftp_url_returns_a_response(mock_backend): |
121 | | - mock_backend.return_value.obtain = obtain |
122 | | - url = "bzr+ftp://gitlab.com/jamesor/mongoose-versioner" |
123 | | - response = fetch_via_vcs(url=url) |
124 | | - assert response.vcs_type == "bzr" |
125 | | - assert response.domain == "gitlab.com" |
126 | | - |
127 | | - |
128 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
129 | | -def test_fetch_with_bzr_sftp_url_returns_a_response(mock_backend): |
130 | | - mock_backend.return_value.obtain = obtain |
131 | | - url = "bzr+sftp://gitlab.com/jamesor/mongoose-versioner" |
132 | | - response = fetch_via_vcs(url=url) |
133 | | - assert response.vcs_type == "bzr" |
134 | | - assert response.domain == "gitlab.com" |
135 | | - |
136 | | - |
137 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
138 | | -def test_fetch_with_bzr_lp_url_returns_a_response(mock_backend): |
139 | | - mock_backend.return_value.obtain = obtain |
140 | | - url = "bzr+lp://gitlab.com/jamesor/mongoose-versioner" |
141 | | - response = fetch_via_vcs(url=url) |
142 | | - assert response.vcs_type == "bzr" |
143 | | - assert response.domain == "gitlab.com" |
144 | | - |
145 | | - |
146 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
147 | | -def test_fetch_with_hg_url_returns_a_response(mock_backend): |
148 | | - mock_backend.return_value.obtain = obtain |
149 | | - url = "hg://bitbucket.com/jamesor/mongoose-versioner" |
150 | | - response = fetch_via_vcs(url=url) |
151 | | - assert response.vcs_type == "hg" |
152 | | - assert response.domain == "bitbucket.com" |
153 | | - |
154 | | - |
155 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
156 | | -def test_fetch_with_hg_file_url_returns_a_response(mock_backend): |
157 | | - mock_backend.return_value.obtain = obtain |
158 | | - url = "hg+file://bitbucket.com/jamesor/mongoose-versioner" |
159 | | - response = fetch_via_vcs(url=url) |
160 | | - assert response.vcs_type == "hg" |
161 | | - assert response.domain == "bitbucket.com" |
162 | | - |
163 | | - |
164 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
165 | | -def test_fetch_with_hg_http_url_returns_a_response(mock_backend): |
166 | | - mock_backend.return_value.obtain = obtain |
167 | | - url = "hg+http://bitbucket.com/jamesor/mongoose-versioner" |
168 | | - response = fetch_via_vcs(url=url) |
169 | | - assert response.vcs_type == "hg" |
170 | | - assert response.domain == "bitbucket.com" |
171 | | - |
172 | | - |
173 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
174 | | -def test_fetch_with_hg_https_url_returns_a_response(mock_backend): |
175 | | - mock_backend.return_value.obtain = obtain |
176 | | - url = "hg+https://bitbucket.com/jamesor/mongoose-versioner" |
177 | | - response = fetch_via_vcs(url=url) |
178 | | - assert response.vcs_type == "hg" |
179 | | - assert response.domain == "bitbucket.com" |
180 | | - |
181 | | - |
182 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
183 | | -def test_fetch_with_hg_ssh_url_returns_a_response(mock_backend): |
184 | | - mock_backend.return_value.obtain = obtain |
185 | | - url = "hg+ssh://bitbucket.com/jamesor/mongoose-versioner" |
186 | | - response = fetch_via_vcs(url=url) |
187 | | - assert response.vcs_type == "hg" |
188 | | - assert response.domain == "bitbucket.com" |
189 | | - |
190 | | - |
191 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
192 | | -def test_fetch_with_hg_static_http_url_returns_a_response(mock_backend): |
193 | | - mock_backend.return_value.obtain = obtain |
194 | | - url = "hg+static-http://bitbucket.com/jamesor/mongoose-versioner" |
195 | | - response = fetch_via_vcs(url=url) |
196 | | - assert response.vcs_type == "hg" |
197 | | - assert response.domain == "bitbucket.com" |
198 | | - |
199 | | - |
200 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
201 | | -def test_fetch_with_svn_url_returns_a_response(mock_backend): |
202 | | - mock_backend.return_value.obtain = obtain |
203 | | - url = "svn://bitbucket.com/jamesor/mongoose-versioner" |
204 | | - response = fetch_via_vcs(url=url) |
205 | | - assert response.vcs_type == "svn" |
206 | | - assert response.domain == "bitbucket.com" |
207 | | - |
208 | | - |
209 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
210 | | -def test_fetch_with_svn_http_url_returns_a_response(mock_backend): |
211 | | - mock_backend.return_value.obtain = obtain |
212 | | - url = "svn+http://bitbucket.com/jamesor/mongoose-versioner" |
213 | | - response = fetch_via_vcs(url=url) |
214 | | - assert response.vcs_type == "svn" |
215 | | - assert response.domain == "bitbucket.com" |
216 | | - |
217 | | - |
218 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
219 | | -def test_fetch_with_svn_https_url_returns_a_response(mock_backend): |
220 | | - mock_backend.return_value.obtain = obtain |
221 | | - url = "svn+https://bitbucket.com/jamesor/mongoose-versioner" |
222 | | - response = fetch_via_vcs(url=url) |
223 | | - assert response.vcs_type == "svn" |
224 | | - assert response.domain == "bitbucket.com" |
225 | | - |
226 | | - |
227 | | -@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
228 | | -def test_fetch_with_svn_svn_url_returns_a_response(mock_backend): |
229 | | - mock_backend.return_value.obtain = obtain |
230 | | - url = "svn+svn://bitbucket.com/jamesor/mongoose-versioner" |
231 | | - response = fetch_via_vcs(url=url) |
232 | | - assert response.vcs_type == "svn" |
233 | | - assert response.domain == "bitbucket.com" |
234 | | - |
| 28 | +@pytest.mark.parametrize( |
| 29 | + "url, vcs_type, domain", |
| 30 | + [ |
| 31 | + pytest.param("git+http://github.com/jamesor/mongoose-versioner", "git", "github.com", id="git_http"), |
| 32 | + pytest.param("git://github.com/jamesor/mongoose-versioner", "git", "github.com", id="git"), |
| 33 | + pytest.param("git+https://github.com/jamesor/mongoose-versioner", "git", "github.com", id="git_https"), |
| 34 | + pytest.param("git+ssh://github.com/jamesor/mongoose-versioner", "git", "github.com", id="git_ssh"), |
| 35 | + pytest.param("git+file://github.com/jamesor/mongoose-versioner", "git", "github.com", id="git_file"), |
| 36 | + pytest.param("git+git://github.com/jamesor/mongoose-versioner", "git", "github.com", id="git_git"), |
| 37 | + pytest.param("bzr+http://gitlab.com/jamesor/mongoose-versioner", "bzr", "gitlab.com", id="bzr_http"), |
| 38 | + pytest.param("bzr+https://gitlab.com/jamesor/mongoose-versioner", "bzr", "gitlab.com", id="bzr_https"), |
| 39 | + pytest.param("bzr://gitlab.com/jamesor/mongoose-versioner", "bzr", "gitlab.com", id="bzr"), |
| 40 | + pytest.param("bzr+ssh://gitlab.com/jamesor/mongoose-versioner", "bzr", "gitlab.com", id="bzr_ssh"), |
| 41 | + pytest.param("bzr+ftp://gitlab.com/jamesor/mongoose-versioner", "bzr", "gitlab.com", id="bzr_ftp"), |
| 42 | + pytest.param("bzr+sftp://gitlab.com/jamesor/mongoose-versioner", "bzr", "gitlab.com", id="bzr_sftp"), |
| 43 | + pytest.param("bzr+lp://gitlab.com/jamesor/mongoose-versioner", "bzr", "gitlab.com", id="bzr_lp"), |
| 44 | + pytest.param("hg://bitbucket.com/jamesor/mongoose-versioner", "hg", "bitbucket.com", id="hg"), |
| 45 | + pytest.param("hg+file://bitbucket.com/jamesor/mongoose-versioner", "hg", "bitbucket.com", id="hg_file"), |
| 46 | + pytest.param("hg+http://bitbucket.com/jamesor/mongoose-versioner", "hg", "bitbucket.com", id="hg_http"), |
| 47 | + pytest.param("hg+https://bitbucket.com/jamesor/mongoose-versioner", "hg", "bitbucket.com", id="hg_https"), |
| 48 | + pytest.param("hg+ssh://bitbucket.com/jamesor/mongoose-versioner", "hg", "bitbucket.com", id="hg_ssh"), |
| 49 | + pytest.param("hg+static-http://bitbucket.com/jamesor/mongoose-versioner", "hg", "bitbucket.com", id="hg_static_http"), |
| 50 | + pytest.param("svn://bitbucket.com/jamesor/mongoose-versioner", "svn", "bitbucket.com", id="svn"), |
| 51 | + pytest.param("svn+http://bitbucket.com/jamesor/mongoose-versioner", "svn", "bitbucket.com", id="svn_http"), |
| 52 | + pytest.param("svn+https://bitbucket.com/jamesor/mongoose-versioner", "svn", "bitbucket.com", id="svn_https"), |
| 53 | + pytest.param("svn+svn://bitbucket.com/jamesor/mongoose-versioner", "svn", "bitbucket.com", id="svn_svn") |
| 54 | + ], |
| 55 | +) |
| 56 | +@mock.patch("fetchcode.vcs.vcs.get_backend_for_scheme") |
| 57 | +def test_fetch_via_vcs_returns_response(mock_backend, url, vcs_type, domain): |
| 58 | + mock_backend.return_value.obtain = obtain |
| 59 | + response = fetch_via_vcs(url=url) |
| 60 | + assert response.vcs_type == vcs_type |
| 61 | + assert response.domain == domain |
235 | 62 |
|
236 | 63 | def test_fetch_with_invalid_scheme(): |
237 | 64 | invalid_urls = [ |
|
0 commit comments