From b148ca6f876030a41ac7556ec5be2a7374e86bd5 Mon Sep 17 00:00:00 2001 From: Marcelo Lira Date: Mon, 15 Aug 2011 15:37:36 -0300 Subject: Added test for user defined primitive type used as public class field. --- tests/libsample/abstract.h | 2 ++ tests/samplebinding/class_fields_test.py | 18 +++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/tests/libsample/abstract.h b/tests/libsample/abstract.h index 8b68b6ea6..95c1c3a0d 100644 --- a/tests/libsample/abstract.h +++ b/tests/libsample/abstract.h @@ -25,6 +25,7 @@ #include "libsamplemacros.h" #include "point.h" +#include "complex.h" class ObjectType; @@ -57,6 +58,7 @@ public: static const int staticPrimitiveField; int primitiveField; + Complex userPrimitiveField; Point valueTypeField; ObjectType* objectTypeField; diff --git a/tests/samplebinding/class_fields_test.py b/tests/samplebinding/class_fields_test.py index c01a6bf07..eab138f4a 100644 --- a/tests/samplebinding/class_fields_test.py +++ b/tests/samplebinding/class_fields_test.py @@ -54,6 +54,21 @@ class TestAccessingCppFields(unittest.TestCase): # attribution with invalid type self.assertRaises(TypeError, lambda : setattr(d, 'primitiveField', None)) + def testAccessingUsersPrimitiveTypeField(self): + '''Reads and writes an user's primitive type (in this case an 'Complex') field.''' + d = Derived() + self.assertEqual(type(d.userPrimitiveField), complex) + + # attribution + old_value = d.userPrimitiveField + new_value = complex(1.1, 2.2) + d.userPrimitiveField = new_value + self.assertEqual(d.userPrimitiveField, new_value) + self.assertNotEqual(d.userPrimitiveField, old_value) + + # attribution with invalid type + self.assertRaises(TypeError, lambda : setattr(d, 'userPrimitiveField', None)) + def testAccessingValueTypeField(self): '''Reads and writes a value type (in this case a 'Point') field.''' d = Derived() @@ -71,8 +86,6 @@ class TestAccessingCppFields(unittest.TestCase): self.assertEqual(d.valueTypeField.x(), 10) self.assertEqual(d.valueTypeField.y(), 20) - - # attribution with invalid type self.assertRaises(TypeError, lambda : setattr(d, 'valueTypeField', 123)) @@ -129,4 +142,3 @@ class TestAccessingCppFields(unittest.TestCase): if __name__ == '__main__': unittest.main() - -- cgit v1.2.3