[Python-checkins] cpython: Change tests for imp.cache_from_source() to follow os.path.join/split

brett.cannon python-checkins at python.org
Sun Apr 22 19:30:16 CEST 2012


http://hg.python.org/cpython/rev/2a7f445f71eb
changeset:   76476:2a7f445f71eb
parent:      76473:9afdbef0622f
user:        Brett Cannon <brett at python.org>
date:        Sun Apr 22 13:29:47 2012 -0400
summary:
  Change tests for imp.cache_from_source() to follow os.path.join/split
semantics.

files:
  Lib/test/test_imp.py |  75 +++++++++++++------------------
  1 files changed, 32 insertions(+), 43 deletions(-)


diff --git a/Lib/test/test_imp.py b/Lib/test/test_imp.py
--- a/Lib/test/test_imp.py
+++ b/Lib/test/test_imp.py
@@ -227,73 +227,62 @@
     def test_cache_from_source(self):
         # Given the path to a .py file, return the path to its PEP 3147
         # defined .pyc file (i.e. under __pycache__).
-        self.assertEqual(
-            imp.cache_from_source('/foo/bar/baz/qux.py', True),
-            '/foo/bar/baz/__pycache__/qux.{}.pyc'.format(self.tag))
-        # Directory with a dot, filename without dot
-        self.assertEqual(
-            imp.cache_from_source('/foo.bar/file', True),
-            '/foo.bar/__pycache__/file{}.pyc'.format(self.tag))
+        path = os.path.join('foo', 'bar', 'baz', 'qux.py')
+        expect = os.path.join('foo', 'bar', 'baz', '__pycache__',
+                              'qux.{}.pyc'.format(self.tag))
+        self.assertEqual(imp.cache_from_source(path, True), expect)
+
+    def test_cache_from_source_no_dot(self):
+        # Directory with a dot, filename without dot.
+        path = os.path.join('foo.bar', 'file')
+        expect = os.path.join('foo.bar', '__pycache__',
+                              'file{}.pyc'.format(self.tag))
+        self.assertEqual(imp.cache_from_source(path, True), expect)
 
     def test_cache_from_source_optimized(self):
         # Given the path to a .py file, return the path to its PEP 3147
         # defined .pyo file (i.e. under __pycache__).
-        self.assertEqual(
-            imp.cache_from_source('/foo/bar/baz/qux.py', False),
-            '/foo/bar/baz/__pycache__/qux.{}.pyo'.format(self.tag))
+        path = os.path.join('foo', 'bar', 'baz', 'qux.py')
+        expect = os.path.join('foo', 'bar', 'baz', '__pycache__',
+                              'qux.{}.pyo'.format(self.tag))
+        self.assertEqual(imp.cache_from_source(path, False), expect)
 
     def test_cache_from_source_cwd(self):
-        self.assertEqual(imp.cache_from_source('foo.py', True),
-                         os.sep.join(('__pycache__',
-                                      'foo.{}.pyc'.format(self.tag))))
+        path = 'foo.py'
+        expect = os.path.join('__pycache__', 'foo.{}.pyc'.format(self.tag))
+        self.assertEqual(imp.cache_from_source(path, True), expect)
 
     def test_cache_from_source_override(self):
         # When debug_override is not None, it can be any true-ish or false-ish
         # value.
-        self.assertEqual(
-            imp.cache_from_source('/foo/bar/baz.py', []),
-            '/foo/bar/__pycache__/baz.{}.pyo'.format(self.tag))
-        self.assertEqual(
-            imp.cache_from_source('/foo/bar/baz.py', [17]),
-            '/foo/bar/__pycache__/baz.{}.pyc'.format(self.tag))
+        path = os.path.join('foo', 'bar', 'baz.py')
+        partial_expect = os.path.join('foo', 'bar', '__pycache__',
+                                      'baz.{}.py'.format(self.tag))
+        self.assertEqual(imp.cache_from_source(path, []), partial_expect + 'o')
+        self.assertEqual(imp.cache_from_source(path, [17]),
+                         partial_expect + 'c')
         # However if the bool-ishness can't be determined, the exception
         # propagates.
         class Bearish:
             def __bool__(self): raise RuntimeError
-        self.assertRaises(
-            RuntimeError,
-            imp.cache_from_source, '/foo/bar/baz.py', Bearish())
+        with self.assertRaises(RuntimeError):
+            imp.cache_from_source('/foo/bar/baz.py', Bearish())
 
-    @unittest.skipIf(os.altsep is None,
-                     'test meaningful only where os.altsep is defined')
-    def test_altsep_cache_from_source(self):
-        # Windows path and PEP 3147.
-        self.assertEqual(
-            imp.cache_from_source('\\foo\\bar\\baz\\qux.py', True),
-            '\\foo\\bar\\baz\\__pycache__\\qux.{}.pyc'.format(self.tag))
-
-    @unittest.skipIf(os.altsep is None,
-                     'test meaningful only where os.altsep is defined')
-    def test_altsep_and_sep_cache_from_source(self):
-        # Windows path and PEP 3147 where altsep is right of sep.
-        self.assertEqual(
-            imp.cache_from_source('\\foo\\bar/baz\\qux.py', True),
-            '\\foo\\bar/baz\\__pycache__\\qux.{}.pyc'.format(self.tag))
-
-    @unittest.skipIf(os.altsep is None,
+    @unittest.skipUnless(os.sep == '\\' and os.altsep == '/',
                      'test meaningful only where os.altsep is defined')
     def test_sep_altsep_and_sep_cache_from_source(self):
         # Windows path and PEP 3147 where sep is right of altsep.
         self.assertEqual(
             imp.cache_from_source('\\foo\\bar\\baz/qux.py', True),
-            '\\foo\\bar\\baz/__pycache__/qux.{}.pyc'.format(self.tag))
+            '\\foo\\bar\\baz\\__pycache__\\qux.{}.pyc'.format(self.tag))
 
     def test_source_from_cache(self):
         # Given the path to a PEP 3147 defined .pyc file, return the path to
         # its source.  This tests the good path.
-        self.assertEqual(imp.source_from_cache(
-            '/foo/bar/baz/__pycache__/qux.{}.pyc'.format(self.tag)),
-            '/foo/bar/baz/qux.py')
+        path = os.path.join('foo', 'bar', 'baz', '__pycache__',
+                            'qux.{}.pyc'.format(self.tag))
+        expect = os.path.join('foo', 'bar', 'baz', 'qux.py')
+        self.assertEqual(imp.source_from_cache(path), expect)
 
     def test_source_from_cache_bad_path(self):
         # When the path to a pyc file is not in PEP 3147 format, a ValueError

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


More information about the Python-checkins mailing list