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})
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'])
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'")