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