diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2011-08-15 15:37:36 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:17:11 -0300 |
commit | b148ca6f876030a41ac7556ec5be2a7374e86bd5 (patch) | |
tree | a37599cc7c0898412b2b61f5207cfe76c233c736 | |
parent | ba27bc0dd1beeb1f088a4b76395432a358d82c2c (diff) |
Added test for user defined primitive type used as public class field.
-rw-r--r-- | tests/libsample/abstract.h | 2 | ||||
-rw-r--r-- | 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() - |