[Python-checkins] cpython (3.4): #12780: update inspect test skipIf for PEP 3147.

r.david.murray python-checkins at python.org
Fri Oct 3 17:17:34 CEST 2014


https://hg.python.org/cpython/rev/1745fd612d73
changeset:   92769:1745fd612d73
branch:      3.4
parent:      92764:e6050cd9e29e
user:        R David Murray <rdmurray at bitdance.com>
date:        Fri Oct 03 11:15:38 2014 -0400
summary:
  #12780: update inspect test skipIf for PEP 3147.

The test needs to be skipped if unicodedata is either part of the
main binary (a repackaging of cpython on Windows?) or has python
source (pypy?).  PEP 3147 makes __file__ point to the .py source,
so we need to change the extension check from looking for the
old .pyc/.pyo to just looking for .py.

Note that this skip should never trigger on CPython itself, so
one could argue it should be dropped instead.  But since it exists,
why risk breaking someone else's python.

files:
  Lib/test/test_inspect.py |  9 +++++----
  1 files changed, 5 insertions(+), 4 deletions(-)


diff --git a/Lib/test/test_inspect.py b/Lib/test/test_inspect.py
--- a/Lib/test/test_inspect.py
+++ b/Lib/test/test_inspect.py
@@ -432,10 +432,11 @@
     def test_method_in_dynamic_class(self):
         self.assertSourceEqual(mod2.method_in_dynamic_class, 95, 97)
 
-    @unittest.skipIf(
-        not hasattr(unicodedata, '__file__') or
-            unicodedata.__file__[-4:] in (".pyc", ".pyo"),
-        "unicodedata is not an external binary module")
+    # This should not skip for CPython, but might on a repackaged python where
+    # unicodedata is not an external module, or on pypy.
+    @unittest.skipIf(not hasattr(unicodedata, '__file__') or
+                                 unicodedata.__file__.endswith('.py'),
+                     "unicodedata is not an external binary module")
     def test_findsource_binary(self):
         self.assertRaises(OSError, inspect.getsource, unicodedata)
         self.assertRaises(OSError, inspect.findsource, unicodedata)

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


More information about the Python-checkins mailing list