diff options
author | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-08-27 01:01:06 -0300 |
---|---|---|
committer | Marcelo Lira <marcelo.lira@openbossa.org> | 2009-08-27 01:01:06 -0300 |
commit | 5ba896641df413f496e634ff5953c4d516157173 (patch) | |
tree | 267486511cc45f0b71c31f4cacf847c3e882bb39 /tests/samplebinding/reference_test.py | |
parent | 93d0d9b5e3178efb8e78fb1ec2c7a2b4ede02972 (diff) |
updated sample library Reference class and unit tests with cases
of virtual methods that receive C++ references
Diffstat (limited to 'tests/samplebinding/reference_test.py')
-rwxr-xr-x | tests/samplebinding/reference_test.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/samplebinding/reference_test.py b/tests/samplebinding/reference_test.py index ed4c5cbc8..28e6feba4 100755 --- a/tests/samplebinding/reference_test.py +++ b/tests/samplebinding/reference_test.py @@ -7,6 +7,22 @@ import unittest from sample import Reference +class ExtendedReference(Reference): + def __init__(self): + Reference.__init__(self) + self.uses_reference_virtual_called = False + self.uses_const_reference_virtual_called = False + self.reference_inc = 1 + self.const_reference_inc = 2 + + def usesReferenceVirtual(self, ref, inc): + self.uses_reference_virtual_called = True + return ref.objId() + inc + self.reference_inc + + def usesConstReferenceVirtual(self, ref, inc): + self.uses_const_reference_virtual_called = True + return ref.objId() + inc + self.const_reference_inc + class ReferenceTest(unittest.TestCase): '''Test case for methods that receive references to objects.''' @@ -22,6 +38,23 @@ class ReferenceTest(unittest.TestCase): r = Reference(objId) self.assertEqual(Reference.usesConstReference(r), objId) + def testReimplementedVirtualMethodCallWithReferenceParameter(self): + '''Test if a Python override of a virtual method with a reference parameter is correctly called from C++.''' + inc = 9 + objId = 123 + r = Reference(objId) + er = ExtendedReference() + result = er.callUsesReferenceVirtual(r, inc) + self.assertEqual(result, objId + inc + er.reference_inc) + + def testReimplementedVirtualMethodCallWithConstReferenceParameter(self): + '''Test if a Python override of a virtual method with a const reference parameter is correctly called from C++.''' + inc = 9 + objId = 123 + r = Reference(objId) + er = ExtendedReference() + result = er.callUsesConstReferenceVirtual(r, inc) + self.assertEqual(result, objId + inc + er.const_reference_inc) if __name__ == '__main__': unittest.main() |