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

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: Number 3 from Victor Created 1 year, 1 month ago , Downloaded from: http://bugs.python.org/file11680/python3_bytes_filename-3.patch
Right Patch Set: One more tweak (fold some long lines) Created 1 year, 1 month 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/"),
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
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
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()
LEFTRIGHT

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