mirror of
https://github.com/UiO-Gaming/ShiteMusicBot.git
synced 2026-11-05 13:56:51 +01:00
92 lines
2.5 KiB
Python
92 lines
2.5 KiB
Python
from .dictmapper import DictMapper
|
|
|
|
|
|
class TestDictMapper():
|
|
def test_dict_mapper_basic_set(self):
|
|
d = {}
|
|
DictMapper.set(d, ["a", "b", "c"], 1)
|
|
assert d == {"a": {"b": {"c": 1}}}
|
|
|
|
def test_dict_mapper_basic_get(self):
|
|
d = {"a": {"b": {"c": 1}}}
|
|
assert DictMapper.get(d, ["a", "b", "c"]) == 1
|
|
|
|
def test_get_variations(self):
|
|
d = {"a": {"b": {"c": 1}}}
|
|
|
|
assert DictMapper.get(d, ["a", "b", "c"]) == DictMapper.get(d["a"], ["b", "c"])
|
|
assert DictMapper.get(d, ["a", "b", "c"]) == DictMapper.get(d["a"]["b"], ["c"])
|
|
assert DictMapper.get(d, ["a", "b", "c"]) == d["a"]["b"]["c"]
|
|
|
|
def test_get_sub_dictionaries(self):
|
|
d = {"a": {"b": {"c": 1}}}
|
|
assert DictMapper.get(d, ["a", "b"]) == d["a"]["b"]
|
|
assert DictMapper.get(d["a"], ["b"]) == DictMapper.get(d["a"], ["b"])
|
|
|
|
def test_set_variation(self):
|
|
d = {"a": {"b": {"c": 1}}}
|
|
d1 = {}
|
|
d2 = {}
|
|
|
|
DictMapper.set(d1, ["a", "b"], {"c": 1})
|
|
assert d1 == d
|
|
|
|
DictMapper.set(d2, ["a"], {"b": {"c": 1}})
|
|
assert d2 == d
|
|
|
|
def test_multiple_paths(self):
|
|
d = {}
|
|
|
|
DictMapper.set(d, ["a", "b1", "c"], 1)
|
|
DictMapper.set(d, ["a", "b1", "d"], 2)
|
|
DictMapper.set(d, ["a", "b2", "c"], 3)
|
|
DictMapper.set(d, ["a", "b2", "d"], 4)
|
|
|
|
expected = {
|
|
"a": {
|
|
"b1": {
|
|
"c": 1,
|
|
"d": 2,
|
|
},
|
|
"b2": {
|
|
"c": 3,
|
|
"d": 4,
|
|
}
|
|
}
|
|
}
|
|
assert d == expected
|
|
|
|
def test_overwrite(self):
|
|
d = {}
|
|
|
|
DictMapper.set(d, ["a", "b1", "c"], 1)
|
|
DictMapper.set(d, ["a", "b1", "d"], 2)
|
|
DictMapper.set(d, ["a", "b2", "c"], 3)
|
|
DictMapper.set(d, ["a", "b2", "d"], 4)
|
|
|
|
expected = {
|
|
"a": {
|
|
"b1": {
|
|
"c": 1,
|
|
"d": 2,
|
|
},
|
|
"b2": {
|
|
"c": 3,
|
|
"d": 4,
|
|
}
|
|
}
|
|
}
|
|
assert d == expected
|
|
|
|
DictMapper.set(d, ["a", "b2"], 4)
|
|
expected = {
|
|
"a": {
|
|
"b1": {
|
|
"c": 1,
|
|
"d": 2,
|
|
},
|
|
"b2": 4,
|
|
}
|
|
}
|
|
assert d == expected
|