| LEFT | RIGHT |
| 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 21 matching lines...) Expand all Loading... |
| 32 # Check that normcase() is idempotent | 32 # Check that normcase() is idempotent |
| 33 p = "FoO/./BaR" | 33 p = "FoO/./BaR" |
| 34 self.assertEqual(p, posixpath.normcase(p)) | 34 self.assertEqual(p, posixpath.normcase(p)) |
| 35 | 35 |
| 36 p = b"FoO/./BaR" | 36 p = b"FoO/./BaR" |
| 37 self.assertEqual(p, posixpath.normcase(p)) | 37 self.assertEqual(p, posixpath.normcase(p)) |
| 38 | 38 |
| 39 self.assertRaises(TypeError, posixpath.normcase) | 39 self.assertRaises(TypeError, posixpath.normcase) |
| 40 | 40 |
| 41 def test_join(self): | 41 def test_join(self): |
| 42 self.assertEqual(posixpath.join("/foo", "bar", "/bar", "baz"), "/bar/baz
") | 42 self.assertEqual(posixpath.join("/foo", "bar", "/bar", "baz"), |
| 43 "/bar/baz") |
| 43 self.assertEqual(posixpath.join("/foo", "bar", "baz"), "/foo/bar/baz") | 44 self.assertEqual(posixpath.join("/foo", "bar", "baz"), "/foo/bar/baz") |
| 44 self.assertEqual(posixpath.join("/foo/", "bar/", "baz/"), "/foo/bar/baz/
") | 45 self.assertEqual(posixpath.join("/foo/", "bar/", "baz/"), |
| 46 "/foo/bar/baz/") |
| 45 | 47 |
| 46 self.assertEqual(posixpath.join(b"/foo", b"bar", b"/bar", b"baz"), | 48 self.assertEqual(posixpath.join(b"/foo", b"bar", b"/bar", b"baz"), |
| 47 b"/bar/baz") | 49 b"/bar/baz") |
| 48 self.assertEqual(posixpath.join(b"/foo", b"bar", b"baz"), | 50 self.assertEqual(posixpath.join(b"/foo", b"bar", b"baz"), |
| 49 b"/foo/bar/baz") | 51 b"/foo/bar/baz") |
| 50 self.assertEqual(posixpath.join(b"/foo/", b"bar/", b"baz/"), | 52 self.assertEqual(posixpath.join(b"/foo/", b"bar/", b"baz/"), |
| 51 b"/foo/bar/baz/") | 53 b"/foo/bar/baz/") |
| 52 | 54 |
| 53 self.assertRaises(TypeError, posixpath.join) | 55 self.assertRaises(TypeError, posixpath.join) |
| 54 self.assertRaises(TypeError, posixpath.join, b"bytes", "str") | 56 self.assertRaises(TypeError, posixpath.join, b"bytes", "str") |
| 55 self.assertRaises(TypeError, posixpath.join, "str", b"bytes") | 57 self.assertRaises(TypeError, posixpath.join, "str", b"bytes") |
| 56 | 58 |
| 57 def test_splitdrive(self): | 59 def test_splitdrive(self): |
| 58 self.assertEqual(posixpath.splitdrive("/foo/bar"), ("", "/foo/bar")) | 60 self.assertEqual(posixpath.splitdrive("/foo/bar"), ("", "/foo/bar")) |
| 59 self.assertEqual(posixpath.splitdrive(b"/foo/bar"), (b"", b"/foo/bar")) | 61 self.assertEqual(posixpath.splitdrive(b"/foo/bar"), (b"", b"/foo/bar")) |
| 60 | 62 |
| 61 self.assertRaises(TypeError, posixpath.splitdrive) | 63 self.assertRaises(TypeError, posixpath.splitdrive) |
| 62 | 64 |
| 63 def test_split(self): | 65 def test_split(self): |
| 64 self.assertEqual(posixpath.split("/foo/bar"), ("/foo", "bar")) | 66 self.assertEqual(posixpath.split("/foo/bar"), ("/foo", "bar")) |
| 65 self.assertEqual(posixpath.split("/"), ("/", "")) | 67 self.assertEqual(posixpath.split("/"), ("/", "")) |
| 66 self.assertEqual(posixpath.split("foo"), ("", "foo")) | 68 self.assertEqual(posixpath.split("foo"), ("", "foo")) |
| 67 self.assertEqual(posixpath.split("////foo"), ("////", "foo")) | 69 self.assertEqual(posixpath.split("////foo"), ("////", "foo")) |
| 68 self.assertEqual(posixpath.split("//foo//bar"), ("//foo", "bar")) | 70 self.assertEqual(posixpath.split("//foo//bar"), ("//foo", "bar")) |
| 69 | 71 |
| 70 self.assertEqual(posixpath.split(b"/foo/bar"), (b"/foo", b"bar")) | 72 self.assertEqual(posixpath.split(b"/foo/bar"), (b"/foo", b"bar")) |
| 71 self.assertEqual(posixpath.split(b"/"), (b"/", b"")) | 73 self.assertEqual(posixpath.split(b"/"), (b"/", b"")) |
| 72 self.assertEqual(posixpath.split(b"foo"), (b"", b"foo")) | 74 self.assertEqual(posixpath.split(b"foo"), (b"", b"foo")) |
| 73 self.assertEqual(posixpath.split(b"////foo"), (b"////", b"foo")) | 75 self.assertEqual(posixpath.split(b"////foo"), (b"////", b"foo")) |
| 74 self.assertEqual(posixpath.split(b"//foo//bar"), (b"//foo", b"bar")) | 76 self.assertEqual(posixpath.split(b"//foo//bar"), (b"//foo", b"bar")) |
| 75 | 77 |
| 76 self.assertRaises(TypeError, posixpath.split) | 78 self.assertRaises(TypeError, posixpath.split) |
| 77 | 79 |
| 78 def splitextTest(self, path, filename, ext): | 80 def splitextTest(self, path, filename, ext): |
| 79 self.assertEqual(posixpath.splitext(path), (filename, ext)) | 81 self.assertEqual(posixpath.splitext(path), (filename, ext)) |
| 80 self.assertEqual(posixpath.splitext("/" + path), ("/" + filename, ext)) | 82 self.assertEqual(posixpath.splitext("/" + path), ("/" + filename, ext)) |
| 81 self.assertEqual(posixpath.splitext("abc/" + path), ("abc/" + filename,
ext)) | 83 self.assertEqual(posixpath.splitext("abc/" + path), |
| 82 self.assertEqual(posixpath.splitext("abc.def/" + path), ("abc.def/" + fi
lename, ext)) | 84 ("abc/" + filename, ext)) |
| 83 self.assertEqual(posixpath.splitext("/abc.def/" + path), ("/abc.def/" +
filename, ext)) | 85 self.assertEqual(posixpath.splitext("abc.def/" + path), |
| 84 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"")) |
| 85 | 107 |
| 86 def test_splitext(self): | 108 def test_splitext(self): |
| 87 self.splitextTest("foo.bar", "foo", ".bar") | 109 self.splitextTest("foo.bar", "foo", ".bar") |
| 88 self.splitextTest("foo.boo.bar", "foo.boo", ".bar") | 110 self.splitextTest("foo.boo.bar", "foo.boo", ".bar") |
| 89 self.splitextTest("foo.boo.biff.bar", "foo.boo.biff", ".bar") | 111 self.splitextTest("foo.boo.biff.bar", "foo.boo.biff", ".bar") |
| 90 self.splitextTest(".csh.rc", ".csh", ".rc") | 112 self.splitextTest(".csh.rc", ".csh", ".rc") |
| 91 self.splitextTest("nodots", "nodots", "") | 113 self.splitextTest("nodots", "nodots", "") |
| 92 self.splitextTest(".cshrc", ".cshrc", "") | 114 self.splitextTest(".cshrc", ".cshrc", "") |
| 93 self.splitextTest("...manydots", "...manydots", "") | 115 self.splitextTest("...manydots", "...manydots", "") |
| 94 self.splitextTest("...manydots.ext", "...manydots", ".ext") | 116 self.splitextTest("...manydots.ext", "...manydots", ".ext") |
| (...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 436 os.environ.update(oldenv) | 458 os.environ.update(oldenv) |
| 437 | 459 |
| 438 self.assertRaises(TypeError, posixpath.expandvars) | 460 self.assertRaises(TypeError, posixpath.expandvars) |
| 439 | 461 |
| 440 def test_normpath(self): | 462 def test_normpath(self): |
| 441 self.assertEqual(posixpath.normpath(""), ".") | 463 self.assertEqual(posixpath.normpath(""), ".") |
| 442 self.assertEqual(posixpath.normpath("/"), "/") | 464 self.assertEqual(posixpath.normpath("/"), "/") |
| 443 self.assertEqual(posixpath.normpath("//"), "//") | 465 self.assertEqual(posixpath.normpath("//"), "//") |
| 444 self.assertEqual(posixpath.normpath("///"), "/") | 466 self.assertEqual(posixpath.normpath("///"), "/") |
| 445 self.assertEqual(posixpath.normpath("///foo/.//bar//"), "/foo/bar") | 467 self.assertEqual(posixpath.normpath("///foo/.//bar//"), "/foo/bar") |
| 446 self.assertEqual(posixpath.normpath("///foo/.//bar//.//..//.//baz"), "/f
oo/baz") | 468 self.assertEqual(posixpath.normpath("///foo/.//bar//.//..//.//baz"), |
| 469 "/foo/baz") |
| 447 self.assertEqual(posixpath.normpath("///..//./foo/.//bar"), "/foo/bar") | 470 self.assertEqual(posixpath.normpath("///..//./foo/.//bar"), "/foo/bar") |
| 448 | 471 |
| 449 self.assertEqual(posixpath.normpath(b""), b".") | 472 self.assertEqual(posixpath.normpath(b""), b".") |
| 450 self.assertEqual(posixpath.normpath(b"/"), b"/") | 473 self.assertEqual(posixpath.normpath(b"/"), b"/") |
| 451 self.assertEqual(posixpath.normpath(b"//"), b"//") | 474 self.assertEqual(posixpath.normpath(b"//"), b"//") |
| 452 self.assertEqual(posixpath.normpath(b"///"), b"/") | 475 self.assertEqual(posixpath.normpath(b"///"), b"/") |
| 453 self.assertEqual(posixpath.normpath(b"///foo/.//bar//"), b"/foo/bar") | 476 self.assertEqual(posixpath.normpath(b"///foo/.//bar//"), b"/foo/bar") |
| 454 self.assertEqual(posixpath.normpath(b"///foo/.//bar//.//..//.//baz"), b"
/foo/baz") | 477 self.assertEqual(posixpath.normpath(b"///foo/.//bar//.//..//.//baz"), |
| 455 self.assertEqual(posixpath.normpath(b"///..//./foo/.//bar"), b"/foo/bar"
) | 478 b"/foo/baz") |
| 479 self.assertEqual(posixpath.normpath(b"///..//./foo/.//bar"), |
| 480 b"/foo/bar") |
| 456 | 481 |
| 457 self.assertRaises(TypeError, posixpath.normpath) | 482 self.assertRaises(TypeError, posixpath.normpath) |
| 458 | 483 |
| 459 def test_abspath(self): | 484 def test_abspath(self): |
| 460 self.assert_("foo" in posixpath.abspath("foo")) | 485 self.assert_("foo" in posixpath.abspath("foo")) |
| 461 self.assert_(b"foo" in posixpath.abspath(b"foo")) | 486 self.assert_(b"foo" in posixpath.abspath(b"foo")) |
| 462 | 487 |
| 463 self.assertRaises(TypeError, posixpath.abspath) | 488 self.assertRaises(TypeError, posixpath.abspath) |
| 464 | 489 |
| 465 def test_realpath(self): | 490 def test_realpath(self): |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 567 def test_relpath(self): | 592 def test_relpath(self): |
| 568 (real_getcwd, os.getcwd) = (os.getcwd, lambda: r"/home/user/bar") | 593 (real_getcwd, os.getcwd) = (os.getcwd, lambda: r"/home/user/bar") |
| 569 try: | 594 try: |
| 570 curdir = os.path.split(os.getcwd())[-1] | 595 curdir = os.path.split(os.getcwd())[-1] |
| 571 self.assertRaises(ValueError, posixpath.relpath, "") | 596 self.assertRaises(ValueError, posixpath.relpath, "") |
| 572 self.assertEqual(posixpath.relpath("a"), "a") | 597 self.assertEqual(posixpath.relpath("a"), "a") |
| 573 self.assertEqual(posixpath.relpath(posixpath.abspath("a")), "a") | 598 self.assertEqual(posixpath.relpath(posixpath.abspath("a")), "a") |
| 574 self.assertEqual(posixpath.relpath("a/b"), "a/b") | 599 self.assertEqual(posixpath.relpath("a/b"), "a/b") |
| 575 self.assertEqual(posixpath.relpath("../a/b"), "../a/b") | 600 self.assertEqual(posixpath.relpath("../a/b"), "../a/b") |
| 576 self.assertEqual(posixpath.relpath("a", "../b"), "../"+curdir+"/a") | 601 self.assertEqual(posixpath.relpath("a", "../b"), "../"+curdir+"/a") |
| 577 self.assertEqual(posixpath.relpath("a/b", "../c"), "../"+curdir+"/a/
b") | 602 self.assertEqual(posixpath.relpath("a/b", "../c"), |
| 603 "../"+curdir+"/a/b") |
| 578 self.assertEqual(posixpath.relpath("a", "b/c"), "../../a") | 604 self.assertEqual(posixpath.relpath("a", "b/c"), "../../a") |
| 579 self.assertEqual(posixpath.relpath("a", "a"), ".") | 605 self.assertEqual(posixpath.relpath("a", "a"), ".") |
| 580 finally: | 606 finally: |
| 581 os.getcwd = real_getcwd | 607 os.getcwd = real_getcwd |
| 582 | 608 |
| 583 def test_relpath_bytes(self): | 609 def test_relpath_bytes(self): |
| 584 (real_getcwdb, os.getcwdb) = (os.getcwdb, lambda: br"/home/user/bar") | 610 (real_getcwdb, os.getcwdb) = (os.getcwdb, lambda: br"/home/user/bar") |
| 585 try: | 611 try: |
| 586 curdir = os.path.split(os.getcwdb())[-1] | 612 curdir = os.path.split(os.getcwdb())[-1] |
| 587 self.assertRaises(ValueError, posixpath.relpath, b"") | 613 self.assertRaises(ValueError, posixpath.relpath, b"") |
| 588 self.assertEqual(posixpath.relpath(b"a"), b"a") | 614 self.assertEqual(posixpath.relpath(b"a"), b"a") |
| 589 self.assertEqual(posixpath.relpath(posixpath.abspath(b"a")), b"a") | 615 self.assertEqual(posixpath.relpath(posixpath.abspath(b"a")), b"a") |
| 590 self.assertEqual(posixpath.relpath(b"a/b"), b"a/b") | 616 self.assertEqual(posixpath.relpath(b"a/b"), b"a/b") |
| 591 self.assertEqual(posixpath.relpath(b"../a/b"), b"../a/b") | 617 self.assertEqual(posixpath.relpath(b"../a/b"), b"../a/b") |
| 592 self.assertEqual(posixpath.relpath(b"a", b"../b"), | 618 self.assertEqual(posixpath.relpath(b"a", b"../b"), |
| 593 b"../"+curdir+b"/a") | 619 b"../"+curdir+b"/a") |
| 594 self.assertEqual(posixpath.relpath(b"a/b", b"../c"), | 620 self.assertEqual(posixpath.relpath(b"a/b", b"../c"), |
| 595 b"../"+curdir+b"/a/b") | 621 b"../"+curdir+b"/a/b") |
| 596 self.assertEqual(posixpath.relpath(b"a", b"b/c"), b"../../a") | 622 self.assertEqual(posixpath.relpath(b"a", b"b/c"), b"../../a") |
| 597 self.assertEqual(posixpath.relpath(b"a", b"a"), b".") | 623 self.assertEqual(posixpath.relpath(b"a", b"a"), b".") |
| 598 | 624 |
| 599 self.assertRaises(TypeError, posixpath.relpath, b"bytes", "str") | 625 self.assertRaises(TypeError, posixpath.relpath, b"bytes", "str") |
| 600 self.assertRaises(TypeError, posixpath.relpath, "str", b"bytes") | 626 self.assertRaises(TypeError, posixpath.relpath, "str", b"bytes") |
| 601 finally: | 627 finally: |
| 602 os.getcwdb = real_getcwdb | 628 os.getcwdb = real_getcwdb |
| 603 | 629 |
| 604 def test_main(): | 630 def test_main(): |
| 605 support.run_unittest(PosixPathTest) | 631 support.run_unittest(PosixPathTest) |
| 606 | 632 |
| 607 if __name__=="__main__": | 633 if __name__=="__main__": |
| 608 test_main() | 634 test_main() |
| LEFT | RIGHT |