2019-09-11 11:17:48 +00:00
|
|
|
import json
|
2022-10-31 22:32:14 +00:00
|
|
|
import logging
|
2019-09-11 11:17:48 +00:00
|
|
|
import os
|
|
|
|
import re
|
|
|
|
import tempfile
|
2022-10-31 22:32:14 +00:00
|
|
|
import urllib
|
|
|
|
from unittest.mock import MagicMock, mock_open, patch
|
2019-09-11 11:17:48 +00:00
|
|
|
from zipfile import ZipFile
|
|
|
|
|
2022-10-31 22:32:14 +00:00
|
|
|
import pytest
|
|
|
|
|
2020-12-10 17:55:14 +00:00
|
|
|
from repo2docker import __version__
|
2022-10-31 22:32:14 +00:00
|
|
|
from repo2docker.contentproviders.base import ContentProviderException
|
|
|
|
from repo2docker.contentproviders.doi import DoiProvider
|
2019-09-11 11:17:48 +00:00
|
|
|
|
|
|
|
|
|
|
|
def test_content_id():
|
|
|
|
doi = DoiProvider()
|
|
|
|
assert doi.content_id is None
|
|
|
|
|
|
|
|
|
2020-12-10 17:55:14 +00:00
|
|
|
def test_url_headers(requests_mock):
|
|
|
|
requests_mock.get("https://mybinder.org", text="resp")
|
2019-09-11 11:17:48 +00:00
|
|
|
doi = DoiProvider()
|
|
|
|
|
|
|
|
headers = {"test1": "value1", "Test2": "value2"}
|
|
|
|
result = doi.urlopen("https://mybinder.org", headers=headers)
|
2020-12-10 17:55:14 +00:00
|
|
|
assert "test1" in result.request.headers
|
|
|
|
assert "Test2" in result.request.headers
|
2022-10-23 16:09:11 +00:00
|
|
|
assert result.request.headers["User-Agent"] == f"repo2docker {__version__}"
|
2019-09-11 11:17:48 +00:00
|
|
|
|
|
|
|
|
2023-10-15 14:08:19 +00:00
|
|
|
@pytest.mark.parametrize(
|
|
|
|
"requested_doi, expected",
|
|
|
|
[
|
|
|
|
("10.5281/zenodo.3242074", "https://zenodo.org/records/3242074"),
|
|
|
|
# Unresolving DOI:
|
|
|
|
("10.1/1234", "10.1/1234"),
|
|
|
|
],
|
|
|
|
)
|
|
|
|
def test_doi2url(requested_doi, expected):
|
2019-09-11 11:17:48 +00:00
|
|
|
doi = DoiProvider()
|
2023-10-15 14:08:19 +00:00
|
|
|
assert doi.doi2url(requested_doi) == expected
|