Skip to content

Commit

Permalink
added order test
Browse files Browse the repository at this point in the history
  • Loading branch information
sherwoodf committed Feb 12, 2025
1 parent dd1d914 commit ffd5011
Show file tree
Hide file tree
Showing 2 changed files with 78 additions and 0 deletions.
52 changes: 52 additions & 0 deletions bia-export/test/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import pytest
from bia_test_data.data_to_api import add_objects_to_api, get_client_with_retries
from bia_export.settings import Settings
from bia_shared_datamodels.uuid_creation import create_study_uuid
from pathlib import Path
import json
import os
Expand Down Expand Up @@ -30,3 +31,54 @@ def data_in_api():
private_client = get_client_with_retries(setttings.api_base_url)

add_objects_to_api(private_client, object_list)




@pytest.fixture(scope="session")
def api_studies_in_expected_order():
setttings = Settings()

base_study = Path(__file__).parent / "input_data" / "study" / "S-BIADTEST" / "a2fdbd58-ee11-4cd9-bc6a-f3d3da7fff71.json"

with open(base_study, "r") as object_file:
base_study_dict: dict = json.load(object_file)

object_list = []

study_1 = base_study_dict.copy() | {
"accession_id": "S-BIADTEST1",
"uuid": str(create_study_uuid("S-BIADTEST111")),
"release_date": "2024-01-01"
}
object_list.append(study_1)

study_2 = base_study_dict.copy() | {
"accession_id": "S-BIADTEST22",
"uuid": str(create_study_uuid("S-BIADTEST22")),
"release_date": "2024-01-01"
}
object_list.append(study_2)

study_3 = base_study_dict.copy() | {
"accession_id": "S-BIADTEST333",
"uuid": str(create_study_uuid("S-BIADTEST333")),
"release_date": "2024-01-03"
}
object_list.append(study_3)


study_4 = base_study_dict.copy() | {
"accession_id": "S-BIADTEST4444",
"uuid": str(create_study_uuid("S-BIADTEST4444")),
"release_date": "2024-01-02"
}
object_list.append(study_4)

private_client = get_client_with_retries(setttings.api_base_url)

add_objects_to_api(private_client, object_list)

expected_order_of_studies = [study_3, study_4, study_2, study_1]

return expected_order_of_studies
26 changes: 26 additions & 0 deletions bia-export/test/test_api_export.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from typer.testing import CliRunner
from pathlib import Path
import pytest
from bia_export.cli import (
app,
DEFAULT_WEBSITE_STUDY_FILE_NAME,
Expand Down Expand Up @@ -133,3 +134,28 @@ def test_cli_export_dataset_for_website_images(tmp_path: Path, data_in_api):
json_expected = json.load(f)

assert json_result == json_expected



def test_cli_export_study_ordering(tmp_path: Path, api_studies_in_expected_order: list[dict]):
outfile = tmp_path.joinpath("bia-dataset-metadata.json").resolve()

result = runner.invoke(
app,
[
"website",
"study",
"-o",
outfile,
],
)

assert result.exit_code == 0

expected_study_acc_id_order = [study["accession_id"] for study in api_studies_in_expected_order]

with open(outfile, "r") as f:
json_result: dict = json.load(f)

it = iter(json_result.keys())
assert all(acc_id in it for acc_id in expected_study_acc_id_order)

0 comments on commit ffd5011

Please sign in to comment.