Пример #1
0
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
Пример #2
0
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"]