예제 #1
0
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")
예제 #2
0
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)
        ]
예제 #3
0
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)
        ]
예제 #4
0
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)
        ]
예제 #5
0
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)
        ]
예제 #6
0
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)
        ]
예제 #7
0
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")
예제 #8
0
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)