Admin Panel
from amitools.vamos.cfgcore import DictTrafo
def cfgcore_dicttrafo_empty_test():
dt = DictTrafo()
data = {
"A": 12,
"B": "hello",
"C": [1, 2, 3]
}
assert dt.transform(data) == {}
def cfgcore_dicttrafo_simple_test():
cfg = {
"a": {"x": "A",
"y": "B"},
"b": "C"
}
dt = DictTrafo(cfg)
data = {
"A": 12,
"B": "hello",
"C": [1, 2, 3]
}
assert dt.transform(data) == {
"a": {"x": 12,
"y": "hello"},
"b": [1, 2, 3]
}
def cfgcore_dicttrafo_prefix_test():
cfg = {
"a": {"x": "A",
"y": "B"},
"b": "C"
}
dt = DictTrafo(cfg, prefix="tree")
data = {
"tree": {
"A": 12,
"B": "hello",
"C": [1, 2, 3]
}
}
assert dt.transform(data) == {
"a": {"x": 12,
"y": "hello"},
"b": [1, 2, 3]
}
def cfgcore_dicttrafo_tuple_test():
cfg = {
"a": {"x": ("tree", "A"),
"y": ("tree", "B")},
"b": ("tree", "C")
}
dt = DictTrafo(cfg)
data = {
"tree": {
"A": 12,
"B": "hello",
"C": [1, 2, 3]
}
}
assert dt.transform(data) == {
"a": {"x": 12,
"y": "hello"},
"b": [1, 2, 3]
}
def cfgcore_dicttrafo_tuple_prefix_test():
cfg = {
"a": {"x": ("tree", "A"),
"y": ("tree", "B")},
"b": ("tree", "C")
}
dt = DictTrafo(cfg, prefix=("x", "y"))
data = {
"x": {
"y": {
"tree": {
"A": 12,
"B": "hello",
"C": [1, 2, 3]
}
}
}
}
assert dt.transform(data) == {
"a": {"x": 12,
"y": "hello"},
"b": [1, 2, 3]
}
def cfgcore_dicttrafo_callable_test():
cfg = {
"a": {"x": (lambda k, x: x*2, ("tree", "A")),
"y": (lambda k, x: x+" world", ("tree", "B"))},
"b": (lambda k, x: sum(x), ("tree", "C"))
}
dt = DictTrafo(cfg, prefix=("x", "y"))
data = {
"x": {
"y": {
"tree": {
"A": 12,
"B": "hello",
"C": [1, 2, 3]
}
}
}
}
assert dt.transform(data) == {
"a": {"x": 24,
"y": "hello world"},
"b": 6
}