Skip to content
Snippets Groups Projects
Commit 0b81d69f authored by Daniel CARRON's avatar Daniel CARRON :b:
Browse files

[test] Add tests for database checking

parent 37e0eeb1
No related branches found
No related tags found
1 merge request!22Fix db path issues when reusing DataLoaders from other Datamodules
Pipeline #84401 failed
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
def id_function(val): def id_function(val):
if isinstance(val, dict): if isinstance(val, dict):
...@@ -43,6 +45,17 @@ def test_protocol_consistency( ...@@ -43,6 +45,17 @@ def test_protocol_consistency(
) )
@pytest.mark.skip_if_rc_var_not_set("datadir.hivtb")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "hivtb-f0"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.hivtb") @pytest.mark.skip_if_rc_var_not_set("datadir.hivtb")
@pytest.mark.parametrize( @pytest.mark.parametrize(
"dataset", "dataset",
......
...@@ -10,6 +10,8 @@ import importlib ...@@ -10,6 +10,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
def id_function(val): def id_function(val):
if isinstance(val, dict): if isinstance(val, dict):
...@@ -47,6 +49,17 @@ def test_protocol_consistency( ...@@ -47,6 +49,17 @@ def test_protocol_consistency(
) )
@pytest.mark.skip_if_rc_var_not_set("datadir.indian")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["indian"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.indian") @pytest.mark.skip_if_rc_var_not_set("datadir.indian")
@pytest.mark.parametrize( @pytest.mark.parametrize(
"dataset", "dataset",
......
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
def id_function(val): def id_function(val):
if isinstance(val, dict): if isinstance(val, dict):
...@@ -44,6 +46,17 @@ def test_protocol_consistency( ...@@ -44,6 +46,17 @@ def test_protocol_consistency(
) )
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery") @pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.parametrize( @pytest.mark.parametrize(
"dataset", "dataset",
......
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
@pytest.mark.parametrize( @pytest.mark.parametrize(
"name", "name",
...@@ -53,3 +55,15 @@ def test_split_consistency(name: str): ...@@ -53,3 +55,15 @@ def test_split_consistency(name: str):
assert shenzhen.splits[split][0][0] == combined.splits[split][1][0] assert shenzhen.splits[split][0][0] == combined.splits[split][1][0]
assert isinstance(shenzhen.splits[split][0][1], ShenzhenLoader) assert isinstance(shenzhen.splits[split][0][1], ShenzhenLoader)
assert isinstance(combined.splits[split][1][1], ShenzhenLoader) assert isinstance(combined.splits[split][1][1], ShenzhenLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery-shenzhen"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
@pytest.mark.parametrize( @pytest.mark.parametrize(
"name", "name",
...@@ -65,3 +67,16 @@ def test_split_consistency(name: str): ...@@ -65,3 +67,16 @@ def test_split_consistency(name: str):
assert indian.splits[split][0][0] == combined.splits[split][2][0] assert indian.splits[split][0][0] == combined.splits[split][2][0]
assert isinstance(indian.splits[split][0][1], IndianLoader) assert isinstance(indian.splits[split][0][1], IndianLoader)
assert isinstance(combined.splits[split][2][1], IndianLoader) assert isinstance(combined.splits[split][2][1], IndianLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.skip_if_rc_var_not_set("datadir.indian")
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery-shenzhen-indian"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
@pytest.mark.parametrize( @pytest.mark.parametrize(
"name,padchest_name", "name,padchest_name",
...@@ -69,3 +71,17 @@ def test_split_consistency(name: str, padchest_name: str): ...@@ -69,3 +71,17 @@ def test_split_consistency(name: str, padchest_name: str):
assert padchest.splits[split][0][0] == combined.splits[split][3][0] assert padchest.splits[split][0][0] == combined.splits[split][3][0]
assert isinstance(padchest.splits[split][0][1], PadChestLoader) assert isinstance(padchest.splits[split][0][1], PadChestLoader)
assert isinstance(combined.splits[split][3][1], PadChestLoader) assert isinstance(combined.splits[split][3][1], PadChestLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
@pytest.mark.skip_if_rc_var_not_set("datadir.indian")
@pytest.mark.skip_if_rc_var_not_set("datadir.padchest")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery-shenzhen-indian-padchest"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
@pytest.mark.parametrize( @pytest.mark.parametrize(
"name,tbx11k_name", "name,tbx11k_name",
...@@ -89,3 +91,17 @@ def test_split_consistency(name: str, tbx11k_name: str): ...@@ -89,3 +91,17 @@ def test_split_consistency(name: str, tbx11k_name: str):
assert tbx11k.splits[split][0][0] == combined.splits[split][3][0] assert tbx11k.splits[split][0][0] == combined.splits[split][3][0]
assert isinstance(tbx11k.splits[split][0][1], TBX11kLoader) assert isinstance(tbx11k.splits[split][0][1], TBX11kLoader)
assert isinstance(combined.splits[split][3][1], TBX11kLoader) assert isinstance(combined.splits[split][3][1], TBX11kLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.montgomery")
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
@pytest.mark.skip_if_rc_var_not_set("datadir.indian")
@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["montgomery-shenzhen-indian-tbx11k-v1"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
def id_function(val): def id_function(val):
if isinstance(val, dict): if isinstance(val, dict):
...@@ -44,6 +46,17 @@ testdata = [ ...@@ -44,6 +46,17 @@ testdata = [
] ]
@pytest.mark.skip_if_rc_var_not_set("datadir.nih_cxr14")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "nih-cxr14"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.nih_cxr14") @pytest.mark.skip_if_rc_var_not_set("datadir.nih_cxr14")
@pytest.mark.parametrize("name,dataset,num_labels", testdata) @pytest.mark.parametrize("name,dataset,num_labels", testdata)
def test_loading(database_checkers, name: str, dataset: str, num_labels: int): def test_loading(database_checkers, name: str, dataset: str, num_labels: int):
......
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
@pytest.mark.parametrize( @pytest.mark.parametrize(
"name,padchest_name,combined_name", "name,padchest_name,combined_name",
...@@ -45,3 +47,15 @@ def test_split_consistency(name: str, padchest_name: str, combined_name: str): ...@@ -45,3 +47,15 @@ def test_split_consistency(name: str, padchest_name: str, combined_name: str):
assert padchest.splits[split][0][0] == combined.splits[split][1][0] assert padchest.splits[split][0][0] == combined.splits[split][1][0]
assert isinstance(padchest.splits[split][0][1], PadChestLoader) assert isinstance(padchest.splits[split][0][1], PadChestLoader)
assert isinstance(combined.splits[split][1][1], PadChestLoader) assert isinstance(combined.splits[split][1][1], PadChestLoader)
@pytest.mark.skip_if_rc_var_not_set("datadir.nih_cxr14")
@pytest.mark.skip_if_rc_var_not_set("datadir.padchest")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "nih-cxr14-padchest"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
def id_function(val): def id_function(val):
if isinstance(val, dict): if isinstance(val, dict):
...@@ -40,6 +42,17 @@ def test_protocol_consistency( ...@@ -40,6 +42,17 @@ def test_protocol_consistency(
) )
@pytest.mark.skip_if_rc_var_not_set("datadir.padchest")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "padchest-idiap"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
testdata = [ testdata = [
("idiap", "train", 193), ("idiap", "train", 193),
("idiap", "test", 1), ("idiap", "test", 1),
......
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
def id_function(val): def id_function(val):
if isinstance(val, dict): if isinstance(val, dict):
...@@ -44,6 +46,17 @@ def test_protocol_consistency( ...@@ -44,6 +46,17 @@ def test_protocol_consistency(
) )
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["shenzhen"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen") @pytest.mark.skip_if_rc_var_not_set("datadir.shenzhen")
@pytest.mark.parametrize( @pytest.mark.parametrize(
"dataset", "dataset",
......
...@@ -7,6 +7,8 @@ import importlib ...@@ -7,6 +7,8 @@ import importlib
import pytest import pytest
from click.testing import CliRunner
def id_function(val): def id_function(val):
if isinstance(val, dict): if isinstance(val, dict):
...@@ -46,6 +48,17 @@ def test_protocol_consistency( ...@@ -46,6 +48,17 @@ def test_protocol_consistency(
) )
@pytest.mark.skip_if_rc_var_not_set("datadir.tbpoc")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["tbpoc-f0"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.tbpoc") @pytest.mark.skip_if_rc_var_not_set("datadir.tbpoc")
@pytest.mark.parametrize( @pytest.mark.parametrize(
"dataset", "dataset",
......
...@@ -9,6 +9,8 @@ import typing ...@@ -9,6 +9,8 @@ import typing
import pytest import pytest
import torch import torch
from click.testing import CliRunner
def id_function(val): def id_function(val):
if isinstance(val, (dict, tuple)): if isinstance(val, (dict, tuple)):
...@@ -231,6 +233,22 @@ def check_loaded_batch( ...@@ -231,6 +233,22 @@ def check_loaded_batch(
# __import__("pdb").set_trace() # __import__("pdb").set_trace()
@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k")
def test_database_check():
from mednet.scripts.database import check
runner = CliRunner()
result = runner.invoke(check, ["--limit=10", "tbx11k-v1-f0"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
result = runner.invoke(check, ["--limit=10", "tbx11k-v2-f0"])
assert (
result.exit_code == 0
), f"Exit code {result.exit_code} != 0 -- Output:\n{result.output}"
@pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k") @pytest.mark.skip_if_rc_var_not_set("datadir.tbx11k")
@pytest.mark.parametrize( @pytest.mark.parametrize(
"dataset", "dataset",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment