blob: ff8da108c94606fee8344b5ceaea442c9fecc62a [file] [log] [blame]
Martin v. Löwisde333792002-12-12 20:30:20 +00001import macpath
2from test import test_support
3import unittest
4
5
6class MacPathTestCase(unittest.TestCase):
7
8 def test_abspath(self):
Benjamin Peterson5c8da862009-06-30 22:57:08 +00009 self.assertTrue(macpath.abspath("xx:yy") == "xx:yy")
Martin v. Löwisde333792002-12-12 20:30:20 +000010
Ezio Melotti4cc80ca2010-02-20 08:09:39 +000011 # Issue 3426: check that abspath retuns unicode when the arg is unicode
12 # and str when it's str, with both ASCII and non-ASCII cwds
13 for cwd in (u'cwd', u'\xe7w\xf0'):
14 with test_support.temp_cwd(cwd):
15 for path in ('', 'foo', 'f\xf2\xf2', '/foo', 'C:\\'):
16 self.assertIsInstance(macpath.abspath(path), str)
17 for upath in (u'', u'fuu', u'f\xf9\xf9', u'/fuu', u'U:\\'):
18 self.assertIsInstance(macpath.abspath(upath), unicode)
19
20
Martin v. Löwisde333792002-12-12 20:30:20 +000021 def test_isabs(self):
22 isabs = macpath.isabs
Benjamin Peterson5c8da862009-06-30 22:57:08 +000023 self.assertTrue(isabs("xx:yy"))
24 self.assertTrue(isabs("xx:yy:"))
25 self.assertTrue(isabs("xx:"))
26 self.assertFalse(isabs("foo"))
27 self.assertFalse(isabs(":foo"))
28 self.assertFalse(isabs(":foo:bar"))
29 self.assertFalse(isabs(":foo:bar:"))
Martin v. Löwisde333792002-12-12 20:30:20 +000030
31
32 def test_commonprefix(self):
33 commonprefix = macpath.commonprefix
Benjamin Peterson5c8da862009-06-30 22:57:08 +000034 self.assertTrue(commonprefix(["home:swenson:spam", "home:swen:spam"])
Martin v. Löwisde333792002-12-12 20:30:20 +000035 == "home:swen")
Benjamin Peterson5c8da862009-06-30 22:57:08 +000036 self.assertTrue(commonprefix([":home:swen:spam", ":home:swen:eggs"])
Martin v. Löwisde333792002-12-12 20:30:20 +000037 == ":home:swen:")
Benjamin Peterson5c8da862009-06-30 22:57:08 +000038 self.assertTrue(commonprefix([":home:swen:spam", ":home:swen:spam"])
Martin v. Löwisde333792002-12-12 20:30:20 +000039 == ":home:swen:spam")
40
41 def test_split(self):
42 split = macpath.split
43 self.assertEquals(split("foo:bar"),
44 ('foo:', 'bar'))
45 self.assertEquals(split("conky:mountpoint:foo:bar"),
46 ('conky:mountpoint:foo', 'bar'))
47
48 self.assertEquals(split(":"), ('', ''))
49 self.assertEquals(split(":conky:mountpoint:"),
50 (':conky:mountpoint', ''))
51
52 def test_splitdrive(self):
53 splitdrive = macpath.splitdrive
54 self.assertEquals(splitdrive("foo:bar"), ('', 'foo:bar'))
55 self.assertEquals(splitdrive(":foo:bar"), ('', ':foo:bar'))
56
57 def test_splitext(self):
58 splitext = macpath.splitext
59 self.assertEquals(splitext(":foo.ext"), (':foo', '.ext'))
60 self.assertEquals(splitext("foo:foo.ext"), ('foo:foo', '.ext'))
Martin v. Löwis05c075d2007-03-07 11:04:33 +000061 self.assertEquals(splitext(".ext"), ('.ext', ''))
Martin v. Löwisde333792002-12-12 20:30:20 +000062 self.assertEquals(splitext("foo.ext:foo"), ('foo.ext:foo', ''))
63 self.assertEquals(splitext(":foo.ext:"), (':foo.ext:', ''))
64 self.assertEquals(splitext(""), ('', ''))
65 self.assertEquals(splitext("foo.bar.ext"), ('foo.bar', '.ext'))
66
67
68def test_main():
69 test_support.run_unittest(MacPathTestCase)
70
71
72if __name__ == "__main__":
73 test_main()