class TestValidate(unittest.TestCase): def setUp(self): self.meta = ChoiceArrayMeta("test description", ["a", "b"]) def test_validate_none(self): self.assertIsNone(self.meta.validate(None)) def test_validate(self): response = self.meta.validate(["b", "a"]) self.assertEqual(["b", "a"], response) def test_not_iterable_raises(self): value = "abb" self.assertRaises(ValueError, self.meta.validate, value) def test_null_element_raises(self): array = ["b", None] self.assertRaises(ValueError, self.meta.validate, array) def test_invalid_choice_raises(self): with self.assertRaises(ValueError): self.meta.validate(["a", "x"])
class TestValidate(unittest.TestCase): def setUp(self): self.meta = ChoiceArrayMeta("test description", ["a", "b"]) def test_validate_none(self): self.assertEquals(self.meta.validate(None), []) def test_validate(self): response = self.meta.validate(["b", "a"]) self.assertEqual(["b", "a"], response) def test_not_iterable_raises(self): value = "abb" self.assertRaises(ValueError, self.meta.validate, value) def test_null_element_raises(self): array = ["b", None] self.assertRaises(ValueError, self.meta.validate, array) def test_invalid_choice_raises(self): with self.assertRaises(ValueError): self.meta.validate(["a", "x"])
def setUp(self): self.meta = ChoiceArrayMeta("test description", ["a", "b"])
def test_init(self): self.meta = ChoiceArrayMeta("test description", ["a", "b"]) self.assertEqual("test description", self.meta.description) self.assertEqual(self.meta.label, "") self.assertEqual(self.meta.typeid, "malcolm:core/ChoiceArrayMeta:1.0") self.assertEqual(self.meta.choices, ["a", "b"])
from malcolm.compat import OrderedDict from malcolm.core import Part, Table, Info from malcolm.core.vmetas import StringArrayMeta, ChoiceArrayMeta, TableMeta, \ NumberArrayMeta from malcolm.controllers.runnablecontroller import RunnableController # Make a table for the dataset info we produce dataset_types = [ "primary", "secondary", "monitor", "position_set", "position_value"] columns = OrderedDict() columns["name"] = StringArrayMeta("Dataset name") columns["filename"] = StringArrayMeta( "Filename of HDF file relative to fileDir") columns["type"] = ChoiceArrayMeta("Type of dataset", dataset_types) columns["rank"] = NumberArrayMeta("int32", "Rank (number of dimensions)") columns["path"] = StringArrayMeta("Dataset path within HDF file") columns["uniqueid"] = StringArrayMeta("UniqueID array path within HDF file") dataset_table_meta = TableMeta("Datsets produced in HDF file", columns=columns) # Produced by plugins in part_info class DatasetProducedInfo(Info): def __init__(self, name, filename, type, rank, path, uniqueid): self.name = name self.filename = filename assert type in dataset_types, \ "Dataset type %s not in %s" % (type, dataset_types) self.type = type self.rank = rank self.path = path self.uniqueid = uniqueid