blob: c93177fe36c67f0459e197dd15b7beda6bf54936 [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):
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
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
Ezio Melottie3467d52010-02-20 09:40:07 +000034 self.assertEqual(commonprefix(["home:swenson:spam", "home:swen:spam"]),
35 "home:swen")
36 self.assertEqual(commonprefix([":home:swen:spam", ":home:swen:eggs"]),
37 ":home:swen:")
38 self.assertEqual(commonprefix([":home:swen:spam", ":home:swen:spam"]),
39 ":home:swen:spam")
Martin v. Löwisde333792002-12-12 20:30:20 +000040
41 def test_split(self):
42 split = macpath.split
Ezio Melottie3467d52010-02-20 09:40:07 +000043 self.assertEqual(split("foo:bar"),
Martin v. Löwisde333792002-12-12 20:30:20 +000044 ('foo:', 'bar'))
Ezio Melottie3467d52010-02-20 09:40:07 +000045 self.assertEqual(split("conky:mountpoint:foo:bar"),
Martin v. Löwisde333792002-12-12 20:30:20 +000046 ('conky:mountpoint:foo', 'bar'))
47
Ezio Melottie3467d52010-02-20 09:40:07 +000048 self.assertEqual(split(":"), ('', ''))
49 self.assertEqual(split(":conky:mountpoint:"),
Martin v. Löwisde333792002-12-12 20:30:20 +000050 (':conky:mountpoint', ''))
51
52 def test_splitdrive(self):
53 splitdrive = macpath.splitdrive
Ezio Melottie3467d52010-02-20 09:40:07 +000054 self.assertEqual(splitdrive("foo:bar"), ('', 'foo:bar'))
55 self.assertEqual(splitdrive(":foo:bar"), ('', ':foo:bar'))
Martin v. Löwisde333792002-12-12 20:30:20 +000056
57 def test_splitext(self):
58 splitext = macpath.splitext
Ezio Melottie3467d52010-02-20 09:40:07 +000059 self.assertEqual(splitext(":foo.ext"), (':foo', '.ext'))
60 self.assertEqual(splitext("foo:foo.ext"), ('foo:foo', '.ext'))
61 self.assertEqual(splitext(".ext"), ('.ext', ''))
62 self.assertEqual(splitext("foo.ext:foo"), ('foo.ext:foo', ''))
63 self.assertEqual(splitext(":foo.ext:"), (':foo.ext:', ''))
64 self.assertEqual(splitext(""), ('', ''))
65 self.assertEqual(splitext("foo.bar.ext"), ('foo.bar', '.ext'))
Martin v. Löwisde333792002-12-12 20:30:20 +000066
67
68def test_main():
69 test_support.run_unittest(MacPathTestCase)
70
71
72if __name__ == "__main__":
73 test_main()