Skip to content

Commit

Permalink
Clean up
Browse files Browse the repository at this point in the history
  • Loading branch information
Xiaoyun Liu committed Apr 29, 2024
1 parent 47371f8 commit 071e3fa
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 41 deletions.
2 changes: 1 addition & 1 deletion mutalyzer_retriever/retriever.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ def _fetch_unknown_source(reference_id, reference_type, reference_source, size_o
else:
status["lrg"]["errors"].append(
ValueError(
"Lrg fetch does not support '{}' reference type.".format(reference_type)
f"Lrg fetch does not support '{reference_type}' reference type."
)
)

Expand Down
12 changes: 9 additions & 3 deletions mutalyzer_retriever/sources/ensembl.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ def fetch_gff3(feature_id, api_base, timeout=1):
def _get_tark_versions(reference_id, api_base, timeout=1):
endpoint = "transcript"
params = {"stable_id": reference_id}
tark_req = json.loads(request(url=f"{api_base}/{endpoint}", params=params, timeout=timeout))
tark_req = json.loads(
request(url=f"{api_base}/{endpoint}", params=params, timeout=timeout)
)
tark_versions_38 = []
tark_versions_37 = []
if tark_req["results"]:
Expand Down Expand Up @@ -99,7 +101,9 @@ def fetch_json(reference_id, reference_version, api_base, assembly="GRCh38", tim
"stable_id_version": reference_version,
"expand": "translations, genes, exons",
}
req = requests.request(method="get", url=f"{api_base}/{endpoint}", params=params, timeout=timeout)
req = requests.request(
method="get", url=f"{api_base}/{endpoint}", params=params, timeout=timeout
)
return req.json()


Expand Down Expand Up @@ -150,4 +154,6 @@ def fetch(reference_id, reference_type=None, reference_source=None, timeout=1):
elif reference_type == "genbank":
return None, "genbank"

raise ValueError(f"{reference_source} fetch does not support {reference_type} reference type.")
raise ValueError(
f"{reference_source} fetch does not support {reference_type} reference type."
)
17 changes: 7 additions & 10 deletions tests/commons.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
import json
from pathlib import Path

import pytest

from mutalyzer_retriever.retriever import NoReferenceError


@pytest.fixture(autouse=True)
def patch_retriever(monkeypatch):
'''retrieve all monkeypath'''
"""retrieve all monkeypath"""
from .test_fetch import (
_fetch_gff3,
_fetch_json,
Expand All @@ -26,11 +24,6 @@ def patch_retriever(monkeypatch):
)
monkeypatch.setattr("mutalyzer_retriever.sources.ensembl.fetch_json", _fetch_json)
monkeypatch.setattr("mutalyzer_retriever.retriever.retrieve_raw", _retrieve_raw)







def _get_content(relative_location):
Expand All @@ -56,7 +49,11 @@ def _retrieve_raw(
elif r_id.startswith("LRG_"):
return _get_content("data/" + r_id + ".lrg"), "lrg", "lrg"
elif r_type == "json":
return (json.loads(_get_content("data/" + r_id + ".tark_raw.json")),"json","ensembl_tark")
return (
json.loads(_get_content("data/" + r_id + ".tark_raw.json")),
"json",
"ensembl_tark",
)
else:
return _get_content("data/" + r_id + ".gff3"), "gff3", "ncbi"

Expand Down Expand Up @@ -94,7 +91,7 @@ def _retrieve_raw(
"ENSG00000198899",
]
},
"ensembl_tark":{
"ensembl_tark": {
"json": [
"ENST00000383925.1",
"ENST00000383925",
Expand Down
2 changes: 0 additions & 2 deletions tests/test_fetch.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import pytest

from mutalyzer_retriever.configuration import settings
from mutalyzer_retriever.sources.ensembl import fetch

from .commons import _get_content, patch_retriever

API_BASE = settings["ENSEMBL_API"]
Expand Down
23 changes: 8 additions & 15 deletions tests/test_model_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,8 @@
from .commons import references, patch_retriever



def get_references_content(references):
'''read raw response from tests data folder'''
"""Read raw response from tests data folder"""
r_contents = []
for r_source in references.keys():
for r_type in references[r_source]:
Expand All @@ -25,11 +24,7 @@ def get_references_content(references):
)
r_content = json.loads(path_gb.open().read())
else:
path_gb = (
Path(Path(__file__).parent)
/ "data"
/ f"{r_id}.{r_type}"
)
path_gb = Path(Path(__file__).parent) / "data" / f"{r_id}.{r_type}"
with path_gb.open() as f:
r_content = f.read()
r_contents.append(
Expand All @@ -44,20 +39,18 @@ def get_references_content(references):
return r_contents


@pytest.mark.parametrize(
"r_source, r_type, r_content, r_id",
get_references_content(references),
)
@pytest.mark.parametrize("r_source, r_type, r_content, r_id", get_references_content(references))
def test_schema_validation(r_source, r_type, r_content, r_id, monkeypatch: pytest.MonkeyPatch):
'''parse raw response and check its output schema'''
monkeypatch.setattr("mutalyzer_retriever.parsers.json_ensembl._seq_from_rest",
lambda _0,_1, _2, _3, _4: _seq_from_rest(r_id))
"""Parse raw response and check its output schema"""
monkeypatch.setattr(
"mutalyzer_retriever.parsers.json_ensembl._seq_from_rest",
lambda _0, _1, _2, _3, _4: _seq_from_rest(r_id),
)
r_model = parser.parse(
reference_content=r_content,
reference_type=r_type,
reference_source=r_source,
)

if r_source in ["ensembl_tark", "lrg"]:
assert validate(r_model["annotations"]) is None
else:
Expand Down
23 changes: 13 additions & 10 deletions tests/test_retriever_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
from pathlib import Path

import pytest
from mutalyzer_retriever import retrieve_model
from .commons import references, _retrieve_raw, patch_retriever, _get_content

from mutalyzer_retriever import retrieve_model


def get_tests(references):
Expand All @@ -15,19 +15,22 @@ def get_tests(references):
for r_type in references[r_source].keys():
for r_id in references[r_source][r_type]:
if r_type == "json":
p = Path(Path(__file__).parent) / "data" / str(r_id + ".tark.model.json")
p = (
Path(Path(__file__).parent)
/ "data"
/ str(r_id + ".tark.model.json")
)
else:
p = Path(Path(__file__).parent) / "data" / str(r_id + ".model.json")
with p.open() as f:
r_model = json.loads(f.read())

tests.append(
pytest.param(
r_id,
r_source,
r_type,
r_model,
id="{}-{}-{}".format(r_source, r_type, r_id),
id=f"{r_source}-{r_type}-{r_id}",
)
)

Expand All @@ -38,10 +41,10 @@ def _seq_from_rest(r_id):
return _get_content("data/" + str(r_id) + ".sequence")



@pytest.mark.parametrize("r_id, r_source, r_type, expected_model",get_tests(references))
@pytest.mark.parametrize("r_id, r_source, r_type, expected_model", get_tests(references))
def test_model(r_id, r_source, r_type, expected_model, monkeypatch: pytest.MonkeyPatch):
monkeypatch.setattr("mutalyzer_retriever.parsers.json_ensembl._seq_from_rest",
lambda _0, _1, _2, _3, _4: _seq_from_rest(r_id))
assert retrieve_model(r_id, r_source,r_type) == expected_model

monkeypatch.setattr(
"mutalyzer_retriever.parsers.json_ensembl._seq_from_rest",
lambda _0, _1, _2, _3, _4: _seq_from_rest(r_id),
)
assert retrieve_model(r_id, r_source, r_type) == expected_model

0 comments on commit 071e3fa

Please sign in to comment.