| 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"), "/bar/baz
") |
| 41 self.assertEqual(posixpath.join("/foo", "bar", "baz"), "/foo/bar/baz") | 43 self.assertEqual(posixpath.join("/foo", "bar", "baz"), "/foo/bar/baz") |
| 42 self.assertEqual(posixpath.join("/foo/", "bar/", "baz/"), "/foo/bar/baz/
") | 44 self.assertEqual(posixpath.join("/foo/", "bar/", "baz/"), "/foo/bar/baz/
") |
| 43 | 45 |
| 46 self.assertEqual(posixpath.join(b"/foo", b"bar", b"/bar", b"baz"), |
| 47 b"/bar/baz") |
| 48 self.assertEqual(posixpath.join(b"/foo", b"bar", b"baz"), |
| 49 b"/foo/bar/baz") |
| 50 self.assertEqual(posixpath.join(b"/foo/", b"bar/", b"baz/"), |
| 51 b"/foo/bar/baz/") |
| 52 |
| 44 self.assertRaises(TypeError, posixpath.join) | 53 self.assertRaises(TypeError, posixpath.join) |
| 54 self.assertRaises(TypeError, posixpath.join, b"bytes", "str") |
| 55 self.assertRaises(TypeError, posixpath.join, "str", b"bytes") |
| 45 | 56 |
| 46 def test_splitdrive(self): | 57 def test_splitdrive(self): |
| 47 self.assertEqual(posixpath.splitdrive("/foo/bar"), ("", "/foo/bar")) | 58 self.assertEqual(posixpath.splitdrive("/foo/bar"), ("", "/foo/bar")) |
| 59 self.assertEqual(posixpath.splitdrive(b"/foo/bar"), (b"", b"/foo/bar")) |
| 48 | 60 |
| 49 self.assertRaises(TypeError, posixpath.splitdrive) | 61 self.assertRaises(TypeError, posixpath.splitdrive) |
| 50 | 62 |
| 51 def test_split(self): | 63 def test_split(self): |
| 52 self.assertEqual(posixpath.split("/foo/bar"), ("/foo", "bar")) | 64 self.assertEqual(posixpath.split("/foo/bar"), ("/foo", "bar")) |
| 53 self.assertEqual(posixpath.split("/"), ("/", "")) | 65 self.assertEqual(posixpath.split("/"), ("/", "")) |
| 54 self.assertEqual(posixpath.split("foo"), ("", "foo")) | 66 self.assertEqual(posixpath.split("foo"), ("", "foo")) |
| 55 self.assertEqual(posixpath.split("////foo"), ("////", "foo")) | 67 self.assertEqual(posixpath.split("////foo"), ("////", "foo")) |
| 56 self.assertEqual(posixpath.split("//foo//bar"), ("//foo", "bar")) | 68 self.assertEqual(posixpath.split("//foo//bar"), ("//foo", "bar")) |
| 69 |
| 70 self.assertEqual(posixpath.split(b"/foo/bar"), (b"/foo", b"bar")) |
| 71 self.assertEqual(posixpath.split(b"/"), (b"/", b"")) |
| 72 self.assertEqual(posixpath.split(b"foo"), (b"", b"foo")) |
| 73 self.assertEqual(posixpath.split(b"////foo"), (b"////", b"foo")) |
| 74 self.assertEqual(posixpath.split(b"//foo//bar"), (b"//foo", b"bar")) |
| 57 | 75 |
| 58 self.assertRaises(TypeError, posixpath.split) | 76 self.assertRaises(TypeError, posixpath.split) |
| 59 | 77 |
| 60 def splitextTest(self, path, filename, ext): | 78 def splitextTest(self, path, filename, ext): |
| 61 self.assertEqual(posixpath.splitext(path), (filename, ext)) | 79 self.assertEqual(posixpath.splitext(path), (filename, ext)) |
| 62 self.assertEqual(posixpath.splitext("/" + path), ("/" + filename, ext)) | 80 self.assertEqual(posixpath.splitext("/" + path), ("/" + filename, ext)) |
| 63 self.assertEqual(posixpath.splitext("abc/" + path), ("abc/" + filename,
ext)) | 81 self.assertEqual(posixpath.splitext("abc/" + path), ("abc/" + filename,
ext)) |
| 64 self.assertEqual(posixpath.splitext("abc.def/" + path), ("abc.def/" + fi
lename, ext)) | 82 self.assertEqual(posixpath.splitext("abc.def/" + path), ("abc.def/" + fi
lename, ext)) |
| 65 self.assertEqual(posixpath.splitext("/abc.def/" + path), ("/abc.def/" +
filename, ext)) | 83 self.assertEqual(posixpath.splitext("/abc.def/" + path), ("/abc.def/" +
filename, ext)) |
| 66 self.assertEqual(posixpath.splitext(path + "/"), (filename + ext + "/",
"")) | 84 self.assertEqual(posixpath.splitext(path + "/"), (filename + ext + "/",
"")) |
| (...skipping 13 matching lines...) Expand all Loading... |
| 80 self.splitextTest("", "", "") | 98 self.splitextTest("", "", "") |
| 81 self.assertRaises(TypeError, posixpath.splitext) | 99 self.assertRaises(TypeError, posixpath.splitext) |
| 82 | 100 |
| 83 def test_isabs(self): | 101 def test_isabs(self): |
| 84 self.assertIs(posixpath.isabs(""), False) | 102 self.assertIs(posixpath.isabs(""), False) |
| 85 self.assertIs(posixpath.isabs("/"), True) | 103 self.assertIs(posixpath.isabs("/"), True) |
| 86 self.assertIs(posixpath.isabs("/foo"), True) | 104 self.assertIs(posixpath.isabs("/foo"), True) |
| 87 self.assertIs(posixpath.isabs("/foo/bar"), True) | 105 self.assertIs(posixpath.isabs("/foo/bar"), True) |
| 88 self.assertIs(posixpath.isabs("foo/bar"), False) | 106 self.assertIs(posixpath.isabs("foo/bar"), False) |
| 89 | 107 |
| 108 self.assertIs(posixpath.isabs(b""), False) |
| 109 self.assertIs(posixpath.isabs(b"/"), True) |
| 110 self.assertIs(posixpath.isabs(b"/foo"), True) |
| 111 self.assertIs(posixpath.isabs(b"/foo/bar"), True) |
| 112 self.assertIs(posixpath.isabs(b"foo/bar"), False) |
| 113 |
| 90 self.assertRaises(TypeError, posixpath.isabs) | 114 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 | 115 |
| 97 def test_basename(self): | 116 def test_basename(self): |
| 98 self.assertEqual(posixpath.basename("/foo/bar"), "bar") | 117 self.assertEqual(posixpath.basename("/foo/bar"), "bar") |
| 99 self.assertEqual(posixpath.basename("/"), "") | 118 self.assertEqual(posixpath.basename("/"), "") |
| 100 self.assertEqual(posixpath.basename("foo"), "foo") | 119 self.assertEqual(posixpath.basename("foo"), "foo") |
| 101 self.assertEqual(posixpath.basename("////foo"), "foo") | 120 self.assertEqual(posixpath.basename("////foo"), "foo") |
| 102 self.assertEqual(posixpath.basename("//foo//bar"), "bar") | 121 self.assertEqual(posixpath.basename("//foo//bar"), "bar") |
| 122 |
| 123 self.assertEqual(posixpath.basename(b"/foo/bar"), b"bar") |
| 124 self.assertEqual(posixpath.basename(b"/"), b"") |
| 125 self.assertEqual(posixpath.basename(b"foo"), b"foo") |
| 126 self.assertEqual(posixpath.basename(b"////foo"), b"foo") |
| 127 self.assertEqual(posixpath.basename(b"//foo//bar"), b"bar") |
| 103 | 128 |
| 104 self.assertRaises(TypeError, posixpath.basename) | 129 self.assertRaises(TypeError, posixpath.basename) |
| 105 | 130 |
| 106 def test_dirname(self): | 131 def test_dirname(self): |
| 107 self.assertEqual(posixpath.dirname("/foo/bar"), "/foo") | 132 self.assertEqual(posixpath.dirname("/foo/bar"), "/foo") |
| 108 self.assertEqual(posixpath.dirname("/"), "/") | 133 self.assertEqual(posixpath.dirname("/"), "/") |
| 109 self.assertEqual(posixpath.dirname("foo"), "") | 134 self.assertEqual(posixpath.dirname("foo"), "") |
| 110 self.assertEqual(posixpath.dirname("////foo"), "////") | 135 self.assertEqual(posixpath.dirname("////foo"), "////") |
| 111 self.assertEqual(posixpath.dirname("//foo//bar"), "//foo") | 136 self.assertEqual(posixpath.dirname("//foo//bar"), "//foo") |
| 137 |
| 138 self.assertEqual(posixpath.dirname(b"/foo/bar"), b"/foo") |
| 139 self.assertEqual(posixpath.dirname(b"/"), b"/") |
| 140 self.assertEqual(posixpath.dirname(b"foo"), b"") |
| 141 self.assertEqual(posixpath.dirname(b"////foo"), b"////") |
| 142 self.assertEqual(posixpath.dirname(b"//foo//bar"), b"//foo") |
| 112 | 143 |
| 113 self.assertRaises(TypeError, posixpath.dirname) | 144 self.assertRaises(TypeError, posixpath.dirname) |
| 114 | 145 |
| 115 def test_commonprefix(self): | 146 def test_commonprefix(self): |
| 116 self.assertEqual( | 147 self.assertEqual( |
| 117 posixpath.commonprefix([]), | 148 posixpath.commonprefix([]), |
| 118 "" | 149 "" |
| 119 ) | 150 ) |
| 120 self.assertEqual( | 151 self.assertEqual( |
| 121 posixpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"]), | 152 posixpath.commonprefix(["/home/swenson/spam", "/home/swen/spam"]), |
| 122 "/home/swen" | 153 "/home/swen" |
| 123 ) | 154 ) |
| 124 self.assertEqual( | 155 self.assertEqual( |
| 125 posixpath.commonprefix(["/home/swen/spam", "/home/swen/eggs"]), | 156 posixpath.commonprefix(["/home/swen/spam", "/home/swen/eggs"]), |
| 126 "/home/swen/" | 157 "/home/swen/" |
| 127 ) | 158 ) |
| 128 self.assertEqual( | 159 self.assertEqual( |
| 129 posixpath.commonprefix(["/home/swen/spam", "/home/swen/spam"]), | 160 posixpath.commonprefix(["/home/swen/spam", "/home/swen/spam"]), |
| 130 "/home/swen/spam" | 161 "/home/swen/spam" |
| 162 ) |
| 163 |
| 164 self.assertEqual( |
| 165 posixpath.commonprefix([b"/home/swenson/spam", b"/home/swen/spam"]), |
| 166 b"/home/swen" |
| 167 ) |
| 168 self.assertEqual( |
| 169 posixpath.commonprefix([b"/home/swen/spam", b"/home/swen/eggs"]), |
| 170 b"/home/swen/" |
| 171 ) |
| 172 self.assertEqual( |
| 173 posixpath.commonprefix([b"/home/swen/spam", b"/home/swen/spam"]), |
| 174 b"/home/swen/spam" |
| 131 ) | 175 ) |
| 132 | 176 |
| 133 testlist = ['', 'abc', 'Xbcd', 'Xb', 'XY', 'abcd', 'aXc', 'abd', 'ab', '
aX', 'abcX'] | 177 testlist = ['', 'abc', 'Xbcd', 'Xb', 'XY', 'abcd', 'aXc', 'abd', 'ab', '
aX', 'abcX'] |
| 134 for s1 in testlist: | 178 for s1 in testlist: |
| 135 for s2 in testlist: | 179 for s2 in testlist: |
| 136 p = posixpath.commonprefix([s1, s2]) | 180 p = posixpath.commonprefix([s1, s2]) |
| 137 self.assert_(s1.startswith(p)) | 181 self.assert_(s1.startswith(p)) |
| 138 self.assert_(s2.startswith(p)) | 182 self.assert_(s2.startswith(p)) |
| 139 if s1 != s2: | 183 if s1 != s2: |
| 140 n = len(p) | 184 n = len(p) |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 | 367 |
| 324 self.assertRaises(TypeError, posixpath.samestat) | 368 self.assertRaises(TypeError, posixpath.samestat) |
| 325 | 369 |
| 326 def test_ismount(self): | 370 def test_ismount(self): |
| 327 self.assertIs(posixpath.ismount("/"), True) | 371 self.assertIs(posixpath.ismount("/"), True) |
| 328 | 372 |
| 329 self.assertRaises(TypeError, posixpath.ismount) | 373 self.assertRaises(TypeError, posixpath.ismount) |
| 330 | 374 |
| 331 def test_expanduser(self): | 375 def test_expanduser(self): |
| 332 self.assertEqual(posixpath.expanduser("foo"), "foo") | 376 self.assertEqual(posixpath.expanduser("foo"), "foo") |
| 377 self.assertEqual(posixpath.expanduser(b"foo"), b"foo") |
| 333 try: | 378 try: |
| 334 import pwd | 379 import pwd |
| 335 except ImportError: | 380 except ImportError: |
| 336 pass | 381 pass |
| 337 else: | 382 else: |
| 338 self.assert_(isinstance(posixpath.expanduser("~/"), str)) | 383 self.assert_(isinstance(posixpath.expanduser("~/"), str)) |
| 384 self.assert_(isinstance(posixpath.expanduser(b"~/"), bytes)) |
| 339 # if home directory == root directory, this test makes no sense | 385 # if home directory == root directory, this test makes no sense |
| 340 if posixpath.expanduser("~") != '/': | 386 if posixpath.expanduser("~") != '/': |
| 341 self.assertEqual( | 387 self.assertEqual( |
| 342 posixpath.expanduser("~") + "/", | 388 posixpath.expanduser("~") + "/", |
| 343 posixpath.expanduser("~/") | 389 posixpath.expanduser("~/") |
| 344 ) | 390 ) |
| 391 self.assertEqual( |
| 392 posixpath.expanduser(b"~") + b"/", |
| 393 posixpath.expanduser(b"~/") |
| 394 ) |
| 345 self.assert_(isinstance(posixpath.expanduser("~root/"), str)) | 395 self.assert_(isinstance(posixpath.expanduser("~root/"), str)) |
| 346 self.assert_(isinstance(posixpath.expanduser("~foo/"), str)) | 396 self.assert_(isinstance(posixpath.expanduser("~foo/"), str)) |
| 397 self.assert_(isinstance(posixpath.expanduser(b"~root/"), bytes)) |
| 398 self.assert_(isinstance(posixpath.expanduser(b"~foo/"), bytes)) |
| 347 | 399 |
| 348 self.assertRaises(TypeError, posixpath.expanduser) | 400 self.assertRaises(TypeError, posixpath.expanduser) |
| 349 | 401 |
| 350 def test_expandvars(self): | 402 def test_expandvars(self): |
| 351 oldenv = os.environ.copy() | 403 oldenv = os.environ.copy() |
| 352 try: | 404 try: |
| 353 os.environ.clear() | 405 os.environ.clear() |
| 354 os.environ["foo"] = "bar" | 406 os.environ["foo"] = "bar" |
| 355 os.environ["{foo"] = "baz1" | 407 os.environ["{foo"] = "baz1" |
| 356 os.environ["{foo}"] = "baz2" | 408 os.environ["{foo}"] = "baz2" |
| 357 self.assertEqual(posixpath.expandvars("foo"), "foo") | 409 self.assertEqual(posixpath.expandvars("foo"), "foo") |
| 358 self.assertEqual(posixpath.expandvars("$foo bar"), "bar bar") | 410 self.assertEqual(posixpath.expandvars("$foo bar"), "bar bar") |
| 359 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar") | 411 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar") |
| 360 self.assertEqual(posixpath.expandvars("$[foo]bar"), "$[foo]bar") | 412 self.assertEqual(posixpath.expandvars("$[foo]bar"), "$[foo]bar") |
| 361 self.assertEqual(posixpath.expandvars("$bar bar"), "$bar bar") | 413 self.assertEqual(posixpath.expandvars("$bar bar"), "$bar bar") |
| 362 self.assertEqual(posixpath.expandvars("$?bar"), "$?bar") | 414 self.assertEqual(posixpath.expandvars("$?bar"), "$?bar") |
| 363 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar") | 415 self.assertEqual(posixpath.expandvars("${foo}bar"), "barbar") |
| 364 self.assertEqual(posixpath.expandvars("$foo}bar"), "bar}bar") | 416 self.assertEqual(posixpath.expandvars("$foo}bar"), "bar}bar") |
| 365 self.assertEqual(posixpath.expandvars("${foo"), "${foo") | 417 self.assertEqual(posixpath.expandvars("${foo"), "${foo") |
| 366 self.assertEqual(posixpath.expandvars("${{foo}}"), "baz1}") | 418 self.assertEqual(posixpath.expandvars("${{foo}}"), "baz1}") |
| 367 self.assertEqual(posixpath.expandvars("$foo$foo"), "barbar") | 419 self.assertEqual(posixpath.expandvars("$foo$foo"), "barbar") |
| 368 self.assertEqual(posixpath.expandvars("$bar$bar"), "$bar$bar") | 420 self.assertEqual(posixpath.expandvars("$bar$bar"), "$bar$bar") |
| 421 |
| 422 self.assertEqual(posixpath.expandvars(b"foo"), b"foo") |
| 423 self.assertEqual(posixpath.expandvars(b"$foo bar"), b"bar bar") |
| 424 self.assertEqual(posixpath.expandvars(b"${foo}bar"), b"barbar") |
| 425 self.assertEqual(posixpath.expandvars(b"$[foo]bar"), b"$[foo]bar") |
| 426 self.assertEqual(posixpath.expandvars(b"$bar bar"), b"$bar bar") |
| 427 self.assertEqual(posixpath.expandvars(b"$?bar"), b"$?bar") |
| 428 self.assertEqual(posixpath.expandvars(b"${foo}bar"), b"barbar") |
| 429 self.assertEqual(posixpath.expandvars(b"$foo}bar"), b"bar}bar") |
| 430 self.assertEqual(posixpath.expandvars(b"${foo"), b"${foo") |
| 431 self.assertEqual(posixpath.expandvars(b"${{foo}}"), b"baz1}") |
| 432 self.assertEqual(posixpath.expandvars(b"$foo$foo"), b"barbar") |
| 433 self.assertEqual(posixpath.expandvars(b"$bar$bar"), b"$bar$bar") |
| 369 finally: | 434 finally: |
| 370 os.environ.clear() | 435 os.environ.clear() |
| 371 os.environ.update(oldenv) | 436 os.environ.update(oldenv) |
| 372 | 437 |
| 373 self.assertRaises(TypeError, posixpath.expandvars) | 438 self.assertRaises(TypeError, posixpath.expandvars) |
| 374 | 439 |
| 375 def test_normpath(self): | 440 def test_normpath(self): |
| 376 self.assertEqual(posixpath.normpath(""), ".") | 441 self.assertEqual(posixpath.normpath(""), ".") |
| 377 self.assertEqual(posixpath.normpath("/"), "/") | 442 self.assertEqual(posixpath.normpath("/"), "/") |
| 378 self.assertEqual(posixpath.normpath("//"), "//") | 443 self.assertEqual(posixpath.normpath("//"), "//") |
| 379 self.assertEqual(posixpath.normpath("///"), "/") | 444 self.assertEqual(posixpath.normpath("///"), "/") |
| 380 self.assertEqual(posixpath.normpath("///foo/.//bar//"), "/foo/bar") | 445 self.assertEqual(posixpath.normpath("///foo/.//bar//"), "/foo/bar") |
| 381 self.assertEqual(posixpath.normpath("///foo/.//bar//.//..//.//baz"), "/f
oo/baz") | 446 self.assertEqual(posixpath.normpath("///foo/.//bar//.//..//.//baz"), "/f
oo/baz") |
| 382 self.assertEqual(posixpath.normpath("///..//./foo/.//bar"), "/foo/bar") | 447 self.assertEqual(posixpath.normpath("///..//./foo/.//bar"), "/foo/bar") |
| 448 |
| 449 self.assertEqual(posixpath.normpath(b""), b".") |
| 450 self.assertEqual(posixpath.normpath(b"/"), b"/") |
| 451 self.assertEqual(posixpath.normpath(b"//"), b"//") |
| 452 self.assertEqual(posixpath.normpath(b"///"), b"/") |
| 453 self.assertEqual(posixpath.normpath(b"///foo/.//bar//"), b"/foo/bar") |
| 454 self.assertEqual(posixpath.normpath(b"///foo/.//bar//.//..//.//baz"), b"
/foo/baz") |
| 455 self.assertEqual(posixpath.normpath(b"///..//./foo/.//bar"), b"/foo/bar"
) |
| 383 | 456 |
| 384 self.assertRaises(TypeError, posixpath.normpath) | 457 self.assertRaises(TypeError, posixpath.normpath) |
| 385 | 458 |
| 386 def test_abspath(self): | 459 def test_abspath(self): |
| 387 self.assert_("foo" in posixpath.abspath("foo")) | 460 self.assert_("foo" in posixpath.abspath("foo")) |
| 461 self.assert_(b"foo" in posixpath.abspath(b"foo")) |
| 388 | 462 |
| 389 self.assertRaises(TypeError, posixpath.abspath) | 463 self.assertRaises(TypeError, posixpath.abspath) |
| 390 | 464 |
| 391 def test_realpath(self): | 465 def test_realpath(self): |
| 392 self.assert_("foo" in realpath("foo")) | 466 self.assert_("foo" in realpath("foo")) |
| 467 self.assert_(b"foo" in realpath(b"foo")) |
| 393 self.assertRaises(TypeError, posixpath.realpath) | 468 self.assertRaises(TypeError, posixpath.realpath) |
| 394 | 469 |
| 395 if hasattr(os, "symlink"): | 470 if hasattr(os, "symlink"): |
| 396 def test_realpath_basic(self): | 471 def test_realpath_basic(self): |
| 397 # Basic operation. | 472 # Basic operation. |
| 398 try: | 473 try: |
| 399 os.symlink(ABSTFN+"1", ABSTFN) | 474 os.symlink(ABSTFN+"1", ABSTFN) |
| 400 self.assertEqual(realpath(ABSTFN), ABSTFN+"1") | 475 self.assertEqual(realpath(ABSTFN), ABSTFN+"1") |
| 401 finally: | 476 finally: |
| 402 support.unlink(ABSTFN) | 477 support.unlink(ABSTFN) |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 self.assertEqual(posixpath.relpath("a"), "a") | 572 self.assertEqual(posixpath.relpath("a"), "a") |
| 498 self.assertEqual(posixpath.relpath(posixpath.abspath("a")), "a") | 573 self.assertEqual(posixpath.relpath(posixpath.abspath("a")), "a") |
| 499 self.assertEqual(posixpath.relpath("a/b"), "a/b") | 574 self.assertEqual(posixpath.relpath("a/b"), "a/b") |
| 500 self.assertEqual(posixpath.relpath("../a/b"), "../a/b") | 575 self.assertEqual(posixpath.relpath("../a/b"), "../a/b") |
| 501 self.assertEqual(posixpath.relpath("a", "../b"), "../"+curdir+"/a") | 576 self.assertEqual(posixpath.relpath("a", "../b"), "../"+curdir+"/a") |
| 502 self.assertEqual(posixpath.relpath("a/b", "../c"), "../"+curdir+"/a/
b") | 577 self.assertEqual(posixpath.relpath("a/b", "../c"), "../"+curdir+"/a/
b") |
| 503 self.assertEqual(posixpath.relpath("a", "b/c"), "../../a") | 578 self.assertEqual(posixpath.relpath("a", "b/c"), "../../a") |
| 504 self.assertEqual(posixpath.relpath("a", "a"), ".") | 579 self.assertEqual(posixpath.relpath("a", "a"), ".") |
| 505 finally: | 580 finally: |
| 506 os.getcwd = real_getcwd | 581 os.getcwd = real_getcwd |
| 582 |
| 583 def test_relpath_bytes(self): |
| 584 (real_getcwdb, os.getcwdb) = (os.getcwdb, lambda: br"/home/user/bar") |
| 585 try: |
| 586 curdir = os.path.split(os.getcwdb())[-1] |
| 587 self.assertRaises(ValueError, posixpath.relpath, b"") |
| 588 self.assertEqual(posixpath.relpath(b"a"), b"a") |
| 589 self.assertEqual(posixpath.relpath(posixpath.abspath(b"a")), b"a") |
| 590 self.assertEqual(posixpath.relpath(b"a/b"), b"a/b") |
| 591 self.assertEqual(posixpath.relpath(b"../a/b"), b"../a/b") |
| 592 self.assertEqual(posixpath.relpath(b"a", b"../b"), |
| 593 b"../"+curdir+b"/a") |
| 594 self.assertEqual(posixpath.relpath(b"a/b", b"../c"), |
| 595 b"../"+curdir+b"/a/b") |
| 596 self.assertEqual(posixpath.relpath(b"a", b"b/c"), b"../../a") |
| 597 self.assertEqual(posixpath.relpath(b"a", b"a"), b".") |
| 598 |
| 599 self.assertRaises(TypeError, posixpath.relpath, b"bytes", "str") |
| 600 self.assertRaises(TypeError, posixpath.relpath, "str", b"bytes") |
| 601 finally: |
| 602 os.getcwdb = real_getcwdb |
| 507 | 603 |
| 508 def test_main(): | 604 def test_main(): |
| 509 support.run_unittest(PosixPathTest) | 605 support.run_unittest(PosixPathTest) |
| 510 | 606 |
| 511 if __name__=="__main__": | 607 if __name__=="__main__": |
| 512 test_main() | 608 test_main() |
| OLD | NEW |