aboutsummaryrefslogtreecommitdiffstats
path: root/tests/samplebinding/virtualmethods_test.py
diff options
context:
space:
mode:
authorMarcelo Lira <marcelo.lira@openbossa.org>2009-08-27 02:48:03 -0300
committerMarcelo Lira <marcelo.lira@openbossa.org>2009-08-27 02:48:03 -0300
commit39dd735c9486a5808e26a4f07e19522cc904ddd9 (patch)
tree4717cba945fa41a30d563932a8e327ec58395100 /tests/samplebinding/virtualmethods_test.py
parent560cd5ba22479d4b5067c171838a46a4e559e886 (diff)
updated sample library with VirtualMethods class which contains
a case of a virtual method that is reimplemented in Python and checked in the unit test Reference class and unit tests with cases of virtual methods that receive C++ references
Diffstat (limited to 'tests/samplebinding/virtualmethods_test.py')
-rwxr-xr-xtests/samplebinding/virtualmethods_test.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/samplebinding/virtualmethods_test.py b/tests/samplebinding/virtualmethods_test.py
new file mode 100755
index 000000000..89ca83c8d
--- /dev/null
+++ b/tests/samplebinding/virtualmethods_test.py
@@ -0,0 +1,36 @@
+#!/usr/bin/python
+
+'''Test cases for virtual methods.'''
+
+import sys
+import unittest
+
+from sample import VirtualMethods, Point
+
+class ExtendedVirtualMethods(VirtualMethods):
+ def __init__(self):
+ VirtualMethods.__init__(self)
+ self.virtual_method0_called = False
+
+ def virtualMethod0(self, pt, val, cpx, b):
+ self.virtual_method0_called = True
+ return VirtualMethods.virtualMethod0(self, pt, val, cpx, b) * -1.0
+
+class VirtualMethodsTest(unittest.TestCase):
+ '''Test case for virtual methods'''
+
+ def testReimplementedVirtualMethod0(self):
+ '''Test Python override of a virtual method with various different parameters is correctly called from C++.'''
+ vm = VirtualMethods()
+ evm = ExtendedVirtualMethods()
+ pt = Point(1.1, 2.2)
+ val = 4
+ cpx = complex(3.3, 4.4)
+ b = True
+ result0 = vm.callVirtualMethod0(pt, val, cpx, b)
+ result1 = evm.callVirtualMethod0(pt, val, cpx, b)
+ self.assertEqual(result0 * -1.0, result1)
+
+if __name__ == '__main__':
+ unittest.main()
+