aboutsummaryrefslogtreecommitdiffstats
path: root/tests/samplebinding/nondefaultctor_test.py
diff options
context:
space:
mode:
authorHugo Lima <hugo.lima@openbossa.org>2009-09-01 19:03:07 -0300
committerHugo Lima <hugo.lima@openbossa.org>2009-09-01 19:03:07 -0300
commit5db89848578a416d2904317bc6cc361c3409af2c (patch)
tree806ddc4aa5a3a674e12c12770b6c863dee62f653 /tests/samplebinding/nondefaultctor_test.py
parent4d15d6c9527e078921d32ddcdbdec782e1d787f8 (diff)
Added a python test to classes without default ctor
Diffstat (limited to 'tests/samplebinding/nondefaultctor_test.py')
-rwxr-xr-xtests/samplebinding/nondefaultctor_test.py39
1 files changed, 39 insertions, 0 deletions
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()
+