| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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() |
| OLD | NEW |