diff options
author | Hugo Lima <hugo.lima@openbossa.org> | 2009-09-01 19:03:07 -0300 |
---|---|---|
committer | Hugo Lima <hugo.lima@openbossa.org> | 2009-09-01 19:03:07 -0300 |
commit | 5db89848578a416d2904317bc6cc361c3409af2c (patch) | |
tree | 806ddc4aa5a3a674e12c12770b6c863dee62f653 /tests | |
parent | 4d15d6c9527e078921d32ddcdbdec782e1d787f8 (diff) |
Added a python test to classes without default ctor
Diffstat (limited to 'tests')
-rw-r--r-- | tests/libsample/nondefaultctor.h | 10 | ||||
-rwxr-xr-x | tests/samplebinding/nondefaultctor_test.py | 39 |
2 files changed, 47 insertions, 2 deletions
diff --git a/tests/libsample/nondefaultctor.h b/tests/libsample/nondefaultctor.h index da0a14e0d..200d0ba9b 100644 --- a/tests/libsample/nondefaultctor.h +++ b/tests/libsample/nondefaultctor.h @@ -37,11 +37,17 @@ class NonDefaultCtor { + int m_value; public: - NonDefaultCtor(int) + NonDefaultCtor(int value) : m_value(value) { } + int value() + { + return m_value; + } + NonDefaultCtor returnMyself() { return *this; @@ -64,7 +70,7 @@ public: NonDefaultCtor callReturnMyselfVirtual() { - return *this; + return returnMyselfVirtual(); } }; diff --git a/tests/samplebinding/nondefaultctor_test.py b/tests/samplebinding/nondefaultctor_test.py new file mode 100755 index 000000000..58a6442d8 --- /dev/null +++ b/tests/samplebinding/nondefaultctor_test.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +'''Test cases for ...''' + +import sys +import unittest + +from sample import NonDefaultCtor + +class DerivedNonDefaultCtor (NonDefaultCtor): + def returnMyselfVirtual(self): + return NonDefaultCtor(self.value()+1) + pass + +class NonDefaultCtorTest(unittest.TestCase): + + def testNonDefaultCtor(self): + '''Test if polymorphic function call decisor takes implicit conversions into account.''' + c = NonDefaultCtor(2) + # these functions returns NonDefaultCtor by value, so a PyObjecy is created every time + self.assertNotEqual(c.returnMyself(), c) + self.assertEqual(c.returnMyself().value(), 2) + self.assertNotEqual(c.returnMyself(3), c) + self.assertEqual(c.returnMyself(3).value(), 2) + self.assertNotEqual(c.returnMyself(4, c), c) + self.assertEqual(c.returnMyself(4, c).value(), 2) + + def testVirtuals(self): + c = DerivedNonDefaultCtor(3) + # these functions returns NonDefaultCtor by value, so a PyObjecy is created every time + self.assertNotEqual(c.returnMyselfVirtual(), c) + self.assertEqual(c.returnMyselfVirtual().value(), 4) + self.assertEqual(c.callReturnMyselfVirtual().value(), 4) + + +if __name__ == '__main__': + unittest.main() + |