blob: 81374d1a3f2e11e272a45320713e2b54bdf38992 [file] [log] [blame]
Ezio Melotti502f8eb2010-02-20 09:16:04 +00001import os
Martin v. Löwisde333792002-12-12 20:30:20 +00002import macpath
3from test import test_support
4import unittest
5
6
7class MacPathTestCase(unittest.TestCase):
8
9 def test_abspath(self):
10 self.assert_(macpath.abspath("xx:yy") == "xx:yy")
11
Ezio Melotti502f8eb2010-02-20 09:16:04 +000012 # Issue 3426: check that abspath retuns unicode when the arg is unicode
13 # and str when it's str, with both ASCII and non-ASCII cwds
14 saved_cwd = os.getcwd()
15 for cwd in (u'cwd', u'\xe7w\xf0'):
16 try:
17 os.mkdir(cwd)
18 os.chdir(cwd)
19 for path in ('', 'foo', 'f\xf2\xf2', '/foo', 'C:\\'):
20 self.assertTrue(isinstance(macpath.abspath(path), str))
21 for upath in (u'', u'fuu', u'f\xf9\xf9', u'/fuu', u'U:\\'):
22 self.assertTrue(isinstance(macpath.abspath(upath), unicode))
23 finally:
24 os.chdir(saved_cwd)
25 os.rmdir(cwd)
26
27
Martin v. Löwisde333792002-12-12 20:30:20 +000028 def test_isabs(self):
29 isabs = macpath.isabs
30 self.assert_(isabs("xx:yy"))
31 self.assert_(isabs("xx:yy:"))
32 self.assert_(isabs("xx:"))
33 self.failIf(isabs("foo"))
34 self.failIf(isabs(":foo"))
35 self.failIf(isabs(":foo:bar"))
36 self.failIf(isabs(":foo:bar:"))
37
38
39 def test_commonprefix(self):
40 commonprefix = macpath.commonprefix
41 self.assert_(commonprefix(["home:swenson:spam", "home:swen:spam"])
42 == "home:swen")
43 self.assert_(commonprefix([":home:swen:spam", ":home:swen:eggs"])
44 == ":home:swen:")
45 self.assert_(commonprefix([":home:swen:spam", ":home:swen:spam"])
46 == ":home:swen:spam")
47
48 def test_split(self):
49 split = macpath.split
50 self.assertEquals(split("foo:bar"),
51 ('foo:', 'bar'))
52 self.assertEquals(split("conky:mountpoint:foo:bar"),
53 ('conky:mountpoint:foo', 'bar'))
54
55 self.assertEquals(split(":"), ('', ''))
56 self.assertEquals(split(":conky:mountpoint:"),
57 (':conky:mountpoint', ''))
58
59 def test_splitdrive(self):
60 splitdrive = macpath.splitdrive
61 self.assertEquals(splitdrive("foo:bar"), ('', 'foo:bar'))
62 self.assertEquals(splitdrive(":foo:bar"), ('', ':foo:bar'))
63
64 def test_splitext(self):
65 splitext = macpath.splitext
66 self.assertEquals(splitext(":foo.ext"), (':foo', '.ext'))
67 self.assertEquals(splitext("foo:foo.ext"), ('foo:foo', '.ext'))
Martin v. Löwis05c075d2007-03-07 11:04:33 +000068 self.assertEquals(splitext(".ext"), ('.ext', ''))
Martin v. Löwisde333792002-12-12 20:30:20 +000069 self.assertEquals(splitext("foo.ext:foo"), ('foo.ext:foo', ''))
70 self.assertEquals(splitext(":foo.ext:"), (':foo.ext:', ''))
71 self.assertEquals(splitext(""), ('', ''))
72 self.assertEquals(splitext("foo.bar.ext"), ('foo.bar', '.ext'))
73
74
75def test_main():
76 test_support.run_unittest(MacPathTestCase)
77
78
79if __name__ == "__main__":
80 test_main()