class TestMapMeta(unittest.TestCase): def test_values_set(self): self.assertIsInstance(self.mm.elements, dict) assert len(self.mm.elements) == 0 assert self.mm.typeid == "malcolm:core/MapMeta:1.0" def test_set_elements(self): els = dict(sam=StringArrayMeta()) self.mm.set_elements(els) assert self.mm.elements == els def test_set_required(self): self.test_set_elements() req = ("sam",) self.mm.set_required(req) assert self.mm.required == req def setUp(self): self.mm = MapMeta() self.sam = StringArrayMeta() self.serialized = OrderedDict() self.serialized["typeid"] = "malcolm:core/MapMeta:1.0" self.serialized["elements"] = dict(c1=self.sam.to_dict()) self.serialized["elements"]["c1"]["label"] = "C1" self.serialized["required"] = ["c1"] def test_to_dict(self): tm = MapMeta() tm.set_elements(dict(c1=self.sam)) tm.set_required(["c1"]) assert tm.to_dict() == self.serialized def test_from_dict(self): tm = MapMeta.from_dict(self.serialized) assert len(tm.elements) == 1 expected = self.sam.to_dict() expected["label"] = "C1" assert tm.elements["c1"].to_dict() == expected
class TestTableMeta(unittest.TestCase): def test_init(self): tm = TableMeta("desc") assert "desc" == tm.description assert "malcolm:core/TableMeta:1.0" == tm.typeid assert [] == tm.tags assert False is tm.writeable assert "" == tm.label def setUp(self): tm = TableMeta("desc") self.tm = tm self.tm.set_elements(dict(c1=StringArrayMeta())) self.sam = StringArrayMeta() self.serialized = OrderedDict() self.serialized["typeid"] = "malcolm:core/TableMeta:1.0" self.serialized["description"] = "desc" self.serialized["tags"] = [] self.serialized["writeable"] = True self.serialized["label"] = "Name" self.serialized["elements"] = dict(c1=self.sam.to_dict()) def test_set_elements(self): tm = self.tm elements = OrderedDict() elements["col1"] = StringArrayMeta() elements["col2"] = StringArrayMeta() tm.set_elements(elements) assert elements == tm.elements def test_set_elements_from_serialized(self): tm = self.tm elements = OrderedDict() elements["col1"] = StringArrayMeta().to_dict() elements["col2"] = StringArrayMeta().to_dict() tm.set_elements(elements) assert isinstance(tm.elements["col1"], StringArrayMeta) assert tm.elements["col1"].to_dict() == elements["col1"] def test_to_dict(self): tm = TableMeta("desc") tm.set_label("Name") tm.set_writeable(True) tm.set_elements(dict(c1=self.sam)) assert tm.to_dict() == self.serialized def test_from_dict(self): tm = TableMeta.from_dict(self.serialized) assert tm.description == "desc" assert len(tm.elements) == 1 assert tm.elements["c1"].to_dict() == self.sam.to_dict() assert tm.tags == [] assert tm.writeable is True assert tm.label == "Name" def test_validate_from_good_table(self): tm = self.tm t = tm.table_cls(c1=["me", "me3"]) t_serialized = t.to_dict() t = tm.validate(t) assert t.to_dict() == t_serialized def test_validate_from_serialized(self): tm = self.tm serialized = dict(typeid="anything", c1=("me", "me3")) t = tm.validate(serialized) assert list(t) == ["c1"] assert t.c1 == serialized["c1"]