def test_composite_object_assignment(self): obj = PythonObject({ "foo": "hello" }) get_manager(obj).add_composite_type(CompositeType({ ("get", "foo"): GetterMicroOpType("foo", StringType()), ("set", "foo"): SetterMicroOpType("foo", StringType()) }, name="test")) obj.foo = "what"
def test_const_property(self): obj = PythonObject({ "foo": "hello" }) get_manager(obj).add_composite_type(CompositeType({ ("get", "foo"): GetterMicroOpType("foo", StringType()) }, name="test")) self.assertEquals(obj.foo, "hello") with self.assertRaises(Exception): obj.foo = "what"
def test_composite_object_invalid_assignment(self): obj = PythonObject({ "foo": "hello" }) get_manager(obj).add_composite_type(CompositeType({ ("get", "foo"): GetterMicroOpType("foo", StringType()), ("set", "foo"): SetterMicroOpType("foo", StringType()) }, name="test")) with self.assertRaises(TypeError): obj.foo = 5
def test_python_like_object(self): obj = PythonObject({ "foo": "hello" }) get_manager(obj).add_composite_type(CompositeType({ ("get", "foo"): GetterMicroOpType("foo", AnyType()), ("set", "foo"): SetterMicroOpType("foo", AnyType()) }, name="test")) self.assertEquals(obj.foo, "hello") obj.foo = "what" self.assertEquals(obj.foo, "what")
def test_can_fail_micro_ops_are_enforced(self): foo = PythonObject({ "foo": 5, "bar": "hello" }) get_manager(foo).add_composite_type( UniversalObjectType({ "foo": Const(IntegerType()) }) ) with self.assertRaises(Exception): foo.foo = "hello"