class TestChoicePart(unittest.TestCase): def setUp(self): self.o = ChoicePart(name="cp", description="desc", choices=["a", "b"], value="a", writeable=True) self.c = Controller("mri") self.c.add_part(self.o) self.c.setup(Process("proc")) def test_init(self): assert self.o.name == "cp" assert self.o.attr.value == "a" assert self.o.attr.meta.description == "desc" assert self.o.attr.meta.choices == ["a", "b"] assert self.o.attr.meta.tags == ["widget:combo", "config:1"] assert self.c.field_registry.fields[self.o] == [ ("cp", self.o.attr, self.o.attr.set_value, False) ] def test_setter(self): assert self.o.attr.value == "a" self.o.attr.set_value("b") assert self.o.attr.value == "b" with self.assertRaises(ValueError): self.o.attr.set_value("c")
class TestHelpPart(unittest.TestCase): def setUp(self): self.o = HelpPart(help_url="/BLOCK.html") self.c = Controller("mri") self.c.add_part(self.o) self.c.setup(Process("proc")) def test_init(self): assert self.o.name == "help" assert self.o.attr.value == "/BLOCK.html" assert self.o.attr.meta.tags == ["widget:help"] assert self.c.field_registry.fields[self.o] == [ ("help", self.o.attr, None, False) ]
class TestStringPart(unittest.TestCase): def setUp(self): self.o = StringPart(name="sp", description="desc") self.c = Controller("mri") self.c.add_part(self.o) self.c.setup(Process("proc")) def test_init(self): assert self.o.name == "sp" assert self.o.attr.value == "" assert self.o.attr.meta.description == "desc" assert self.o.attr.meta.tags == ["widget:textupdate"] assert self.c.field_registry.fields[self.o] == [ ("sp", self.o.attr, None, False) ]
class TestIconPart(unittest.TestCase): def setUp(self): svg_name = "/tmp/test_icon.svg" self.svg_text = '<svg><rect width="300" height="100"/></svg>' with open(svg_name, "w") as f: f.write(self.svg_text) self.o = IconPart(svg=svg_name) self.c = Controller("mri") self.c.add_part(self.o) self.c.setup(Process("proc")) def test_init(self): assert self.o.name == "icon" assert self.o.attr.value == self.svg_text assert self.o.attr.meta.description == "SVG icon for the Block" assert self.o.attr.meta.tags == ["widget:icon"] assert self.c.field_registry.fields[self.o] == [ ("icon", self.o.attr, None, False) ]
class TestBlockPart(unittest.TestCase): def setUp(self): self.o = BlockPart(name="panda", description="desc") self.c = Controller("mri") self.c.add_part(self.o) self.c.setup(Process("proc")) def test_init(self): assert self.o.name == "panda" assert self.o.attr.value == "" assert self.o.attr.meta.description == "desc" assert self.o.attr.meta.tags == [ "widget:textinput", "config:1", "sinkPort:block:", ] assert self.c.field_registry.fields[self.o] == [ ("panda", self.o.attr, self.o.attr.set_value, False) ]
class TestFloat64Part(unittest.TestCase): def setUp(self): self.o = Float64Part(name="fp", description="desc", value=2.3, writeable=True) self.c = Controller("mri") self.c.add_part(self.o) self.c.setup(Process("proc")) def test_init(self): assert self.o.name == "fp" assert self.o.attr.value == 2.3 assert self.o.attr.meta.description == "desc" assert self.o.attr.meta.dtype == "float64" assert self.o.attr.meta.tags == ["widget:textinput", "config:1"] assert self.c.field_registry.fields[self.o] == [ ("fp", self.o.attr, self.o.attr.set_value, False) ]
class TestGroupPart(unittest.TestCase): def setUp(self): self.o = GroupPart(name="things", description="A group of things") self.c = Controller("mri") self.c.add_part(self.o) self.c.setup(Process("proc")) def test_init(self): assert self.o.name == "things" assert self.o.attr.value == "expanded" assert self.o.attr.meta.description == "A group of things" assert self.o.attr.meta.tags == ["widget:group", "config:1"] assert self.c.field_registry.fields[self.o] == [ ("things", self.o.attr, self.o.attr.set_value, False) ] def test_setter(self): assert self.o.attr.value == "expanded" self.o.attr.set_value("collapsed") assert self.o.attr.value == "collapsed" with self.assertRaises(ValueError): self.o.attr.set_value("anything else")
class TestPart(unittest.TestCase): def setUp(self): self.c = Controller("c") self.p = Process("proc") def test_init(self): p = Part("name") assert p.name == "name" self.c.add_part(p) self.c.setup(self.p) assert p.registrar def test_bad_name(self): with self.assertRaises(AssertionError): Part("dotted.name") def test_good_name(self): Part("Part-With-dashes_43") def test_bad_field_name(self): p = BadPart("name") with self.assertRaises(AssertionError): self.c.add_part(p)