blob: be936de224a9e934e230fe0c891c5d3842a4b7c8 [file] [log] [blame]
Martin v. Löwisde333792002-12-12 20:30:20 +00001import macpath
Florent Xiclunadc1531c2010-03-06 18:07:18 +00002from test import test_support, test_genericpath
Martin v. Löwisde333792002-12-12 20:30:20 +00003import unittest
4
5
6class MacPathTestCase(unittest.TestCase):
7
8 def test_abspath(self):
Ezio Melottie3467d52010-02-20 09:40:07 +00009 self.assertEqual(macpath.abspath("xx:yy"), "xx:yy")
Martin v. Löwisde333792002-12-12 20:30:20 +000010
11 def test_isabs(self):
12 isabs = macpath.isabs
Benjamin Peterson5c8da862009-06-30 22:57:08 +000013 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:"))
Martin v. Löwisde333792002-12-12 20:30:20 +000020
Martin v. Löwisde333792002-12-12 20:30:20 +000021 def test_split(self):
22 split = macpath.split
Ezio Melottie3467d52010-02-20 09:40:07 +000023 self.assertEqual(split("foo:bar"),
Martin v. Löwisde333792002-12-12 20:30:20 +000024 ('foo:', 'bar'))
Ezio Melottie3467d52010-02-20 09:40:07 +000025 self.assertEqual(split("conky:mountpoint:foo:bar"),
Martin v. Löwisde333792002-12-12 20:30:20 +000026 ('conky:mountpoint:foo', 'bar'))
27
Ezio Melottie3467d52010-02-20 09:40:07 +000028 self.assertEqual(split(":"), ('', ''))
29 self.assertEqual(split(":conky:mountpoint:"),
Martin v. Löwisde333792002-12-12 20:30:20 +000030 (':conky:mountpoint', ''))
31
Serhiy Storchakae4300732014-09-27 18:53:01 +030032 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
Martin v. Löwisde333792002-12-12 20:30:20 +000052 def test_splitext(self):
53 splitext = macpath.splitext
Ezio Melottie3467d52010-02-20 09:40:07 +000054 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'))
Martin v. Löwisde333792002-12-12 20:30:20 +000061
Serhiy Storchaka2bd8b222015-02-13 12:02:05 +020062 @test_support.requires_unicode
Ezio Melotti0263da52010-02-27 12:42:52 +000063 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
Florent Xiclunadc1531c2010-03-06 18:07:18 +000069class MacCommonTest(test_genericpath.CommonTest):
Florent Xicluna985478d2010-03-06 18:52:52 +000070 pathmodule = macpath
Florent Xiclunadc1531c2010-03-06 18:07:18 +000071
Martin v. Löwisde333792002-12-12 20:30:20 +000072
73def test_main():
Florent Xiclunadc1531c2010-03-06 18:07:18 +000074 test_support.run_unittest(MacPathTestCase, MacCommonTest)
Martin v. Löwisde333792002-12-12 20:30:20 +000075
76
77if __name__ == "__main__":
78 test_main()