コード例 #1
0
 def test_values_setter_overwrite(self):
     cl = CClass(self.mcl, "C", attributes={
         "isBoolean": True,
         "intVal": 1})
     o = CObject(cl, "o", values={
         "isBoolean": False, "intVal": 2})
     o.values = {"isBoolean": True, "intVal": 20}
     eq_(o.get_value("isBoolean"), True)
     eq_(o.get_value("intVal"), 20)
     eq_(o.values, {'isBoolean': True, 'intVal': 20})
     o.values = {}
     # values should not delete existing values
     eq_(o.values, {"isBoolean": True, "intVal": 20})
コード例 #2
0
 def test_values_setter_malformed_description(self):
     cl = CClass(self.mcl, "C", attributes={
         "isBoolean": True,
         "intVal": 1})
     o = CObject(cl, "o")
     try:
         o.values = [1, 2, 3]
         exception_expected_()
     except CException as e:
         eq_(e.value, "malformed attribute values description: '[1, 2, 3]'")
コード例 #3
0
    def test_attribute_values_exceptional_cases(self):
        cl = CClass(self.mcl, "C", attributes={"b": True})
        o1 = CObject(cl, "o")
        o1.delete()

        try:
            o1.get_value("b")
            exception_expected_()
        except CException as e:
            eq_(e.value, "can't get value 'b' on deleted object")

        try:
            o1.set_value("b", 1)
            exception_expected_()
        except CException as e:
            eq_(e.value, "can't set value 'b' on deleted object")

        try:
            o1.delete_value("b")
            exception_expected_()
        except CException as e:
            eq_(e.value, "can't delete value 'b' on deleted object")

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

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

        o = CObject(cl, "o")
        try:
            o.delete_value("x")
            exception_expected_()
        except CException as e:
            eq_(e.value, "attribute 'x' unknown for 'o'")
コード例 #4
0
    def test_links_as_attribute_values(self):
        code = CClass(self.mcl, "Code")
        source = CClass(self.mcl, "Source")
        code.association(source, "[contained_code] * -> [source] *")
        code_a = CClass(self.mcl, "Code A", superclasses=code)
        code_b = CClass(self.mcl, "Code B", superclasses=code)
        a_b_association = code_a.association(code_b,
                                             "a_b: [code_a] * -> [code_b] *",
                                             superclasses=code)
        code_a1 = CObject(code_a, "code_a1")
        code_b1 = CObject(code_b, "code_b1")
        code_b2 = CObject(code_b, "code_b2")
        a_b_links = add_links({code_a1: [code_b1, code_b2]},
                              association=a_b_association)

        links_list = [code_a1, code_b2, code_b1, a_b_links[0], a_b_links[1]]

        collection_type = CClass(self.mcl,
                                 "Collection Type",
                                 attributes={
                                     "primary_code": code,
                                     "default_value_code": a_b_links[0],
                                     "codes": list,
                                     "default_values_list": links_list
                                 })
        collection = CObject(collection_type)

        eq_(collection.get_value("primary_code"), None)
        eq_(collection.get_value("default_value_code"), a_b_links[0])
        eq_(collection.get_value("codes"), None)
        eq_(collection.get_value("default_values_list"), links_list)

        collection.set_value("primary_code", a_b_links[1])
        collection.set_value("default_value_code", a_b_links[1])
        collection.set_value("codes", [code_a1, a_b_links[0]])
        collection.set_value("default_values_list",
                             [a_b_links[0], a_b_links[1]])

        eq_(collection.get_value("primary_code"), a_b_links[1])
        eq_(collection.get_value("default_value_code"), a_b_links[1])
        eq_(collection.get_value("codes"), [code_a1, a_b_links[0]])
        eq_(collection.get_value("default_values_list"),
            [a_b_links[0], a_b_links[1]])

        collection.values = {
            'default_values_list': [a_b_links[0]],
            "codes": []
        }

        eq_(
            collection.values, {
                'default_value_code': a_b_links[1],
                'default_values_list': [a_b_links[0]],
                'codes': [],
                'primary_code': a_b_links[1]
            })

        collection.delete_value("primary_code")
        collection.delete_value("default_value_code")
        collection.delete_value("codes")
        collection.delete_value("default_values_list")

        eq_(collection.get_value("primary_code"), None)
        eq_(collection.get_value("default_value_code"), None)
        eq_(collection.get_value("codes"), None)
        eq_(collection.get_value("default_values_list"), None)