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"])
Esempio n. 5
0
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
 def setUp(self):
     self.meta = ChoiceArrayMeta("test description", ["a", "b"])