|
7 | 7 | from binderhub.repoproviders import (
|
8 | 8 | tokenize_spec, strip_suffix, GitHubRepoProvider, GitRepoProvider,
|
9 | 9 | GitLabRepoProvider, GistRepoProvider, ZenodoProvider, FigshareProvider,
|
10 |
| - HydroshareProvider, DataverseProvider |
| 10 | + HydroshareProvider, DataverseProvider, MercurialRepoProvider |
11 | 11 | )
|
12 | 12 |
|
13 | 13 |
|
@@ -404,3 +404,29 @@ def test_gist_secret():
|
404 | 404 |
|
405 | 405 | provider = GistRepoProvider(spec=spec, allow_secret_gist=True)
|
406 | 406 | assert IOLoop().run_sync(provider.get_resolved_ref) is not None
|
| 407 | + |
| 408 | + |
| 409 | +@pytest.mark.parametrize('url,unresolved_ref,resolved_ref', [ |
| 410 | + ['https://foss.heptapod.net/graphics/plot-covid19-fr', |
| 411 | + '3f1209cb613a', |
| 412 | + '3f1209cb613a1286e555d8cabe722c1be2a6f123'], |
| 413 | + ['https://foss.heptapod.net/pypy/pypy', |
| 414 | + 'release-pypy3.7-v7.3.2rc3', |
| 415 | + '87875bf2dfd8fe682a49e010f6636a871b1308e6'] |
| 416 | +]) |
| 417 | +def test_mercurial_ref(url, unresolved_ref, resolved_ref): |
| 418 | + spec = '{}/{}'.format( |
| 419 | + quote(url, safe=''), |
| 420 | + quote(unresolved_ref) |
| 421 | + ) |
| 422 | + provider = MercurialRepoProvider(spec=spec) |
| 423 | + slug = provider.get_build_slug() |
| 424 | + assert slug == url |
| 425 | + full_url = provider.get_repo_url() |
| 426 | + assert full_url == url |
| 427 | + ref = IOLoop().run_sync(provider.get_resolved_ref) |
| 428 | + assert ref == resolved_ref |
| 429 | + ref_url = IOLoop().run_sync(provider.get_resolved_ref_url) |
| 430 | + assert ref_url == full_url |
| 431 | + resolved_spec = IOLoop().run_sync(provider.get_resolved_spec) |
| 432 | + assert resolved_spec == quote(url, safe='') + f'/{resolved_ref}' |
0 commit comments