Exemple #1
0
    def test_delete_tagged_values_with_superclass(self):
        sst = CStereotype("SST", attributes={"intVal": 20, "intVal2": 30})
        st = CStereotype("ST",
                         superclasses=sst,
                         attributes={
                             "isBoolean": True,
                             "intVal": 1
                         })
        self.mcl.stereotypes = st

        cl = CClass(self.mcl,
                    "C",
                    stereotype_instances=st,
                    tagged_values={"isBoolean": False})
        cl.delete_tagged_value("isBoolean")
        cl.delete_tagged_value("intVal2")
        eq_(cl.tagged_values, {"intVal": 1})

        cl.set_tagged_value("intVal", 2, sst)
        cl.set_tagged_value("intVal", 3, st)
        eq_(cl.tagged_values, {"intVal": 3})
        cl.delete_tagged_value("intVal")
        eq_(cl.tagged_values, {"intVal": 2})

        cl.set_tagged_value("intVal", 2, sst)
        cl.set_tagged_value("intVal", 3, st)
        cl.delete_tagged_value("intVal", st)
        eq_(cl.tagged_values, {"intVal": 2})

        cl.set_tagged_value("intVal", 2, sst)
        cl.set_tagged_value("intVal", 3, st)
        cl.delete_tagged_value("intVal", sst)
        eq_(cl.tagged_values, {"intVal": 3})
Exemple #2
0
 def test_delete_tagged_values(self):
     s = CStereotype("S",
                     attributes={
                         "isBoolean": True,
                         "intVal": 1,
                         "floatVal": 1.1,
                         "string": "abc",
                         "list": ["a", "b"]
                     })
     self.mcl.stereotypes = s
     cl = CClass(self.mcl, "C", stereotype_instances=s)
     cl.delete_tagged_value("isBoolean")
     cl.delete_tagged_value("intVal")
     list_value = cl.delete_tagged_value("list")
     eq_(cl.tagged_values, {'floatVal': 1.1, 'string': 'abc'})
     eq_(list_value, ['a', 'b'])
Exemple #3
0
    def test_tagged_values_exceptional_cases(self):
        s = CStereotype("S", attributes={"b": True})
        self.mcl.stereotypes = s
        cl1 = CClass(self.mcl, "C", stereotype_instances=s)
        cl1.delete()

        try:
            cl1.get_tagged_value("b")
            exception_expected_()
        except CException as e:
            eq_(e.value, "can't get tagged value 'b' on deleted class")

        try:
            cl1.set_tagged_value("b", 1)
            exception_expected_()
        except CException as e:
            eq_(e.value, "can't set tagged value 'b' on deleted class")

        try:
            cl1.delete_tagged_value("b")
            exception_expected_()
        except CException as e:
            eq_(e.value, "can't delete tagged value 'b' on deleted class")

        try:
            cl1.tagged_values = {"b": 1}
            exception_expected_()
        except CException as e:
            eq_(e.value, "can't set tagged values on deleted class")

        try:
            # we just use list here, in order to not get a warning that cl1.tagged_values has no effect
            list(cl1.tagged_values)
            exception_expected_()
        except CException as e:
            eq_(e.value, "can't get tagged values on deleted class")

        cl = CClass(self.mcl, "C", stereotype_instances=s)
        try:
            cl.delete_tagged_value("x")
            exception_expected_()
        except CException as e:
            eq_(e.value, "tagged value 'x' unknown for 'C'")