[Python-checkins] cpython (merge 3.3 -> default): merge from 3.3: Increase the test coverage of macurl2path module. Patch by

senthil.kumaran python-checkins at python.org
Thu Oct 24 06:55:47 CEST 2013


http://hg.python.org/cpython/rev/060d9b2e4d5e
changeset:   86597:060d9b2e4d5e
parent:      86594:61463ff7dc68
parent:      86596:06b9a9e75a6c
user:        Senthil Kumaran <senthil at uthcode.com>
date:        Wed Oct 23 21:55:35 2013 -0700
summary:
  merge from 3.3: Increase the test coverage of macurl2path module. Patch by Colin Williams.

files:
  Lib/macurl2path.py           |  20 ---------------
  Lib/test/test_macurl2path.py |  31 ++++++++++++++++++++++++
  Lib/test/test_sundry.py      |   3 +-
  Misc/NEWS                    |   3 ++
  4 files changed, 36 insertions(+), 21 deletions(-)


diff --git a/Lib/macurl2path.py b/Lib/macurl2path.py
--- a/Lib/macurl2path.py
+++ b/Lib/macurl2path.py
@@ -75,23 +75,3 @@
 def _pncomp2url(component):
     # We want to quote slashes
     return urllib.parse.quote(component[:31], safe='')
-
-def test():
-    for url in ["index.html",
-                "bar/index.html",
-                "/foo/bar/index.html",
-                "/foo/bar/",
-                "/"]:
-        print('%r -> %r' % (url, url2pathname(url)))
-    for path in ["drive:",
-                 "drive:dir:",
-                 "drive:dir:file",
-                 "drive:file",
-                 "file",
-                 ":file",
-                 ":dir:",
-                 ":dir:file"]:
-        print('%r -> %r' % (path, pathname2url(path)))
-
-if __name__ == '__main__':
-    test()
diff --git a/Lib/test/test_macurl2path.py b/Lib/test/test_macurl2path.py
new file mode 100644
--- /dev/null
+++ b/Lib/test/test_macurl2path.py
@@ -0,0 +1,31 @@
+import macurl2path
+import unittest
+
+class MacUrl2PathTestCase(unittest.TestCase):
+    def test_url2pathname(self):
+        self.assertEqual(":index.html", macurl2path.url2pathname("index.html"))
+        self.assertEqual(":bar:index.html", macurl2path.url2pathname("bar/index.html"))
+        self.assertEqual("foo:bar:index.html", macurl2path.url2pathname("/foo/bar/index.html"))
+        self.assertEqual("foo:bar", macurl2path.url2pathname("/foo/bar/"))
+        self.assertEqual("", macurl2path.url2pathname("/"))
+        self.assertRaises(RuntimeError, macurl2path.url2pathname, "http://foo.com")
+        self.assertEqual("index.html", macurl2path.url2pathname("///index.html"))
+        self.assertRaises(RuntimeError, macurl2path.url2pathname, "//index.html")
+        self.assertEqual(":index.html", macurl2path.url2pathname("./index.html"))
+        self.assertEqual(":index.html", macurl2path.url2pathname("foo/../index.html"))
+        self.assertEqual("::index.html", macurl2path.url2pathname("../index.html"))
+
+    def test_pathname2url(self):
+        self.assertEqual("drive", macurl2path.pathname2url("drive:"))
+        self.assertEqual("drive/dir", macurl2path.pathname2url("drive:dir:"))
+        self.assertEqual("drive/dir/file", macurl2path.pathname2url("drive:dir:file"))
+        self.assertEqual("drive/file", macurl2path.pathname2url("drive:file"))
+        self.assertEqual("file", macurl2path.pathname2url("file"))
+        self.assertEqual("file", macurl2path.pathname2url(":file"))
+        self.assertEqual("dir", macurl2path.pathname2url(":dir:"))
+        self.assertEqual("dir/file", macurl2path.pathname2url(":dir:file"))
+        self.assertRaises(RuntimeError, macurl2path.pathname2url, "/")
+        self.assertEqual("dir/../file", macurl2path.pathname2url("dir::file"))
+
+if __name__ == "__main__":
+    unittest.main()
diff --git a/Lib/test/test_sundry.py b/Lib/test/test_sundry.py
--- a/Lib/test/test_sundry.py
+++ b/Lib/test/test_sundry.py
@@ -7,7 +7,7 @@
 class TestUntestedModules(unittest.TestCase):
     def test_untested_modules_can_be_imported(self):
         untested = ('bdb', 'encodings', 'formatter', 'imghdr',
-                    'macurl2path', 'nturl2path', 'tabnanny')
+                    'nturl2path', 'tabnanny')
         with support.check_warnings(quiet=True):
             for name in untested:
                 try:
@@ -47,6 +47,7 @@
             import distutils.command.upload
 
             import html.entities
+
             try:
                 import tty  # Not available on Windows
             except ImportError:
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -19,6 +19,9 @@
 Library
 -------
 
+- Issue #19350: Increasing the test coverage of macurl2path. Patch by Colin
+  Williams.
+
 - Issue #19365: Optimized the parsing of long replacement string in re.sub*()
   functions.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list