55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
import pytest
|
|
from pydantic import ValidationError
|
|
|
|
from template_code_location.dataframe_level_anonymisation.config_models.base_config import BaseConfiguration
|
|
|
|
|
|
def test_valid_configuration_with_overrides():
|
|
cfg = BaseConfiguration(
|
|
ident=["id"],
|
|
quasi_identifiers=["age"],
|
|
supp_level=10.0,
|
|
generalisation_hierarchies={"age": "age_hierarchy"},
|
|
)
|
|
assert cfg.ident == ["id"]
|
|
assert cfg.quasi_identifiers == ["age"]
|
|
assert cfg.supp_level == 10.0
|
|
assert cfg.generalisation_hierarchies == {"age": "age_hierarchy"}
|
|
|
|
|
|
def test_default_values_are_loaded():
|
|
cfg = BaseConfiguration()
|
|
assert cfg.ident == ["Name"]
|
|
assert cfg.quasi_identifiers == ["Age"]
|
|
assert cfg.supp_level == 50.0
|
|
assert cfg.generalisation_hierarchies == {"Age": "simpl_age"}
|
|
|
|
|
|
def test_missing_ident_raises_error():
|
|
with pytest.raises(ValidationError):
|
|
BaseConfiguration(
|
|
ident=[]
|
|
)
|
|
|
|
|
|
def test_missing_quasi_ident_raises_error():
|
|
with pytest.raises(ValidationError):
|
|
BaseConfiguration(
|
|
quasi_identifiers=[]
|
|
)
|
|
|
|
|
|
def test_overlap_between_ident_and_quasi_identifiers():
|
|
with pytest.raises(ValidationError):
|
|
BaseConfiguration(
|
|
ident=["age"],
|
|
quasi_identifiers=["age"]
|
|
)
|
|
|
|
|
|
def test_supp_level_bounds():
|
|
with pytest.raises(ValidationError):
|
|
BaseConfiguration(
|
|
supp_level=150.0 # fuori range
|
|
)
|