2024-04-18 20:31:19 +00:00
|
|
|
from collections import defaultdict
|
|
|
|
|
2024-04-18 09:06:42 +00:00
|
|
|
from co3.components import Relation
|
|
|
|
|
|
|
|
from setups import vegetables as veg
|
|
|
|
|
|
|
|
|
2024-04-18 20:31:19 +00:00
|
|
|
tomato = veg.Tomato('t1', 10)
|
2024-04-18 09:06:42 +00:00
|
|
|
|
2024-04-18 20:31:19 +00:00
|
|
|
def test_co3_registry():
|
|
|
|
keys_to_groups = defaultdict(list)
|
2024-04-18 09:06:42 +00:00
|
|
|
|
2024-04-18 20:31:19 +00:00
|
|
|
# collect groups each key is associated
|
2024-05-01 23:46:25 +00:00
|
|
|
for group, keys in tomato.group_registry.items():
|
|
|
|
for key in keys:
|
|
|
|
keys_to_groups[key].append(group)
|
2024-04-18 09:06:42 +00:00
|
|
|
|
2024-05-01 23:46:25 +00:00
|
|
|
assert set(tomato.key_registry.get(None,{}).keys()) == set(keys_to_groups.get(None,[]))
|
|
|
|
|
|
|
|
# check against `registry`, should map keys to all groups
|
|
|
|
for key, group_obj in tomato.key_registry.items():
|
|
|
|
if key is None: continue
|
|
|
|
|
|
|
|
_, groups = group_obj
|
|
|
|
assert keys_to_groups.get(key) == groups
|
2024-04-18 09:06:42 +00:00
|
|
|
|
2024-04-18 20:31:19 +00:00
|
|
|
def test_co3_attributes():
|
|
|
|
assert tomato.attributes is not None
|
2024-04-18 09:06:42 +00:00
|
|
|
|
2024-04-18 20:31:19 +00:00
|
|
|
def test_co3_components():
|
|
|
|
assert tomato.components is not None
|
2024-04-18 09:06:42 +00:00
|
|
|
|
2024-04-18 20:31:19 +00:00
|
|
|
def test_co3_collation_attributes():
|
2024-05-01 23:46:25 +00:00
|
|
|
for group, keys in tomato.group_registry.items():
|
|
|
|
for key in keys:
|
|
|
|
assert tomato.collation_attributes(key, group) is not None
|
2024-04-18 09:06:42 +00:00
|
|
|
|
2024-04-18 20:31:19 +00:00
|
|
|
def test_co3_collate():
|
2024-05-01 23:46:25 +00:00
|
|
|
for group, keys in tomato.group_registry.items():
|
|
|
|
for key in keys:
|
|
|
|
if key is None: continue
|
|
|
|
assert tomato.collate(key) is not None
|