mirror of
https://github.com/boostorg/python.git
synced 2026-01-20 16:52:15 +00:00
68 lines
2.5 KiB
Python
68 lines
2.5 KiB
Python
# Copyright Bruno da Silva de Oliveira 2003. Use, modification and
|
|
# distribution is subject to the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or copy at
|
|
# http:#www.boost.org/LICENSE_1_0.txt)
|
|
import sys
|
|
import unittest
|
|
from Pyste.policies import *
|
|
|
|
|
|
#================================================================================
|
|
# PolicicesTest
|
|
#================================================================================
|
|
class PoliciesTest(unittest.TestCase):
|
|
|
|
def testReturnInternal(self):
|
|
'tests the code from a simple internal_reference'
|
|
|
|
x = return_internal_reference(1)
|
|
self.assertEqual(x.Code(), 'return_internal_reference< 1 >')
|
|
x = return_internal_reference(3)
|
|
self.assertEqual(x.Code(), 'return_internal_reference< 3 >')
|
|
|
|
|
|
def testCustodian(self):
|
|
'tests the code from a simple custodian_and_ward'
|
|
|
|
x = with_custodian_and_ward(1,2)
|
|
self.assertEqual(x.Code(), 'with_custodian_and_ward< 1, 2 >')
|
|
x = with_custodian_and_ward(3,4)
|
|
self.assertEqual(x.Code(), 'with_custodian_and_ward< 3, 4 >')
|
|
|
|
|
|
def testReturnPolicies(self):
|
|
'tests all the return_value_policies'
|
|
|
|
ret = 'return_value_policy< %s >'
|
|
x = return_value_policy(reference_existing_object)
|
|
self.assertEqual(x.Code(), ret % 'reference_existing_object')
|
|
x = return_value_policy(copy_const_reference)
|
|
self.assertEqual(x.Code(), ret % 'copy_const_reference')
|
|
x = return_value_policy(copy_non_const_reference)
|
|
self.assertEqual(x.Code(), ret % 'copy_non_const_reference')
|
|
x = return_value_policy(manage_new_object)
|
|
self.assertEqual(x.Code(), ret % 'manage_new_object')
|
|
x = return_value_policy(return_opaque_pointer)
|
|
self.assertEqual(x.Code(), ret % 'return_opaque_pointer')
|
|
|
|
def testReturnWithCustodiam(self):
|
|
'test the mix of return_internal with custodian'
|
|
|
|
x = return_internal_reference(1, with_custodian_and_ward(3,2))
|
|
self.assertEqual(
|
|
x.Code(),
|
|
'return_internal_reference< 1, with_custodian_and_ward< 3, 2 > >')
|
|
|
|
|
|
def testReturnPoliciesWithInternal(self):
|
|
'test the mix of return_internal with return_policy'
|
|
|
|
x = return_internal_reference(1, return_value_policy(manage_new_object))
|
|
self.assertEqual(
|
|
x.Code(),
|
|
'return_internal_reference< 1, return_value_policy< manage_new_object > >')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|