Files
AareCommon/tests/test_data_collection_parameters.py
perl_d b038cd5348
CI / lint (push) Failing after 20s
CI / test (3.11) (push) Skipped
CI / test (3.12) (push) Skipped
CI / test (3.13) (push) Skipped
wip fix: basedpyright errors
2026-07-03 17:36:02 +02:00

75 lines
2.2 KiB
Python

import pytest
from aarecommon.models.models import DataCollectionParameters
from pydantic import ValidationError
def test_directory_defaults_when_missing():
params = DataCollectionParameters()
assert params.directory is None
def test_directory_blank_defaults_to_macro_path():
params = DataCollectionParameters(directory="")
assert params.directory == "{date}/{prefix}"
def test_directory_spaces_are_replaced():
params = DataCollectionParameters(directory="my folder/run 1")
assert params.directory == "my_folder/run_1"
def test_directory_rejects_invalid_characters():
with pytest.raises(ValidationError):
DataCollectionParameters(directory="bad|path")
def test_exposure_accepts_values_above_1_after_refactor():
params = DataCollectionParameters(exposure=1.5)
assert params.exposure == 1.5
def test_cloud_blank_defaults_to_true():
params = DataCollectionParameters(cloud="")
assert params.cloud is True
def test_directory_accepts_valid_macros():
params = DataCollectionParameters(directory="{date}/{prefix}/run")
assert params.directory == "{date}/{prefix}/run"
def test_aperture_accepts_float_string():
params = DataCollectionParameters(aperture="2.0")
assert params.aperture == 2
def test_processingpipeline_accepts_unknown_value_after_refactor():
params = DataCollectionParameters(processingpipeline="xia2")
assert params.processingpipeline == "xia2"
def test_datacollectionparameters_accepts_legacy_aliases():
params = DataCollectionParameters(
totalrange=180,
cellparameters="10 20 30 90 90 120",
userresolution=1.4, # type: ignore # legacy
)
assert params.totalangle == 180
assert params.unitcell == "10 20 30 90 90 120"
assert params.processingresolution == 1.4
def test_datacollectionparameters_accepts_new_fields():
params = DataCollectionParameters(
totalangle=90,
unitcell="11,22,33,90,90,120",
processingresolution=1.2,
pdbmodel="model.pdb",
cloud=False,
)
assert params.totalangle == 90
assert params.unitcell == "11,22,33,90,90,120"
assert params.processingresolution == 1.2
assert params.pdbmodel == "model.pdb"
assert params.cloud is False