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