1 | #!/usr/bin/env python2
|
2 | """
|
3 | os_path_test.py: Tests for os_path.py
|
4 | """
|
5 | from __future__ import print_function
|
6 |
|
7 | import os
|
8 | import unittest
|
9 |
|
10 | from pylib import os_path # module under test
|
11 |
|
12 |
|
13 | class OsPathTest(unittest.TestCase):
|
14 |
|
15 | def testDirname(self):
|
16 | CASES = [
|
17 | ('', 'foo'),
|
18 | ('dir', 'dir/'),
|
19 | ('bin', 'bin/foo'),
|
20 | ('bin', 'bin//foo'), # double slashes
|
21 | ('/usr//local//bin', '/usr//local//bin//foo'),
|
22 | ('///', '///foo'), # special case of not stripping slashes
|
23 | ]
|
24 | for expected, d in CASES:
|
25 | self.assertEqual(expected, os_path.dirname(d))
|
26 |
|
27 | def testSplit(self):
|
28 | CASES = [
|
29 | (('bin', 'foo'), 'bin/foo'),
|
30 | (('bin', 'foo'), 'bin//foo'), # double slashes
|
31 | (('/usr//local//bin', 'foo'), '/usr//local//bin//foo'),
|
32 | (('///', 'foo'), '///foo'), # special case of not stripping slashes
|
33 | ]
|
34 | for expected, d in CASES:
|
35 | self.assertEqual(expected, os_path.split(d))
|
36 |
|
37 | def testBasename(self):
|
38 | self.assertEqual('bar', os_path.basename('foo/bar'))
|
39 |
|
40 | def testJoin(self):
|
41 | CASES = [
|
42 | ('foo', 'bar'),
|
43 | ('foo/', 'bar'),
|
44 | ('foo', '/bar'),
|
45 | ('', 'bar'),
|
46 | ('foo', ''),
|
47 | ('', ''),
|
48 | ('/', ''),
|
49 | ('', '/'),
|
50 | ]
|
51 | for s1, s2 in CASES:
|
52 | # test against the Python stdlib version
|
53 | expected = os.path.join(s1, s2)
|
54 | print(expected)
|
55 | self.assertEqual(expected, os_path.join(s1, s2))
|
56 |
|
57 |
|
58 | if __name__ == '__main__':
|
59 | unittest.main()
|