Home | History | Annotate | Download | only in test
      1 import macpath
      2 from test import test_support, test_genericpath
      3 import unittest
      4 
      5 
      6 class 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 
     69 class MacCommonTest(test_genericpath.CommonTest):
     70     pathmodule = macpath
     71 
     72 
     73 def test_main():
     74     test_support.run_unittest(MacPathTestCase, MacCommonTest)
     75 
     76 
     77 if __name__ == "__main__":
     78     test_main()
     79