• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1import macpath
2from test import test_support, test_genericpath
3import unittest
4
5
6class MacPathTestCase(unittest.TestCase):
7
8    def test_abspath(self):
9        self.assertEqual(macpath.abspath("xx:yy"), "xx:yy")
10
11    def test_isabs(self):
12        isabs = macpath.isabs
13        self.assertTrue(isabs("xx:yy"))
14        self.assertTrue(isabs("xx:yy:"))
15        self.assertTrue(isabs("xx:"))
16        self.assertFalse(isabs("foo"))
17        self.assertFalse(isabs(":foo"))
18        self.assertFalse(isabs(":foo:bar"))
19        self.assertFalse(isabs(":foo:bar:"))
20
21    def test_split(self):
22        split = macpath.split
23        self.assertEqual(split("foo:bar"),
24                          ('foo:', 'bar'))
25        self.assertEqual(split("conky:mountpoint:foo:bar"),
26                          ('conky:mountpoint:foo', 'bar'))
27
28        self.assertEqual(split(":"), ('', ''))
29        self.assertEqual(split(":conky:mountpoint:"),
30                          (':conky:mountpoint', ''))
31
32    def test_join(self):
33        join = macpath.join
34        self.assertEqual(join('a', 'b'), ':a:b')
35        self.assertEqual(join(':a', 'b'), ':a:b')
36        self.assertEqual(join(':a:', 'b'), ':a:b')
37        self.assertEqual(join(':a::', 'b'), ':a::b')
38        self.assertEqual(join(':a', '::b'), ':a::b')
39        self.assertEqual(join('a', ':'), ':a:')
40        self.assertEqual(join('a:', ':'), 'a:')
41        self.assertEqual(join('a', ''), ':a:')
42        self.assertEqual(join('a:', ''), 'a:')
43        self.assertEqual(join('', ''), '')
44        self.assertEqual(join('', 'a:b'), 'a:b')
45        self.assertEqual(join('', 'a', 'b'), ':a:b')
46        self.assertEqual(join('a:b', 'c'), 'a:b:c')
47        self.assertEqual(join('a:b', ':c'), 'a:b:c')
48        self.assertEqual(join('a', ':b', ':c'), ':a:b:c')
49        self.assertEqual(join('a', 'b:'), 'b:')
50        self.assertEqual(join('a:', 'b:'), 'b:')
51
52    def test_splitext(self):
53        splitext = macpath.splitext
54        self.assertEqual(splitext(":foo.ext"), (':foo', '.ext'))
55        self.assertEqual(splitext("foo:foo.ext"), ('foo:foo', '.ext'))
56        self.assertEqual(splitext(".ext"), ('.ext', ''))
57        self.assertEqual(splitext("foo.ext:foo"), ('foo.ext:foo', ''))
58        self.assertEqual(splitext(":foo.ext:"), (':foo.ext:', ''))
59        self.assertEqual(splitext(""), ('', ''))
60        self.assertEqual(splitext("foo.bar.ext"), ('foo.bar', '.ext'))
61
62    @test_support.requires_unicode
63    def test_normpath(self):
64        # Issue 5827: Make sure normpath preserves unicode
65        for path in (u'', u'.', u'/', u'\\', u':', u'///foo/.//bar//'):
66            self.assertIsInstance(macpath.normpath(path), unicode,
67                                  'normpath() returned str instead of unicode')
68
69class MacCommonTest(test_genericpath.CommonTest):
70    pathmodule = macpath
71
72
73def test_main():
74    test_support.run_unittest(MacPathTestCase, MacCommonTest)
75
76
77if __name__ == "__main__":
78    test_main()
79