Merge pull request #1001 from manics/fix_figshare_test

pull/1008/head
Tim Head 2021-01-20 11:20:13 +01:00 zatwierdzone przez GitHub
commit 45229ad613
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
2 zmienionych plików z 19 dodań i 5 usunięć

Wyświetl plik

@ -40,7 +40,10 @@ class Figshare(DoiProvider):
} }
] ]
url_regex = re.compile(r"(.*)/articles/([^/]+)/(\d+)(/)?(\d+)?") # We may need to add other item types in future, see
# https://github.com/jupyterhub/repo2docker/pull/1001#issuecomment-760107436
# for a list
url_regex = re.compile(r"(.*)/articles/(code/|dataset/)?([^/]+)/(\d+)(/)?(\d+)?")
def detect(self, doi, ref=None, extra_args=None): def detect(self, doi, ref=None, extra_args=None):
"""Trigger this provider for things that resolve to a Figshare article""" """Trigger this provider for things that resolve to a Figshare article"""
@ -54,8 +57,8 @@ class Figshare(DoiProvider):
if any([url.startswith(s) for s in host["hostname"]]): if any([url.startswith(s) for s in host["hostname"]]):
match = self.url_regex.match(url) match = self.url_regex.match(url)
if match: if match:
self.article_id = match.groups()[2] self.article_id = match.groups()[3]
self.article_version = match.groups()[4] self.article_version = match.groups()[5]
if not self.article_version: if not self.article_version:
self.article_version = "1" self.article_version = "1"
return { return {

Wyświetl plik

@ -48,17 +48,28 @@ test_dois_links = [
"10.6084/m9.figshare.9782777.v1", "10.6084/m9.figshare.9782777.v1",
{"host": test_fig.hosts[0], "article": "9782777", "version": "1"}, {"host": test_fig.hosts[0], "article": "9782777", "version": "1"},
), ),
( pytest.param(
"10.6084/m9.figshare.9782777.v2", "10.6084/m9.figshare.9782777.v2",
{"host": test_fig.hosts[0], "article": "9782777", "version": "2"}, {"host": test_fig.hosts[0], "article": "9782777", "version": "2"},
# $ curl -sIL https://dx.doi.org/10.6084/m9.figshare.9782777.v2 | grep location
# location: https://figshare.com/articles/Binder-ready_openSenseMap_Analysis/9782777/2
# location: https://figshare.com/articles/code/Binder-ready_openSenseMap_Analysis/9782777
marks=pytest.mark.xfail(reason="Problem with figshare version redirects"),
), ),
( (
"https://doi.org/10.6084/m9.figshare.9782777.v1", "https://doi.org/10.6084/m9.figshare.9782777.v1",
{"host": test_fig.hosts[0], "article": "9782777", "version": "1"}, {"host": test_fig.hosts[0], "article": "9782777", "version": "1"},
# $ curl -sIL https://doi.org/10.6084/m9.figshare.9782777.v1 | grep location
# location: https://figshare.com/articles/Binder-ready_openSenseMap_Analysis/9782777/1
# location: https://figshare.com/articles/code/Binder-ready_openSenseMap_Analysis/9782777
), ),
( pytest.param(
"https://doi.org/10.6084/m9.figshare.9782777.v3", "https://doi.org/10.6084/m9.figshare.9782777.v3",
{"host": test_fig.hosts[0], "article": "9782777", "version": "3"}, {"host": test_fig.hosts[0], "article": "9782777", "version": "3"},
# $ curl -sIL https://doi.org/10.6084/m9.figshare.9782777.v3 | grep location
# location: https://figshare.com/articles/Binder-ready_openSenseMap_Analysis/9782777/3
# location: https://figshare.com/articles/code/Binder-ready_openSenseMap_Analysis/9782777
marks=pytest.mark.xfail(reason="Problem with figshare version redirects"),
), ),
( (
"https://figshare.com/articles/title/97827771234", "https://figshare.com/articles/title/97827771234",