Module manubot.cite.tests.test_curie
View Source
import pytest
from ..citekey import CiteKey
from ..curie import (
Handler_CURIE,
curie_to_url,
get_bioregistry,
get_prefix_to_resource,
)
def test_bioregistry_resource_patterns():
"""
Can find issues like https://github.com/biopragmatics/bioregistry/issues/242
"""
registry = get_bioregistry(compile_patterns=True)
assert isinstance(registry, list)
reports = []
for resource in registry:
assert resource["prefix"] # ensure prefix field exists
if "example" in resource and "pattern" in resource:
prefix = resource["prefix"]
example = resource["example"]
handler = Handler_CURIE(prefix)
example_curie = CiteKey(f"{prefix}:{example}")
report = handler.inspect(example_curie)
if report:
reports.append(report)
print("\n".join(reports))
assert not reports
def test_get_prefix_to_resource():
prefix_to_resource = get_prefix_to_resource()
assert isinstance(prefix_to_resource, dict)
assert "doid" in prefix_to_resource
resource = prefix_to_resource["doid"]
resource["preferred_prefix"] = "DOID"
@pytest.mark.parametrize(
"curie, expected",
[
("doi:10.1038/nbt1156", "https://doi.org/10.1038/nbt1156"),
("DOI:10.1038/nbt1156", "https://doi.org/10.1038/nbt1156"),
("arXiv:0807.4956v1", "https://arxiv.org/abs/0807.4956v1"),
(
"taxonomy:9606",
"http://purl.obolibrary.org/obo/NCBITaxon_9606",
),
("CHEBI:36927", "http://purl.obolibrary.org/obo/CHEBI_36927"),
("ChEBI:36927", "http://purl.obolibrary.org/obo/CHEBI_36927"),
(
"DOID:11337",
"http://purl.obolibrary.org/obo/DOID_11337",
),
(
"doid:11337",
"http://purl.obolibrary.org/obo/DOID_11337",
),
(
"clinicaltrials:NCT00222573",
"https://www.clinicaltrials.gov/study/NCT00222573",
),
(
"clinicaltrials:NCT04292899",
"https://www.clinicaltrials.gov/study/NCT04292899",
),
# formerly afflicted by https://github.com/identifiers-org/identifiers-org.github.io/issues/99#issuecomment-614690283
pytest.param(
"gramene.growthstage:0007133",
"http://www.bootstrep.eu/ontology/GRO#0007133",
id="gramene.growthstage",
),
],
)
def test_curie_to_url(curie, expected):
url = curie_to_url(curie)
assert url == expected
def test_curie_to_url_bad_curie():
with pytest.raises(ValueError):
curie_to_url("this.is.not:a_curie")
Functions
test_bioregistry_resource_patterns
def test_bioregistry_resource_patterns(
)
Can find issues like https://github.com/biopragmatics/bioregistry/issues/242
View Source
def test_bioregistry_resource_patterns():
"""
Can find issues like https://github.com/biopragmatics/bioregistry/issues/242
"""
registry = get_bioregistry(compile_patterns=True)
assert isinstance(registry, list)
reports = []
for resource in registry:
assert resource["prefix"] # ensure prefix field exists
if "example" in resource and "pattern" in resource:
prefix = resource["prefix"]
example = resource["example"]
handler = Handler_CURIE(prefix)
example_curie = CiteKey(f"{prefix}:{example}")
report = handler.inspect(example_curie)
if report:
reports.append(report)
print("\n".join(reports))
assert not reports
test_curie_to_url
def test_curie_to_url(
curie,
expected
)
View Source
@pytest.mark.parametrize(
"curie, expected",
[
("doi:10.1038/nbt1156", "https://doi.org/10.1038/nbt1156"),
("DOI:10.1038/nbt1156", "https://doi.org/10.1038/nbt1156"),
("arXiv:0807.4956v1", "https://arxiv.org/abs/0807.4956v1"),
(
"taxonomy:9606",
"http://purl.obolibrary.org/obo/NCBITaxon_9606",
),
("CHEBI:36927", "http://purl.obolibrary.org/obo/CHEBI_36927"),
("ChEBI:36927", "http://purl.obolibrary.org/obo/CHEBI_36927"),
(
"DOID:11337",
"http://purl.obolibrary.org/obo/DOID_11337",
),
(
"doid:11337",
"http://purl.obolibrary.org/obo/DOID_11337",
),
(
"clinicaltrials:NCT00222573",
"https://www.clinicaltrials.gov/study/NCT00222573",
),
(
"clinicaltrials:NCT04292899",
"https://www.clinicaltrials.gov/study/NCT04292899",
),
# formerly afflicted by https://github.com/identifiers-org/identifiers-org.github.io/issues/99#issuecomment-614690283
pytest.param(
"gramene.growthstage:0007133",
"http://www.bootstrep.eu/ontology/GRO#0007133",
id="gramene.growthstage",
),
],
)
def test_curie_to_url(curie, expected):
url = curie_to_url(curie)
assert url == expected
test_curie_to_url_bad_curie
def test_curie_to_url_bad_curie(
)
View Source
def test_curie_to_url_bad_curie():
with pytest.raises(ValueError):
curie_to_url("this.is.not:a_curie")
test_get_prefix_to_resource
def test_get_prefix_to_resource(
)
View Source
def test_get_prefix_to_resource():
prefix_to_resource = get_prefix_to_resource()
assert isinstance(prefix_to_resource, dict)
assert "doid" in prefix_to_resource
resource = prefix_to_resource["doid"]
resource["preferred_prefix"] = "DOID"