Source code for ewokstomo.tests.test_nxtomomill
import pytest
import importlib.resources as pkg_resources
from pathlib import Path
from ewoks import execute_graph
from ewokstomo.tasks.nxtomomill import FluoToNx, H5ToNx
DATA_ROOT = Path(__file__).resolve().parent / "data"
RAW_COLLECTION = "TestEwoksTomo"
[docs]
def get_json_file(file_name):
file_path = pkg_resources.files("ewokstomo.workflows").joinpath(file_name)
return file_path
[docs]
def get_data_file(file_name):
return str(DATA_ROOT / "RAW_DATA" / RAW_COLLECTION / file_name / f"{file_name}.h5")
[docs]
@pytest.mark.order(3)
@pytest.mark.parametrize("Task", [H5ToNx])
def test_nxtomomill_task_outputs(Task, tmp_path):
output_dir = tmp_path / "projections"
output_dir.mkdir()
h5_file_path = get_data_file("TestEwoksTomo_0010")
expected_output = output_dir / "TestEwoksTomo_0010.nx"
task = Task(
inputs={
"bliss_hdf5_path": h5_file_path,
"nx_path": str(expected_output),
}
)
task.execute()
assert str(Path(task.outputs.nx_path).resolve()) == str(expected_output)
assert expected_output.is_file()
[docs]
@pytest.mark.order(4)
@pytest.mark.parametrize("workflow", ["nxtomomill.json"])
def test_nxtomomill_workflow_outputs(workflow, tmp_path):
output_dir = tmp_path / "projections"
output_dir.mkdir()
h5_file_path = get_data_file("TestEwoksTomo_0010")
expected_output = output_dir / "TestEwoksTomo_0010.nx"
workflow_file_path = get_json_file(workflow)
output = execute_graph(
workflow_file_path,
inputs=[
{
"name": "bliss_hdf5_path",
"value": h5_file_path,
},
{"name": "nx_path", "value": str(expected_output)},
],
)
assert str(Path(output["nx_path"]).resolve()) == str(expected_output)
assert expected_output.is_file()
# assert Path(expected_output).is_file()
[docs]
@pytest.mark.order(5)
@pytest.mark.parametrize("workflow", ["nxtomomill_fluo2nx.json"])
def test_nxtomomill_workflow_fluo2nx(workflow, tmpdir):
print(type(tmpdir), tmpdir)
output_dir = tmpdir / "output"
output_dir.mkdir()
h5_file_path = get_data_file("SiemensLH_aligned_33keV_0002")
expected_output = f"{output_dir}/S_wf.nx"
workflow_file_path = get_json_file(workflow)
output = execute_graph(
workflow_file_path,
inputs=[
{
"name": "bliss_hdf5_path",
"value": h5_file_path,
},
{"name": "nx_path", "value": expected_output},
],
)
assert str(Path(output["nx_path"]).resolve()) == str(expected_output)
# assert Path(expected_output).is_file()
[docs]
@pytest.mark.order(6)
@pytest.mark.parametrize("Task", [FluoToNx])
def test_nxtomomill_fluo2nx(Task, tmpdir):
output_dir = tmpdir / "output"
output_dir.mkdir()
h5_file_path = get_data_file("SiemensLH_aligned_33keV_0002")
expected_output = str(output_dir / "S_task.nx")
task = Task(
inputs={
"bliss_hdf5_path": h5_file_path,
"nx_path": expected_output,
}
)
task.execute()
assert str(Path(task.outputs.nx_path).resolve()) == str(expected_output)
# assert Path(expected_output).is_file()