Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(21)

Side by Side Diff: Lib/test/test_posixpath.py

Issue 3055: combined patches from http://bugs.python.org/issue3187 (Closed) SVN Base: http://svn.python.org/view/*checkout*/python/branches/py3k/
Patch Set: One more tweak (fold some long lines) Created 1 year, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
OLDNEW
1 import unittest 1 import unittest
2 from test import support 2 from test import support
3 3
4 import posixpath, os 4 import posixpath, os
5 from posixpath import realpath, abspath, join, dirname, basename, relpath 5 from posixpath import realpath, abspath, join, dirname, basename, relpath
6 6
7 # An absolute path to a temporary filename for testing. We can't rely on TESTFN 7 # An absolute path to a temporary filename for testing. We can't rely on TESTFN
8 # being an absolute path, so we need this. 8 # being an absolute path, so we need this.
9 9
10 ABSTFN = abspath(support.TESTFN) 10 ABSTFN = abspath(support.TESTFN)
(...skipping 13 matching lines...) Expand all
24 for suffix in ["", "1", "2"]: 24 for suffix in ["", "1", "2"]:
25 support.unlink(support.TESTFN + suffix) 25 support.unlink(support.TESTFN + suffix)
26 safe_rmdir(support.TESTFN + suffix) 26 safe_rmdir(support.TESTFN + suffix)
27 27
28 def assertIs(self, a, b): 28 def assertIs(self, a, b):
29 self.assert_(a is b) 29 self.assert_(a is b)
30 30
31 def test_normcase(self): 31 def test_normcase(self):
32 # Check that normcase() is idempotent 32 # Check that normcase() is idempotent
33 p = "FoO/./BaR" 33 p = "FoO/./BaR"
34 p = posixpath.normcase(p) 34 self.assertEqual(p, posixpath.normcase(p))
35
36 p = b"FoO/./BaR"
35 self.assertEqual(p, posixpath.normcase(p)) 37 self.assertEqual(p, posixpath.normcase(p))
36 38
37 self.assertRaises(TypeError, posixpath.normcase) 39 self.assertRaises(TypeError, posixpath.normcase)
38 40
39 def test_join(self): 41 def test_join(self):
40 self.assertEqual(posixpath.join("/foo", "bar", "/bar", "baz"), "/bar/baz ") 42 self.assertEqual(posixpath.join("/foo", "bar", "/bar", "baz"),
43 "/bar/baz")
41 self.assertEqual(posixpath.join("/foo", "bar", "baz"), "/foo/bar/baz") 44 self.assertEqual(posixpath.join("/foo", "bar", "baz"), "/foo/bar/baz")
42 self.assertEqual(posixpath.join("/foo/", "bar/", "baz/"), "/foo/bar/baz/ ") 45 self.assertEqual(posixpath.join("/foo/", "bar/", "baz/"),
46 "/foo/bar/baz/")
47
48 self.assertEqual(posixpath.join(b"/foo", b"bar", b"/bar", b"baz"),
49 b"/bar/baz")
50 self.assertEqual(posixpath.join(b"/foo", b"bar", b"baz"),
51 b"/foo/bar/baz")
52 self.assertEqual(posixpath.join(b"/foo/", b"bar/", b"baz/"),
53 b"/foo/bar/baz/")
43 54
44 self.assertRaises(TypeError, posixpath.join) 55 self.assertRaises(TypeError, posixpath.join)
56 self.assertRaises(TypeError, posixpath.join, b"bytes", "str")
57 self.assertRaises(TypeError, posixpath.join, "str", b"bytes")
45 58
46 def test_splitdrive(self): 59 def test_splitdrive(self):
47 self.assertEqual(posixpath.splitdrive("/foo/bar"), ("", "/foo/bar")) 60 self.assertEqual(posixpath.splitdrive("/foo/bar"), ("", "/foo/bar"))
61 self.assertEqual(posixpath.splitdrive(b"/foo/bar"), (b"", b"/foo/bar"))
48 62
49 self.assertRaises(TypeError, posixpath.splitdrive) 63 self.assertRaises(TypeError, posixpath.splitdrive)
50 64
51 def test_split(self): 65 def test_split(self):
52 self.assertEqual(posixpath.split("/foo/bar"), ("/foo", "bar")) 66 self.assertEqual(posixpath.split("/foo/bar"), ("/foo", "bar"))
53 self.assertEqual(posixpath.split("/"), ("/", "")) 67 self.assertEqual(posixpath.split("/"), ("/", ""))
54 self.assertEqual(posixpath.split("foo"), ("", "foo")) 68 self.assertEqual(posixpath.split("foo"), ("", "foo"))
55 self.assertEqual(posixpath.split("////foo"), ("////", "foo")) 69 self.assertEqual(posixpath.split("////foo"), ("////", "foo"))
56 self.assertEqual(posixpath.split("//foo//bar"), ("//foo", "bar")) 70 self.assertEqual(posixpath.split("//foo//bar"), ("//foo", "bar"))
71
72 self.assertEqual(posixpath.split(b"/foo/bar"), (b"/foo", b"bar"))
73 self.assertEqual(posixpath.split(b"/"), (b"/", b""))
74 self.assertEqual(posixpath.split(b"foo"), (b"", b"foo"))
75 self.assertEqual(posixpath.split(b"////foo"), (b"////", b"foo"))
76 self.assertEqual(posixpath.split(b"//foo//bar"), (b"//foo", b"bar"))
57 77
58 self.assertRaises(TypeError, posixpath.split) 78 self.assertRaises(TypeError, posixpath.split)
59 79
60 def splitextTest(self, path, filename, ext): 80 def splitextTest(self, path, filename, ext):
61 self.assertEqual(posixpath.splitext(path), (filename, ext)) 81 self.assertEqual(posixpath.splitext(path), (filename, ext))
62 self.assertEqual(posixpath.splitext("/" + path), ("/" + filename, ext)) 82 self.assertEqual(posixpath.splitext("/" + path), ("/" + filename, ext))
63 self.assertEqual(posixpath.splitext("abc/" + path), ("abc/" + filename, ext)) 83 self.assertEqual(posixpath.splitext("abc/" + path),
64 self.assertEqual(posixpath.splitext("abc.def/" + path), ("abc.def/" + fi lename, ext)) 84 ("abc/" + filename, ext))
65 self.assertEqual(posixpath.splitext("/abc.def/" + path), ("/abc.def/" + filename, ext)) 85 self.assertEqual(posixpath.splitext("abc.def/" + path),
66 self.assertEqual(posixpath.splitext(path + "/"), (filename + ext + "/", "")) 86 ("abc.def/" + filename, ext))
87 self.assertEqual(posixpath.splitext("/abc.def/" + path),
88 ("/abc.def/" + filename, ext))
89 self.assertEqual(posixpath.splitext(path + "/"),
90 (filename + ext + "/", ""))
91
92 path = bytes(path, "ASCII")
93 filename = bytes(filename, "ASCII")
94 ext = bytes(ext, "ASCII")
95
96 self.assertEqual(posixpath.splitext(path), (filename, ext))
97 self.assertEqual(posixpath.splitext(b"/" + path),
98 (b"/" + filename, ext))
99 self.assertEqual(posixpath.splitext(b"abc/" + path),
100 (b"abc/" + filename, ext))
101 self.assertEqual(posixpath.splitext(b"abc.def/" + path),
102 (b"abc.def/" + filename, ext))
103 self.assertEqual(posixpath.splitext(b"/abc.def/" + path),
104 (b"/abc.def/" + filename, ext))
105 self.assertEqual(posixpath.splitext(path + b"/"),
106 (filename + ext + b"/", b""))
67 107
68 def test_splitext(self): 108 def test_splitext(self):
69 self.splitextTest("foo.bar", "foo", ".bar") 109 self.splitextTest("foo.bar", "foo", ".bar")
70 self.splitextTest("foo.boo.bar", "foo.boo", ".bar") 110 self.splitextTest("foo.boo.bar", "foo.boo", ".bar")
71 self.splitextTest("foo.boo.biff.bar", "foo.boo.biff", ".bar") 111 self.splitextTest("foo.boo.biff.bar", "foo.boo.biff", ".bar")
72 self.splitextTest(".csh.rc", ".csh", ".rc") 112 self.splitextTest(".csh.rc", ".csh", ".rc")
73 self.splitextTest("nodots", "nodots", "") 113 self.splitextTest("nodots", "nodots", "")
74 self.splitextTest(".cshrc", ".cshrc", "") 114 self.splitextTest(".cshrc", ".cshrc", "")
75 self.splitextTest("...manydots", "...manydots", "") 115 self.splitextTest("...manydots", "...manydots", "")
76 self.splitextTest("...manydots.ext", "...manydots", ".ext") 116 self.splitextTest("...manydots.ext", "...manydots", ".ext")
77 self.splitextTest(".", ".", "") 117 self.splitextTest(".", ".", "")
78 self.splitextTest("..", "..", "") 118 self.splitextTest("..", "..", "")
79 self.splitextTest("........", "........", "") 119 self.splitextTest("........", "........", "")
80 self.splitextTest("", "", "") 120 self.splitextTest("", "", "")
81 self.assertRaises(TypeError, posixpath.splitext) 121 self.assertRaises(TypeError, posixpath.splitext)
82 122
83 def test_isabs(self): 123 def test_isabs(self):
84 self.assertIs(posixpath.isabs(""), False) 124 self.assertIs(posixpath.isabs(""), False)
85 self.assertIs(posixpath.isabs("/"), True) 125 self.assertIs(posixpath.isabs("/"), True)
86 self.assertIs(posixpath.isabs("/foo"), True) 126 self.assertIs(posixpath.isabs("/foo"), True)
87 self.assertIs(posixpath.isabs("/foo/bar"), True) 127 self.assertIs(posixpath.isabs("/foo/bar"), True)
88 self.assertIs(posixpath.isabs("foo/bar"), False) 128 self.assertIs(posixpath.isabs("foo/bar"), False)
89 129
130 self.assertIs(posixpath.isabs(b""), False)
131 self.assertIs(posixpath.isabs(b"/"), True)
132 self.assertIs(posixpath.isabs(b"/foo"), True)
133 self.assertIs(posixpath.isabs(b"/foo/bar"), True)
134 self.assertIs(posixpath.isabs(b"foo/bar"), False)
135
90 self.assertRaises(TypeError, posixpath.isabs) 136 self.assertRaises(TypeError, posixpath.isabs)
91
92 def test_splitdrive(self):
93 self.assertEqual(posixpath.splitdrive("/foo/bar"), ("", "/foo/bar"))
94
95 self.assertRaises(TypeError, posixpath.splitdrive)
96 137
97 def test_basename(self): 138 def test_basename(self):
98 self.assertEqual(posixpath.basename("/foo/bar"), "bar") 139 self.assertEqual(posixpath.basename("/foo/bar"), "bar")
99 self.assertEqual(posixpath.basename("/"), "") 140 self.assertEqual(posixpath.basename("/"), "")
100 self.assertEqual(posixpath.basename("foo"), "foo") 141 self.assertEqual(posixpath.basename("foo"), "foo")
101 self.assertEqual(posixpath.basename("////foo"), "foo") 142 self.assertEqual(posixpath.basename("////foo"), "foo")
102 self.assertEqual(posixpath.basename("//foo//bar"), "bar") 143 self.assertEqual(posixpath.basename("//foo//bar"), "bar")
144
145 self.assertEqual(posixpath.basename(b"/foo/bar"), b"bar")
146 self.assertEqual(posixpath.basename(b"/"), b"")
147 self.assertEqual(posixpath.basename(b"foo"), b"foo")
148 self.assertEqual(posixpath.basename(b"////foo"), b"foo")
149 self.assertEqual(posixpath.basename(b"//foo//bar"), b"bar")
103 150
104 self.assertRaises(TypeError, posixpath.basename) 151 self.assertRaises(TypeError, posixpath.basename)
105 152
106 def test_dirname(self): 153 def test_dirname(self):
107 self.assertEqual(posixpath.dirname("/foo/bar"), "/foo") 154 self.assertEqual(posixpath.dirname("/foo/bar"), "/foo")
108 self.assertEqual(posixpath.dirname("/"), "/") 155 self.assertEqual(posixpath.dirname("/"), "/")
109 self.assertEqual(posixpath.dirname("foo"), "") 156 self.assertEqual(posixpath.dirname("foo"), "")
110 self.assertEqual(posixpath.dirname("////foo"), "////") 157 self.assertEqual(posixpath.dirname("////foo"), "////")
111 self.assertEqual(posixpath.dirname("//foo//bar"), "//foo") 158 self.assertEqual(posixpath.dirname("//foo//bar"), "//foo")
159
160 self.assertEqual(posixpath.dirname(b"/foo/bar"), b"/foo")
161 self.assertEqual(posixpath.dirname(b"/"), b"/")
162 self.assertEqual(posixpath.dirname(b"foo"), b"")
163 self.assertEqual(posixpath.dirname(b"////foo"), b"////")
164 self.assertEqual(posixpath.dirname(b"//foo//bar"), b"//foo")
112 165
113 self.assertRaises(TypeError, posixpath.dirname) 166 self.assertRaises(TypeError, posixpath.dirname)
114 167
115 def test_commonprefix(self): 168 def test_commonprefix(self):
116 self.assertEqual( 169 self.assertEqual(
117 posixpath.commonprefix([]), 170 posixpath.commonprefix([]),
118 "" 171 ""
119 ) 172 )
120 self.assertEqual( 173 self.assertEqual(
121 posixpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"]), 174 posixpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"]),
122 "/home/swen" 175 "/home/swen"
123 ) 176 )
124 self.assertEqual( 177 self.assertEqual(
125 posixpath.commonprefix(["/home/swen/spam", "/home/swen/eggs"]), 178 posixpath.commonprefix(["/home/swen/spam", "/home/swen/eggs"]),
126 "/home/swen/" 179 "/home/swen/"
127 ) 180 )
128 self.assertEqual( 181 self.assertEqual(
129 posixpath.commonprefix(["/home/swen/spam", "/home/swen/spam"]), 182 posixpath.commonprefix(["/home/swen/spam", "/home/swen/spam"]),
130 "/home/swen/spam" 183 "/home/swen/spam"
184 )
185
186 self.assertEqual(
187 posixpath.commonprefix([b"/home/swenson/spam", b"/home/swen/spam"]),
188 b"/home/swen"
189 )
190 self.assertEqual(
191 posixpath.commonprefix([b"/home/swen/spam", b"/home/swen/eggs"]),
192 b"/home/swen/"
193 )
194 self.assertEqual(
195 posixpath.commonprefix([b"/home/swen/spam", b"/home/swen/spam"]),
196 b"/home/swen/spam"
131 ) 197 )
132 198
133 testlist = ['', 'abc', 'Xbcd', 'Xb', 'XY', 'abcd', 'aXc', 'abd', 'ab', ' aX', 'abcX'] 199 testlist = ['', 'abc', 'Xbcd', 'Xb', 'XY', 'abcd', 'aXc', 'abd', 'ab', ' aX', 'abcX']
134 for s1 in testlist: 200 for s1 in testlist:
135 for s2 in testlist: 201 for s2 in testlist:
136 p = posixpath.commonprefix([s1, s2]) 202 p = posixpath.commonprefix([s1, s2])
137 self.assert_(s1.startswith(p)) 203 self.assert_(s1.startswith(p))
138 self.assert_(s2.startswith(p)) 204 self.assert_(s2.startswith(p))
139 if s1 != s2: 205 if s1 != s2:
140 n = len(p) 206 n = len(p)
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 389
324 self.assertRaises(TypeError, posixpath.samestat) 390 self.assertRaises(TypeError, posixpath.samestat)
325 391
326 def test_ismount(self): 392 def test_ismount(self):
327 self.assertIs(posixpath.ismount("/"), True) 393 self.assertIs(posixpath.ismount("/"), True)
328 394
329 self.assertRaises(TypeError, posixpath.ismount) 395 self.assertRaises(TypeError, posixpath.ismount)
330 396
331 def test_expanduser(self): 397 def test_expanduser(self):
332 self.assertEqual(posixpath.expanduser("foo"), "foo") 398 self.assertEqual(posixpath.expanduser("foo"), "foo")
399 self.assertEqual(posixpath.expanduser(b"foo"), b"foo")
333 try: 400 try:
334 import pwd 401 import pwd
335 except ImportError: 402 except ImportError:
336 pass 403 pass
337 else: 404 else:
338 self.assert_(isinstance(posixpath.expanduser("~/"), str)) 405 self.assert_(isinstance(posixpath.expanduser("~/"), str))
406 self.assert_(isinstance(posixpath.expanduser(b"~/"), bytes))
339 # if home directory == root directory, this test makes no sense 407 # if home directory == root directory, this test makes no sense
340 if posixpath.expanduser("~") != '/': 408 if posixpath.expanduser("~") != '/':
341 self.assertEqual( 409 self.assertEqual(
342 posixpath.expanduser("~") + "/", 410 posixpath.expanduser("~") + "/",
343 posixpath.expanduser("~/") 411 posixpath.expanduser("~/")
344 ) 412 )
413 self.assertEqual(
414 posixpath.expanduser(b"~") + b"/",
415 posixpath.expanduser(b"~/")
416 )
345 self.assert_(isinstance(posixpath.expanduser("~root/"), str)) 417 self.assert_(isinstance(posixpath.expanduser("~root/"), str))
346 self.assert_(isinstance(posixpath.expanduser("~foo/"), str)) 418 self.assert_(isinstance(posixpath.expanduser("~foo/"), str))
419 self.assert_(isinstance(posixpath.expanduser(b"~root/"), bytes))
420 self.assert_(isinstance(posixpath.expanduser(b"~foo/"), bytes))
347 421
348 self.assertRaises(TypeError, posixpath.expanduser) 422 self.assertRaises(TypeError, posixpath.expanduser)
349 423
350 def test_expandvars(self): 424 def test_expandvars(self):
351 oldenv = os.environ.copy() 425 oldenv = os.environ.copy()
352 try: 426 try:
353 os.environ.clear() 427 os.environ.clear()
354 os.environ["foo"] = "bar" 428 os.environ["foo"] = "bar"
355 os.environ["{foo"] = "baz1" 429 os.environ["{foo"] = "baz1"
356 os.environ["{foo}"] = "baz2" 430 os.environ["{foo}"] = "baz2"
357 self.assertEqual(posixpath.expandvars("foo"), "foo") 431 self.assertEqual(posixpath.expandvars("foo"), "foo")
358 self.assertEqual(posixpath.expandvars("$foo bar"), "bar bar") 432 self.assertEqual(posixpath.expandvars("$foo bar"), "bar bar")
359 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar") 433 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar")
360 self.assertEqual(posixpath.expandvars("$[foo]bar"), "$[foo]bar") 434 self.assertEqual(posixpath.expandvars("$[foo]bar"), "$[foo]bar")
361 self.assertEqual(posixpath.expandvars("$bar bar"), "$bar bar") 435 self.assertEqual(posixpath.expandvars("$bar bar"), "$bar bar")
362 self.assertEqual(posixpath.expandvars("$?bar"), "$?bar") 436 self.assertEqual(posixpath.expandvars("$?bar"), "$?bar")
363 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar") 437 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar")
364 self.assertEqual(posixpath.expandvars("$foo}bar"), "bar}bar") 438 self.assertEqual(posixpath.expandvars("$foo}bar"), "bar}bar")
365 self.assertEqual(posixpath.expandvars("${foo"), "${foo") 439 self.assertEqual(posixpath.expandvars("${foo"), "${foo")
366 self.assertEqual(posixpath.expandvars("${{foo}}"), "baz1}") 440 self.assertEqual(posixpath.expandvars("${{foo}}"), "baz1}")
367 self.assertEqual(posixpath.expandvars("$foo$foo"), "barbar") 441 self.assertEqual(posixpath.expandvars("$foo$foo"), "barbar")
368 self.assertEqual(posixpath.expandvars("$bar$bar"), "$bar$bar") 442 self.assertEqual(posixpath.expandvars("$bar$bar"), "$bar$bar")
443
444 self.assertEqual(posixpath.expandvars(b"foo"), b"foo")
445 self.assertEqual(posixpath.expandvars(b"$foo bar"), b"bar bar")
446 self.assertEqual(posixpath.expandvars(b"${foo}bar"), b"barbar")
447 self.assertEqual(posixpath.expandvars(b"$[foo]bar"), b"$[foo]bar")
448 self.assertEqual(posixpath.expandvars(b"$bar bar"), b"$bar bar")
449 self.assertEqual(posixpath.expandvars(b"$?bar"), b"$?bar")
450 self.assertEqual(posixpath.expandvars(b"${foo}bar"), b"barbar")
451 self.assertEqual(posixpath.expandvars(b"$foo}bar"), b"bar}bar")
452 self.assertEqual(posixpath.expandvars(b"${foo"), b"${foo")
453 self.assertEqual(posixpath.expandvars(b"${{foo}}"), b"baz1}")
454 self.assertEqual(posixpath.expandvars(b"$foo$foo"), b"barbar")
455 self.assertEqual(posixpath.expandvars(b"$bar$bar"), b"$bar$bar")
369 finally: 456 finally:
370 os.environ.clear() 457 os.environ.clear()
371 os.environ.update(oldenv) 458 os.environ.update(oldenv)
372 459
373 self.assertRaises(TypeError, posixpath.expandvars) 460 self.assertRaises(TypeError, posixpath.expandvars)
374 461
375 def test_normpath(self): 462 def test_normpath(self):
376 self.assertEqual(posixpath.normpath(""), ".") 463 self.assertEqual(posixpath.normpath(""), ".")
377 self.assertEqual(posixpath.normpath("/"), "/") 464 self.assertEqual(posixpath.normpath("/"), "/")
378 self.assertEqual(posixpath.normpath("//"), "//") 465 self.assertEqual(posixpath.normpath("//"), "//")
379 self.assertEqual(posixpath.normpath("///"), "/") 466 self.assertEqual(posixpath.normpath("///"), "/")
380 self.assertEqual(posixpath.normpath("///foo/.//bar//"), "/foo/bar") 467 self.assertEqual(posixpath.normpath("///foo/.//bar//"), "/foo/bar")
381 self.assertEqual(posixpath.normpath("///foo/.//bar//.//..//.//baz"), "/f oo/baz") 468 self.assertEqual(posixpath.normpath("///foo/.//bar//.//..//.//baz"),
469 "/foo/baz")
382 self.assertEqual(posixpath.normpath("///..//./foo/.//bar"), "/foo/bar") 470 self.assertEqual(posixpath.normpath("///..//./foo/.//bar"), "/foo/bar")
471
472 self.assertEqual(posixpath.normpath(b""), b".")
473 self.assertEqual(posixpath.normpath(b"/"), b"/")
474 self.assertEqual(posixpath.normpath(b"//"), b"//")
475 self.assertEqual(posixpath.normpath(b"///"), b"/")
476 self.assertEqual(posixpath.normpath(b"///foo/.//bar//"), b"/foo/bar")
477 self.assertEqual(posixpath.normpath(b"///foo/.//bar//.//..//.//baz"),
478 b"/foo/baz")
479 self.assertEqual(posixpath.normpath(b"///..//./foo/.//bar"),
480 b"/foo/bar")
383 481
384 self.assertRaises(TypeError, posixpath.normpath) 482 self.assertRaises(TypeError, posixpath.normpath)
385 483
386 def test_abspath(self): 484 def test_abspath(self):
387 self.assert_("foo" in posixpath.abspath("foo")) 485 self.assert_("foo" in posixpath.abspath("foo"))
486 self.assert_(b"foo" in posixpath.abspath(b"foo"))
388 487
389 self.assertRaises(TypeError, posixpath.abspath) 488 self.assertRaises(TypeError, posixpath.abspath)
390 489
391 def test_realpath(self): 490 def test_realpath(self):
392 self.assert_("foo" in realpath("foo")) 491 self.assert_("foo" in realpath("foo"))
492 self.assert_(b"foo" in realpath(b"foo"))
393 self.assertRaises(TypeError, posixpath.realpath) 493 self.assertRaises(TypeError, posixpath.realpath)
394 494
395 if hasattr(os, "symlink"): 495 if hasattr(os, "symlink"):
396 def test_realpath_basic(self): 496 def test_realpath_basic(self):
397 # Basic operation. 497 # Basic operation.
398 try: 498 try:
399 os.symlink(ABSTFN+"1", ABSTFN) 499 os.symlink(ABSTFN+"1", ABSTFN)
400 self.assertEqual(realpath(ABSTFN), ABSTFN+"1") 500 self.assertEqual(realpath(ABSTFN), ABSTFN+"1")
401 finally: 501 finally:
402 support.unlink(ABSTFN) 502 support.unlink(ABSTFN)
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 def test_relpath(self): 592 def test_relpath(self):
493 (real_getcwd, os.getcwd) = (os.getcwd, lambda: r"/home/user/bar") 593 (real_getcwd, os.getcwd) = (os.getcwd, lambda: r"/home/user/bar")
494 try: 594 try:
495 curdir = os.path.split(os.getcwd())[-1] 595 curdir = os.path.split(os.getcwd())[-1]
496 self.assertRaises(ValueError, posixpath.relpath, "") 596 self.assertRaises(ValueError, posixpath.relpath, "")
497 self.assertEqual(posixpath.relpath("a"), "a") 597 self.assertEqual(posixpath.relpath("a"), "a")
498 self.assertEqual(posixpath.relpath(posixpath.abspath("a")), "a") 598 self.assertEqual(posixpath.relpath(posixpath.abspath("a")), "a")
499 self.assertEqual(posixpath.relpath("a/b"), "a/b") 599 self.assertEqual(posixpath.relpath("a/b"), "a/b")
500 self.assertEqual(posixpath.relpath("../a/b"), "../a/b") 600 self.assertEqual(posixpath.relpath("../a/b"), "../a/b")
501 self.assertEqual(posixpath.relpath("a", "../b"), "../"+curdir+"/a") 601 self.assertEqual(posixpath.relpath("a", "../b"), "../"+curdir+"/a")
502 self.assertEqual(posixpath.relpath("a/b", "../c"), "../"+curdir+"/a/ b") 602 self.assertEqual(posixpath.relpath("a/b", "../c"),
603 "../"+curdir+"/a/b")
503 self.assertEqual(posixpath.relpath("a", "b/c"), "../../a") 604 self.assertEqual(posixpath.relpath("a", "b/c"), "../../a")
504 self.assertEqual(posixpath.relpath("a", "a"), ".") 605 self.assertEqual(posixpath.relpath("a", "a"), ".")
505 finally: 606 finally:
506 os.getcwd = real_getcwd 607 os.getcwd = real_getcwd
507 608
609 def test_relpath_bytes(self):
610 (real_getcwdb, os.getcwdb) = (os.getcwdb, lambda: br"/home/user/bar")
611 try:
612 curdir = os.path.split(os.getcwdb())[-1]
613 self.assertRaises(ValueError, posixpath.relpath, b"")
614 self.assertEqual(posixpath.relpath(b"a"), b"a")
615 self.assertEqual(posixpath.relpath(posixpath.abspath(b"a")), b"a")
616 self.assertEqual(posixpath.relpath(b"a/b"), b"a/b")
617 self.assertEqual(posixpath.relpath(b"../a/b"), b"../a/b")
618 self.assertEqual(posixpath.relpath(b"a", b"../b"),
619 b"../"+curdir+b"/a")
620 self.assertEqual(posixpath.relpath(b"a/b", b"../c"),
621 b"../"+curdir+b"/a/b")
622 self.assertEqual(posixpath.relpath(b"a", b"b/c"), b"../../a")
623 self.assertEqual(posixpath.relpath(b"a", b"a"), b".")
624
625 self.assertRaises(TypeError, posixpath.relpath, b"bytes", "str")
626 self.assertRaises(TypeError, posixpath.relpath, "str", b"bytes")
627 finally:
628 os.getcwdb = real_getcwdb
629
508 def test_main(): 630 def test_main():
509 support.run_unittest(PosixPathTest) 631 support.run_unittest(PosixPathTest)
510 632
511 if __name__=="__main__": 633 if __name__=="__main__":
512 test_main() 634 test_main()
OLDNEW

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld r483