Source code for gene_profiles_api.tests.test_agp_api

# pylint: disable=W0621,C0114,C0116,W0212,W0613
import pytest
from box import Box
from django.test.client import Client
from gpf_instance.gpf_instance import WGPFInstance
from pytest_mock import MockerFixture

from dae.gene_profile.statistic import GPStatistic
from dae.genomic_resources.gene_models.gene_models import Exon, TranscriptModel

ROUTE_PREFIX = "/api/v3/gene_profiles"


[docs] def test_configuration( admin_client: Client, t4c8_wgpf_instance: WGPFInstance, mocker: MockerFixture, ) -> None: mock_conf = { "defaultDataset": "ALL_genotypes", "geneLinks": [{ "name": "MockLink", "url": "{gpf_prefix}/{gene}/{genome}/", }], "confDir": "/data", "datasets": [{ "id": "MockDataset", }], } mocker.patch.object( t4c8_wgpf_instance, "get_wdae_gp_configuration", return_value=mock_conf, ) response = admin_client.get(f"{ROUTE_PREFIX}/single-view/configuration") assert response.status_code == 200 assert response.data == mock_conf # type: ignore print(response.data) # type: ignore
[docs] def test_get_statistic( admin_client: Client, t4c8_wgpf_instance: WGPFInstance, mocker: MockerFixture, ) -> None: mock_gp_statistic = GPStatistic( "CHD8", ["gene_set_1", "gene_set_2"], { "category_1": { "genomic_score_1": { "score_1": { "value_1": 1, "value_2": 2, }, }, }, }, { "study_1": { "autism": { "lgds": { "count": 1.0, "rate": 1000.0, }, "denovo_missense": { "count": 1.0, "rate": 1000.0, }, }, "unaffected": { "lgds": { "count": 0.0, "rate": 0.0, }, "denovo_missense": { "count": 2.0, "rate": 2000.0, }, }, }, }, ) mocker.patch.object( t4c8_wgpf_instance, "get_gp_statistic", return_value=mock_gp_statistic, ) response = admin_client.get(f"{ROUTE_PREFIX}/single-view/gene/CHD8") assert response.data["geneSymbol"] == "CHD8" # type: ignore assert response.data["geneSets"] == ["gene_set_1", "gene_set_2"] # type: ignore assert response.data["geneScores"] == [{ # type: ignore "id": "category_1", "scores": [{ "id": "genomic_score_1", "score_1": { "value_1": 1, "value_2": 2, }, }], }] assert response.data["studies"] == [{ # type: ignore "id": "study_1", "personSets": [ { "id": "autism", "effectTypes": [ { "id": "lgds", "value": { "count": 1.0, "rate": 1000.0, }, }, { "id": "denovo_missense", "value": { "count": 1.0, "rate": 1000.0, }, }, ], }, { "id": "unaffected", "effectTypes": [ { "id": "lgds", "value": { "count": 0.0, "rate": 0.0, }, }, { "id": "denovo_missense", "value": { "count": 2.0, "rate": 2000.0, }, }, ], }, ], }] assert response.status_code == 200 print(response.data) # type: ignore
[docs] def test_get_statistics( admin_client: Client, t4c8_wgpf_instance: WGPFInstance, mocker: MockerFixture, ) -> None: mocker.patch.object( t4c8_wgpf_instance, "query_gp_statistics", return_value=[ GPStatistic("CHD8", [], {}, {}).to_json(), GPStatistic("DIABLO", [], {}, {}).to_json(), GPStatistic("FARP1", [], {}, {}).to_json(), ], ) response = admin_client.get(f"{ROUTE_PREFIX}/table/rows") assert response.data[0]["geneSymbol"] == "CHD8" # type: ignore assert response.data[1]["geneSymbol"] == "DIABLO" # type: ignore assert response.data[2]["geneSymbol"] == "FARP1" # type: ignore print(response.data) # type: ignore
[docs] def test_get_gene_symbols( admin_client: Client, t4c8_wgpf_instance: WGPFInstance, mocker: MockerFixture, ) -> None: mocker.patch.object( t4c8_wgpf_instance, "list_gp_gene_symbols", return_value=["CHD8", "DIABLO", "FARP1"], ) response = admin_client.get(f"{ROUTE_PREFIX}/table/gene_symbols") assert response.status_code == 200 assert response.data == ["CHD8", "DIABLO", "FARP1"] # type: ignore