summaryrefslogtreecommitdiff
path: root/libs/python/pyste/tests/infosUT.py
blob: 93769f34e3f2c82e2ccd8acc07113222fb38bed9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 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
from Pyste.infos import *
from Pyste.policies import *
from Pyste.exporterutils import *
import unittest

#================================================================================
# InfosTest
#================================================================================
class InfosTest(unittest.TestCase):

    def testFunctionInfo(self):
        info = FunctionInfo('test::foo', 'foo.h')
        rename(info, 'hello')
        set_policy(info, return_internal_reference())
        set_wrapper(info, FunctionWrapper('foo_wrapper'))

        info = InfoWrapper(info)
        
        self.assertEqual(info.rename, 'hello')
        self.assertEqual(info.policy.Code(), 'return_internal_reference< 1 >')
        self.assertEqual(info.wrapper.name, 'foo_wrapper')


    def testClassInfo(self):
        info = ClassInfo('test::IFoo', 'foo.h')
        rename(info.name, 'Name')
        rename(info.exclude, 'Exclude')
        rename(info, 'Foo')
        rename(info.Bar, 'bar')
        set_policy(info.Baz, return_internal_reference())
        rename(info.operator['>>'], 'from_string')
        exclude(info.Bar)
        set_wrapper(info.Baz, FunctionWrapper('baz_wrapper'))
        
        info = InfoWrapper(info)
        
        self.assertEqual(info.rename, 'Foo')
        self.assertEqual(info['Bar'].rename, 'bar')
        self.assertEqual(info['name'].rename, 'Name')
        self.assertEqual(info['exclude'].rename, 'Exclude')
        self.assertEqual(info['Bar'].exclude, True)
        self.assertEqual(info['Baz'].policy.Code(), 'return_internal_reference< 1 >')
        self.assertEqual(info['Baz'].wrapper.name, 'baz_wrapper')
        self.assertEqual(info['operator']['>>'].rename, 'from_string')

     


if __name__ == '__main__':
    unittest.main()