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

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: My final version of Victor's patches Created 1 year, 2 months 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), ("abc/" + filename, ext))
64 self.assertEqual(posixpath.splitext("abc.def/" + path), ("abc.def/" + fi lename, ext)) 84 self.assertEqual(posixpath.splitext("abc.def/" + path), ("abc.def/" + fi lename, ext))
65 self.assertEqual(posixpath.splitext("/abc.def/" + path), ("/abc.def/" + filename, ext)) 85 self.assertEqual(posixpath.splitext("/abc.def/" + path), ("/abc.def/" + filename, ext))
66 self.assertEqual(posixpath.splitext(path + "/"), (filename + ext + "/", "")) 86 self.assertEqual(posixpath.splitext(path + "/"), (filename + ext + "/", ""))
87
88 path = bytes(path, "ASCII")
89 filename = bytes(filename, "ASCII")
90 ext = bytes(ext, "ASCII")
91
92 self.assertEqual(posixpath.splitext(path), (filename, ext))
93 self.assertEqual(posixpath.splitext(b"/" + path), (b"/" + filename, ext) )
94 self.assertEqual(posixpath.splitext(b"abc/" + path), (b"abc/" + filename , ext))
95 self.assertEqual(posixpath.splitext(b"abc.def/" + path), (b"abc.def/" + filename, ext))
96 self.assertEqual(posixpath.splitext(b"/abc.def/" + path), (b"/abc.def/" + filename, ext))
97 self.assertEqual(posixpath.splitext(path + b"/"), (filename + ext + b"/" , b""))
67 98
68 def test_splitext(self): 99 def test_splitext(self):
69 self.splitextTest("foo.bar", "foo", ".bar") 100 self.splitextTest("foo.bar", "foo", ".bar")
70 self.splitextTest("foo.boo.bar", "foo.boo", ".bar") 101 self.splitextTest("foo.boo.bar", "foo.boo", ".bar")
71 self.splitextTest("foo.boo.biff.bar", "foo.boo.biff", ".bar") 102 self.splitextTest("foo.boo.biff.bar", "foo.boo.biff", ".bar")
72 self.splitextTest(".csh.rc", ".csh", ".rc") 103 self.splitextTest(".csh.rc", ".csh", ".rc")
73 self.splitextTest("nodots", "nodots", "") 104 self.splitextTest("nodots", "nodots", "")
74 self.splitextTest(".cshrc", ".cshrc", "") 105 self.splitextTest(".cshrc", ".cshrc", "")
75 self.splitextTest("...manydots", "...manydots", "") 106 self.splitextTest("...manydots", "...manydots", "")
76 self.splitextTest("...manydots.ext", "...manydots", ".ext") 107 self.splitextTest("...manydots.ext", "...manydots", ".ext")
77 self.splitextTest(".", ".", "") 108 self.splitextTest(".", ".", "")
78 self.splitextTest("..", "..", "") 109 self.splitextTest("..", "..", "")
79 self.splitextTest("........", "........", "") 110 self.splitextTest("........", "........", "")
80 self.splitextTest("", "", "") 111 self.splitextTest("", "", "")
81 self.assertRaises(TypeError, posixpath.splitext) 112 self.assertRaises(TypeError, posixpath.splitext)
82 113
83 def test_isabs(self): 114 def test_isabs(self):
84 self.assertIs(posixpath.isabs(""), False) 115 self.assertIs(posixpath.isabs(""), False)
85 self.assertIs(posixpath.isabs("/"), True) 116 self.assertIs(posixpath.isabs("/"), True)
86 self.assertIs(posixpath.isabs("/foo"), True) 117 self.assertIs(posixpath.isabs("/foo"), True)
87 self.assertIs(posixpath.isabs("/foo/bar"), True) 118 self.assertIs(posixpath.isabs("/foo/bar"), True)
88 self.assertIs(posixpath.isabs("foo/bar"), False) 119 self.assertIs(posixpath.isabs("foo/bar"), False)
89 120
121 self.assertIs(posixpath.isabs(b""), False)
122 self.assertIs(posixpath.isabs(b"/"), True)
123 self.assertIs(posixpath.isabs(b"/foo"), True)
124 self.assertIs(posixpath.isabs(b"/foo/bar"), True)
125 self.assertIs(posixpath.isabs(b"foo/bar"), False)
126
90 self.assertRaises(TypeError, posixpath.isabs) 127 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 128
97 def test_basename(self): 129 def test_basename(self):
98 self.assertEqual(posixpath.basename("/foo/bar"), "bar") 130 self.assertEqual(posixpath.basename("/foo/bar"), "bar")
99 self.assertEqual(posixpath.basename("/"), "") 131 self.assertEqual(posixpath.basename("/"), "")
100 self.assertEqual(posixpath.basename("foo"), "foo") 132 self.assertEqual(posixpath.basename("foo"), "foo")
101 self.assertEqual(posixpath.basename("////foo"), "foo") 133 self.assertEqual(posixpath.basename("////foo"), "foo")
102 self.assertEqual(posixpath.basename("//foo//bar"), "bar") 134 self.assertEqual(posixpath.basename("//foo//bar"), "bar")
135
136 self.assertEqual(posixpath.basename(b"/foo/bar"), b"bar")
137 self.assertEqual(posixpath.basename(b"/"), b"")
138 self.assertEqual(posixpath.basename(b"foo"), b"foo")
139 self.assertEqual(posixpath.basename(b"////foo"), b"foo")
140 self.assertEqual(posixpath.basename(b"//foo//bar"), b"bar")
103 141
104 self.assertRaises(TypeError, posixpath.basename) 142 self.assertRaises(TypeError, posixpath.basename)
105 143
106 def test_dirname(self): 144 def test_dirname(self):
107 self.assertEqual(posixpath.dirname("/foo/bar"), "/foo") 145 self.assertEqual(posixpath.dirname("/foo/bar"), "/foo")
108 self.assertEqual(posixpath.dirname("/"), "/") 146 self.assertEqual(posixpath.dirname("/"), "/")
109 self.assertEqual(posixpath.dirname("foo"), "") 147 self.assertEqual(posixpath.dirname("foo"), "")
110 self.assertEqual(posixpath.dirname("////foo"), "////") 148 self.assertEqual(posixpath.dirname("////foo"), "////")
111 self.assertEqual(posixpath.dirname("//foo//bar"), "//foo") 149 self.assertEqual(posixpath.dirname("//foo//bar"), "//foo")
150
151 self.assertEqual(posixpath.dirname(b"/foo/bar"), b"/foo")
152 self.assertEqual(posixpath.dirname(b"/"), b"/")
153 self.assertEqual(posixpath.dirname(b"foo"), b"")
154 self.assertEqual(posixpath.dirname(b"////foo"), b"////")
155 self.assertEqual(posixpath.dirname(b"//foo//bar"), b"//foo")
112 156
113 self.assertRaises(TypeError, posixpath.dirname) 157 self.assertRaises(TypeError, posixpath.dirname)
114 158
115 def test_commonprefix(self): 159 def test_commonprefix(self):
116 self.assertEqual( 160 self.assertEqual(
117 posixpath.commonprefix([]), 161 posixpath.commonprefix([]),
118 "" 162 ""
119 ) 163 )
120 self.assertEqual( 164 self.assertEqual(
121 posixpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"]), 165 posixpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"]),
122 "/home/swen" 166 "/home/swen"
123 ) 167 )
124 self.assertEqual( 168 self.assertEqual(
125 posixpath.commonprefix(["/home/swen/spam", "/home/swen/eggs"]), 169 posixpath.commonprefix(["/home/swen/spam", "/home/swen/eggs"]),
126 "/home/swen/" 170 "/home/swen/"
127 ) 171 )
128 self.assertEqual( 172 self.assertEqual(
129 posixpath.commonprefix(["/home/swen/spam", "/home/swen/spam"]), 173 posixpath.commonprefix(["/home/swen/spam", "/home/swen/spam"]),
130 "/home/swen/spam" 174 "/home/swen/spam"
175 )
176
177 self.assertEqual(
178 posixpath.commonprefix([b"/home/swenson/spam", b"/home/swen/spam"]),
179 b"/home/swen"
180 )
181 self.assertEqual(
182 posixpath.commonprefix([b"/home/swen/spam", b"/home/swen/eggs"]),
183 b"/home/swen/"
184 )
185 self.assertEqual(
186 posixpath.commonprefix([b"/home/swen/spam", b"/home/swen/spam"]),
187 b"/home/swen/spam"
131 ) 188 )
132 189
133 testlist = ['', 'abc', 'Xbcd', 'Xb', 'XY', 'abcd', 'aXc', 'abd', 'ab', ' aX', 'abcX'] 190 testlist = ['', 'abc', 'Xbcd', 'Xb', 'XY', 'abcd', 'aXc', 'abd', 'ab', ' aX', 'abcX']
134 for s1 in testlist: 191 for s1 in testlist:
135 for s2 in testlist: 192 for s2 in testlist:
136 p = posixpath.commonprefix([s1, s2]) 193 p = posixpath.commonprefix([s1, s2])
137 self.assert_(s1.startswith(p)) 194 self.assert_(s1.startswith(p))
138 self.assert_(s2.startswith(p)) 195 self.assert_(s2.startswith(p))
139 if s1 != s2: 196 if s1 != s2:
140 n = len(p) 197 n = len(p)
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 380
324 self.assertRaises(TypeError, posixpath.samestat) 381 self.assertRaises(TypeError, posixpath.samestat)
325 382
326 def test_ismount(self): 383 def test_ismount(self):
327 self.assertIs(posixpath.ismount("/"), True) 384 self.assertIs(posixpath.ismount("/"), True)
328 385
329 self.assertRaises(TypeError, posixpath.ismount) 386 self.assertRaises(TypeError, posixpath.ismount)
330 387
331 def test_expanduser(self): 388 def test_expanduser(self):
332 self.assertEqual(posixpath.expanduser("foo"), "foo") 389 self.assertEqual(posixpath.expanduser("foo"), "foo")
390 self.assertEqual(posixpath.expanduser(b"foo"), b"foo")
333 try: 391 try:
334 import pwd 392 import pwd
335 except ImportError: 393 except ImportError:
336 pass 394 pass
337 else: 395 else:
338 self.assert_(isinstance(posixpath.expanduser("~/"), str)) 396 self.assert_(isinstance(posixpath.expanduser("~/"), str))
397 self.assert_(isinstance(posixpath.expanduser(b"~/"), bytes))
339 # if home directory == root directory, this test makes no sense 398 # if home directory == root directory, this test makes no sense
340 if posixpath.expanduser("~") != '/': 399 if posixpath.expanduser("~") != '/':
341 self.assertEqual( 400 self.assertEqual(
342 posixpath.expanduser("~") + "/", 401 posixpath.expanduser("~") + "/",
343 posixpath.expanduser("~/") 402 posixpath.expanduser("~/")
344 ) 403 )
404 self.assertEqual(
405 posixpath.expanduser(b"~") + b"/",
406 posixpath.expanduser(b"~/")
407 )
345 self.assert_(isinstance(posixpath.expanduser("~root/"), str)) 408 self.assert_(isinstance(posixpath.expanduser("~root/"), str))
346 self.assert_(isinstance(posixpath.expanduser("~foo/"), str)) 409 self.assert_(isinstance(posixpath.expanduser("~foo/"), str))
410 self.assert_(isinstance(posixpath.expanduser(b"~root/"), bytes))
411 self.assert_(isinstance(posixpath.expanduser(b"~foo/"), bytes))
347 412
348 self.assertRaises(TypeError, posixpath.expanduser) 413 self.assertRaises(TypeError, posixpath.expanduser)
349 414
350 def test_expandvars(self): 415 def test_expandvars(self):
351 oldenv = os.environ.copy() 416 oldenv = os.environ.copy()
352 try: 417 try:
353 os.environ.clear() 418 os.environ.clear()
354 os.environ["foo"] = "bar" 419 os.environ["foo"] = "bar"
355 os.environ["{foo"] = "baz1" 420 os.environ["{foo"] = "baz1"
356 os.environ["{foo}"] = "baz2" 421 os.environ["{foo}"] = "baz2"
357 self.assertEqual(posixpath.expandvars("foo"), "foo") 422 self.assertEqual(posixpath.expandvars("foo"), "foo")
358 self.assertEqual(posixpath.expandvars("$foo bar"), "bar bar") 423 self.assertEqual(posixpath.expandvars("$foo bar"), "bar bar")
359 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar") 424 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar")
360 self.assertEqual(posixpath.expandvars("$[foo]bar"), "$[foo]bar") 425 self.assertEqual(posixpath.expandvars("$[foo]bar"), "$[foo]bar")
361 self.assertEqual(posixpath.expandvars("$bar bar"), "$bar bar") 426 self.assertEqual(posixpath.expandvars("$bar bar"), "$bar bar")
362 self.assertEqual(posixpath.expandvars("$?bar"), "$?bar") 427 self.assertEqual(posixpath.expandvars("$?bar"), "$?bar")
363 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar") 428 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar")
364 self.assertEqual(posixpath.expandvars("$foo}bar"), "bar}bar") 429 self.assertEqual(posixpath.expandvars("$foo}bar"), "bar}bar")
365 self.assertEqual(posixpath.expandvars("${foo"), "${foo") 430 self.assertEqual(posixpath.expandvars("${foo"), "${foo")
366 self.assertEqual(posixpath.expandvars("${{foo}}"), "baz1}") 431 self.assertEqual(posixpath.expandvars("${{foo}}"), "baz1}")
367 self.assertEqual(posixpath.expandvars("$foo$foo"), "barbar") 432 self.assertEqual(posixpath.expandvars("$foo$foo"), "barbar")
368 self.assertEqual(posixpath.expandvars("$bar$bar"), "$bar$bar") 433 self.assertEqual(posixpath.expandvars("$bar$bar"), "$bar$bar")
434
435 self.assertEqual(posixpath.expandvars(b"foo"), b"foo")
436 self.assertEqual(posixpath.expandvars(b"$foo bar"), b"bar bar")
437 self.assertEqual(posixpath.expandvars(b"${foo}bar"), b"barbar")
438 self.assertEqual(posixpath.expandvars(b"$[foo]bar"), b"$[foo]bar")
439 self.assertEqual(posixpath.expandvars(b"$bar bar"), b"$bar bar")
440 self.assertEqual(posixpath.expandvars(b"$?bar"), b"$?bar")
441 self.assertEqual(posixpath.expandvars(b"${foo}bar"), b"barbar")
442 self.assertEqual(posixpath.expandvars(b"$foo}bar"), b"bar}bar")
443 self.assertEqual(posixpath.expandvars(b"${foo"), b"${foo")
444 self.assertEqual(posixpath.expandvars(b"${{foo}}"), b"baz1}")
445 self.assertEqual(posixpath.expandvars(b"$foo$foo"), b"barbar")
446 self.assertEqual(posixpath.expandvars(b"$bar$bar"), b"$bar$bar")
369 finally: 447 finally:
370 os.environ.clear() 448 os.environ.clear()
371 os.environ.update(oldenv) 449 os.environ.update(oldenv)
372 450
373 self.assertRaises(TypeError, posixpath.expandvars) 451 self.assertRaises(TypeError, posixpath.expandvars)
374 452
375 def test_normpath(self): 453 def test_normpath(self):
376 self.assertEqual(posixpath.normpath(""), ".") 454 self.assertEqual(posixpath.normpath(""), ".")
377 self.assertEqual(posixpath.normpath("/"), "/") 455 self.assertEqual(posixpath.normpath("/"), "/")
378 self.assertEqual(posixpath.normpath("//"), "//") 456 self.assertEqual(posixpath.normpath("//"), "//")
379 self.assertEqual(posixpath.normpath("///"), "/") 457 self.assertEqual(posixpath.normpath("///"), "/")
380 self.assertEqual(posixpath.normpath("///foo/.//bar//"), "/foo/bar") 458 self.assertEqual(posixpath.normpath("///foo/.//bar//"), "/foo/bar")
381 self.assertEqual(posixpath.normpath("///foo/.//bar//.//..//.//baz"), "/f oo/baz") 459 self.assertEqual(posixpath.normpath("///foo/.//bar//.//..//.//baz"),
460 "/foo/baz")
382 self.assertEqual(posixpath.normpath("///..//./foo/.//bar"), "/foo/bar") 461 self.assertEqual(posixpath.normpath("///..//./foo/.//bar"), "/foo/bar")
462
463 self.assertEqual(posixpath.normpath(b""), b".")
464 self.assertEqual(posixpath.normpath(b"/"), b"/")
465 self.assertEqual(posixpath.normpath(b"//"), b"//")
466 self.assertEqual(posixpath.normpath(b"///"), b"/")
467 self.assertEqual(posixpath.normpath(b"///foo/.//bar//"), b"/foo/bar")
468 self.assertEqual(posixpath.normpath(b"///foo/.//bar//.//..//.//baz"),
469 b"/foo/baz")
470 self.assertEqual(posixpath.normpath(b"///..//./foo/.//bar"),
471 b"/foo/bar")
383 472
384 self.assertRaises(TypeError, posixpath.normpath) 473 self.assertRaises(TypeError, posixpath.normpath)
385 474
386 def test_abspath(self): 475 def test_abspath(self):
387 self.assert_("foo" in posixpath.abspath("foo")) 476 self.assert_("foo" in posixpath.abspath("foo"))
477 self.assert_(b"foo" in posixpath.abspath(b"foo"))
388 478
389 self.assertRaises(TypeError, posixpath.abspath) 479 self.assertRaises(TypeError, posixpath.abspath)
390 480
391 def test_realpath(self): 481 def test_realpath(self):
392 self.assert_("foo" in realpath("foo")) 482 self.assert_("foo" in realpath("foo"))
483 self.assert_(b"foo" in realpath(b"foo"))
393 self.assertRaises(TypeError, posixpath.realpath) 484 self.assertRaises(TypeError, posixpath.realpath)
394 485
395 if hasattr(os, "symlink"): 486 if hasattr(os, "symlink"):
396 def test_realpath_basic(self): 487 def test_realpath_basic(self):
397 # Basic operation. 488 # Basic operation.
398 try: 489 try:
399 os.symlink(ABSTFN+"1", ABSTFN) 490 os.symlink(ABSTFN+"1", ABSTFN)
400 self.assertEqual(realpath(ABSTFN), ABSTFN+"1") 491 self.assertEqual(realpath(ABSTFN), ABSTFN+"1")
401 finally: 492 finally:
402 support.unlink(ABSTFN) 493 support.unlink(ABSTFN)
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 def test_relpath(self): 583 def test_relpath(self):
493 (real_getcwd, os.getcwd) = (os.getcwd, lambda: r"/home/user/bar") 584 (real_getcwd, os.getcwd) = (os.getcwd, lambda: r"/home/user/bar")
494 try: 585 try:
495 curdir = os.path.split(os.getcwd())[-1] 586 curdir = os.path.split(os.getcwd())[-1]
496 self.assertRaises(ValueError, posixpath.relpath, "") 587 self.assertRaises(ValueError, posixpath.relpath, "")
497 self.assertEqual(posixpath.relpath("a"), "a") 588 self.assertEqual(posixpath.relpath("a"), "a")
498 self.assertEqual(posixpath.relpath(posixpath.abspath("a")), "a") 589 self.assertEqual(posixpath.relpath(posixpath.abspath("a")), "a")
499 self.assertEqual(posixpath.relpath("a/b"), "a/b") 590 self.assertEqual(posixpath.relpath("a/b"), "a/b")
500 self.assertEqual(posixpath.relpath("../a/b"), "../a/b") 591 self.assertEqual(posixpath.relpath("../a/b"), "../a/b")
501 self.assertEqual(posixpath.relpath("a", "../b"), "../"+curdir+"/a") 592 self.assertEqual(posixpath.relpath("a", "../b"), "../"+curdir+"/a")
502 self.assertEqual(posixpath.relpath("a/b", "../c"), "../"+curdir+"/a/ b") 593 self.assertEqual(posixpath.relpath("a/b", "../c"),
594 "../"+curdir+"/a/b")
503 self.assertEqual(posixpath.relpath("a", "b/c"), "../../a") 595 self.assertEqual(posixpath.relpath("a", "b/c"), "../../a")
504 self.assertEqual(posixpath.relpath("a", "a"), ".") 596 self.assertEqual(posixpath.relpath("a", "a"), ".")
505 finally: 597 finally:
506 os.getcwd = real_getcwd 598 os.getcwd = real_getcwd
507 599
600 def test_relpath_bytes(self):
601 (real_getcwdb, os.getcwdb) = (os.getcwdb, lambda: br"/home/user/bar")
602 try:
603 curdir = os.path.split(os.getcwdb())[-1]
604 self.assertRaises(ValueError, posixpath.relpath, b"")
605 self.assertEqual(posixpath.relpath(b"a"), b"a")
606 self.assertEqual(posixpath.relpath(posixpath.abspath(b"a")), b"a")
607 self.assertEqual(posixpath.relpath(b"a/b"), b"a/b")
608 self.assertEqual(posixpath.relpath(b"../a/b"), b"../a/b")
609 self.assertEqual(posixpath.relpath(b"a", b"../b"),
610 b"../"+curdir+b"/a")
611 self.assertEqual(posixpath.relpath(b"a/b", b"../c"),
612 b"../"+curdir+b"/a/b")
613 self.assertEqual(posixpath.relpath(b"a", b"b/c"), b"../../a")
614 self.assertEqual(posixpath.relpath(b"a", b"a"), b".")
615
616 self.assertRaises(TypeError, posixpath.relpath, b"bytes", "str")
617 self.assertRaises(TypeError, posixpath.relpath, "str", b"bytes")
618 finally:
619 os.getcwdb = real_getcwdb
620
508 def test_main(): 621 def test_main():
509 support.run_unittest(PosixPathTest) 622 support.run_unittest(PosixPathTest)
510 623
511 if __name__=="__main__": 624 if __name__=="__main__":
512 test_main() 625 test_main()
OLDNEW

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