forked from openMetadataInitiative/openMINDS_Python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_validation.py
More file actions
27 lines (21 loc) · 794 Bytes
/
test_validation.py
File metadata and controls
27 lines (21 loc) · 794 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import openminds.v4 as om
def test_invalid_type():
# invalid: type
mouse = om.controlled_terms.Species.mus_musculus
dsv = om.core.DatasetVersion(accessibility=mouse)
assert dsv.validate(ignore=["required"]) == {
"type": ["accessibility: Expected ProductAccessibility, value contains Species"]
}
# valid
dsv = om.core.DatasetVersion(study_targets=[mouse])
assert dsv.validate(ignore=["required"]) == {}
# invalid: doubly-nested list
dsv = om.core.DatasetVersion(study_targets=[[mouse]])
assert "value contains list" in dsv.validate(ignore=["required"])["type"][0]
def test_required():
p = om.core.Person()
assert p.validate() == {
"required": [
"given_name is required, but was not provided",
]
}