diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-08-27 02:48:03 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-08-27 02:48:03 -0300 |
commit | 39dd735c9486a5808e26a4f07e19522cc904ddd9 (patch) | |
tree | 4717cba945fa41a30d563932a8e327ec58395100 /tests/samplebinding/virtualmethods_test.py | |
parent | 560cd5ba22479d4b5067c171838a46a4e559e886 (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-x | tests/samplebinding/virtualmethods_test.py | 36 |
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() + |