1from PyObjCTools.TestSupport import *
2
3import objc
4
5class TestFramework (TestCase):
6    def test_normal_lib(self):
7        self.assertIsNone(objc.infoForFramework("/usr/lib/libSystem.dylib"))
8        self.assertIsNone(objc.infoForFramework("/usr/lib/libSystem.B.dylib"))
9        self.assertIsNone(objc.infoForFramework("/usr/lib/libSystem_debug.dylib"))
10        self.assertIsNone(objc.infoForFramework("/usr/lib/libSystem.B_debug.dylib"))
11
12    def test_basic_framework(self):
13        self.assertEqual(("/Library/Frameworks", "Python", "Current"),
14                objc.infoForFramework("/Library/Frameworks/Python.framework/Versions/Current/Python"))
15        self.assertEqual(("/Library/Frameworks", "Python", "2.7"),
16                objc.infoForFramework("/Library/Frameworks/Python.framework/Versions/2.7/Python"))
17        self.assertEqual(("/System/Library/Frameworks", "Python", ""),
18                objc.infoForFramework("/System/Library/Frameworks/Python.framework/Python"))
19
20    def test_altname_framework(self):
21        self.assertEqual(None,
22                objc.infoForFramework("/Library/Frameworks/Python.framework/Versions/Current/Python_Debug"))
23        self.assertEqual(None,
24                objc.infoForFramework("/Library/Frameworks/Python.framework/Versions/2.7/Python_Debug"))
25        self.assertEqual(None,
26                objc.infoForFramework("/Library/Frameworks/Python.framework/Python_Debug"))
27
28    def test_nested_framework(self):
29        self.assertEqual(("/System/Library/Frameworks/CoreServices.framework/Frameworks", "AE", "A"),
30                objc.infoForFramework(
31                    "/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/Versions/A/AE"))
32
33        self.assertEqual(("/System/Library/Frameworks/CoreServices.framework/Frameworks", "AE", ""),
34                objc.infoForFramework(
35                    "/System/Library/Frameworks/CoreServices.framework/Frameworks/AE.framework/AE"))
36
37        self.assertEqual(("/System/Library/Frameworks/CoreServices.framework/Versions/B/Frameworks", "AE", "A"),
38                objc.infoForFramework(
39                    "/System/Library/Frameworks/CoreServices.framework/Versions/B/Frameworks/AE.framework/Versions/A/AE"))
40
41
42
43if __name__ == "__main__":
44    main()
45