Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(19)

Delta Between Two Patch Sets: Lib/test/test_posixpath.py

Issue 3055: combined patches from http://bugs.python.org/issue3187 (Closed) SVN Base: http://svn.python.org/view/*checkout*/python/branches/py3k/
Left Patch Set: More complete patch from Victor Created 1 year, 2 months ago , Downloaded from: http://bugs.python.org/file11667/python3_bytes_filename-2.patch
Right Patch Set: One more tweak (fold some long lines) Created 1 year, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
LEFTRIGHT
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
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
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
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()
LEFTRIGHT

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld r497