~ubuntu-branches/ubuntu/trusty/python3.4/trusty-proposed

« back to all changes in this revision

Viewing changes to Lib/ctypes/test/test_macholib.py

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2013-11-25 09:44:27 UTC
  • Revision ID: package-import@ubuntu.com-20131125094427-lzxj8ap5w01lmo7f
Tags: upstream-3.4~b1
ImportĀ upstreamĀ versionĀ 3.4~b1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import os
 
2
import sys
 
3
import unittest
 
4
 
 
5
# Bob Ippolito:
 
6
#
 
7
# Ok.. the code to find the filename for __getattr__ should look
 
8
# something like:
 
9
#
 
10
# import os
 
11
# from macholib.dyld import dyld_find
 
12
#
 
13
# def find_lib(name):
 
14
#      possible = ['lib'+name+'.dylib', name+'.dylib',
 
15
#      name+'.framework/'+name]
 
16
#      for dylib in possible:
 
17
#          try:
 
18
#              return os.path.realpath(dyld_find(dylib))
 
19
#          except ValueError:
 
20
#              pass
 
21
#      raise ValueError, "%s not found" % (name,)
 
22
#
 
23
# It'll have output like this:
 
24
#
 
25
#  >>> find_lib('pthread')
 
26
# '/usr/lib/libSystem.B.dylib'
 
27
#  >>> find_lib('z')
 
28
# '/usr/lib/libz.1.dylib'
 
29
#  >>> find_lib('IOKit')
 
30
# '/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit'
 
31
#
 
32
# -bob
 
33
 
 
34
from ctypes.macholib.dyld import dyld_find
 
35
 
 
36
def find_lib(name):
 
37
    possible = ['lib'+name+'.dylib', name+'.dylib', name+'.framework/'+name]
 
38
    for dylib in possible:
 
39
        try:
 
40
            return os.path.realpath(dyld_find(dylib))
 
41
        except ValueError:
 
42
            pass
 
43
    raise ValueError("%s not found" % (name,))
 
44
 
 
45
class MachOTest(unittest.TestCase):
 
46
    if sys.platform == "darwin":
 
47
        def test_find(self):
 
48
 
 
49
            self.assertEqual(find_lib('pthread'),
 
50
                                 '/usr/lib/libSystem.B.dylib')
 
51
 
 
52
            result = find_lib('z')
 
53
            self.assertTrue(result.startswith('/usr/lib/libz.1'))
 
54
            self.assertTrue(result.endswith('.dylib'))
 
55
 
 
56
            self.assertEqual(find_lib('IOKit'),
 
57
                                 '/System/Library/Frameworks/IOKit.framework/Versions/A/IOKit')
 
58
 
 
59
if __name__ == "__main__":
 
60
    unittest.main()