Skip to content
This repository has been archived by the owner on Jan 28, 2025. It is now read-only.

FIX: file_name in demographics distribution query #166

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/bunny/core/query_solvers.py
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@ def solve_distribution(
result_file = File(
data=res_b64,
description="Result of code.distribution anaylsis",
name=DISTRIBUTION_TYPE_FILE_NAMES_MAP.get(query.analysis, ""),
name=DISTRIBUTION_TYPE_FILE_NAMES_MAP.get(query.code, ""),
sensitive=True,
reference="",
size=size,
Expand Down
84 changes: 84 additions & 0 deletions app/bunny/test/test_demographics_distribution_query.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
import pytest
from core.query_solvers import DistributionQuery, solve_distribution
from core.db_manager import SyncDBManager
from core.rquest_dto.result import RquestResult
from core.rquest_dto.file import File
from dotenv import load_dotenv
import os
import core.settings as settings

load_dotenv()


@pytest.fixture
def db_manager():
datasource_db_port = os.getenv("DATASOURCE_DB_PORT")
return SyncDBManager(
username=os.getenv("DATASOURCE_DB_USERNAME"),
password=os.getenv("DATASOURCE_DB_PASSWORD"),
host=os.getenv("DATASOURCE_DB_HOST"),
port=(int(datasource_db_port) if datasource_db_port is not None else None),
database=os.getenv("DATASOURCE_DB_DATABASE"),
drivername=os.getenv("DATASOURCE_DB_DRIVERNAME", settings.DEFAULT_DB_DRIVER),
schema=os.getenv("DATASOURCE_DB_SCHEMA"),
)


@pytest.fixture
def distribution_query():
return DistributionQuery(
owner="user1",
code="DEMOGRAPHICS",
analysis="DISTRIBUTION",
uuid="unique_id",
collection="collection_id"

)


@pytest.fixture
def distribution_example():
return RquestResult(
uuid="unique_id",
status="ok",
collection_id="collection_id",
count=1,
datasets_count=1,
files=[File(
name="demographics.distribution",
data="",
description="Result of code.distribution anaylsis",
size=0.308,
type_="BCOS",
sensitive=True,
reference=""
)
],
message="",
protocol_version="v2",
)


@pytest.fixture
def distribution_result(db_manager, distribution_query):
db_manager.list_tables()
return solve_distribution(db_manager=db_manager, query=distribution_query)

def test_solve_distribution_returns_result(distribution_result):
assert isinstance(distribution_result, RquestResult)

def test_solve_distribution_is_ok(distribution_result):
assert distribution_result.status == "ok"

def test_solve_distribution_files_count(distribution_result):
assert len(distribution_result.files) == 1

def test_solve_distribution_files_type(distribution_result):
assert isinstance(distribution_result.files[0], File)

def test_solve_distribution_match_query(distribution_result, distribution_example):
assert distribution_result.files[0].name == distribution_example.files[0].name
assert distribution_result.files[0].type_ == distribution_example.files[0].type_
assert distribution_result.files[0].description == distribution_example.files[0].description
assert distribution_result.files[0].sensitive == distribution_example.files[0].sensitive
assert distribution_result.files[0].reference == distribution_example.files[0].reference