1# Copyright David Abrahams 2004. Distributed under the Boost
2# Software License, Version 1.0. (See accompanying
3# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
4import unittest
5from register_ptr import *
6
7class RegisterPtrTest(unittest.TestCase):
8
9    def testIt(self):
10
11        class B(A):
12            def f(self):
13                return 10
14
15        a = New()  # this must work
16        b = B()
17        self.assertEqual(Call(a), 0)
18        self.assertEqual(Call(b), 10)
19        def fails():
20            Fail(A())
21        self.assertRaises(TypeError, fails)
22        self.assertEqual(Fail(a), 0) # ok, since a is held by shared_ptr
23
24if __name__ == '__main__':
25    unittest.main()
26