[pypy-commit] pypy py3k: add _testcapi skips from default + others

pjenvey noreply at buildbot.pypy.org
Thu May 16 21:26:29 CEST 2013


Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r64239:c81479fc13b0
Date: 2013-05-16 11:48 -0700
http://bitbucket.org/pypy/pypy/changeset/c81479fc13b0/

Log:	add _testcapi skips from default + others

diff --git a/lib-python/3/test/test_code.py b/lib-python/3/test/test_code.py
--- a/lib-python/3/test/test_code.py
+++ b/lib-python/3/test/test_code.py
@@ -104,7 +104,10 @@
 
 import unittest
 import weakref
-import _testcapi
+try:
+    import _testcapi
+except ImportError:
+    _testcapi = None
 from test import support
 
 
@@ -127,6 +130,7 @@
 
 class CodeTest(unittest.TestCase):
 
+    @unittest.skipUnless(_testcapi, 'Requires _testcapi')
     def test_newempty(self):
         co = _testcapi.code_newempty("filename", "funcname", 15)
         self.assertEqual(co.co_filename, "filename")
diff --git a/lib-python/3/test/test_codecs.py b/lib-python/3/test/test_codecs.py
--- a/lib-python/3/test/test_codecs.py
+++ b/lib-python/3/test/test_codecs.py
@@ -2,7 +2,11 @@
 import unittest
 import codecs
 import locale
-import sys, _testcapi, io
+import sys, io
+try:
+    import _testcapi
+except ImportError:
+    _testcapi = None
 
 class Queue(object):
     """
@@ -1417,7 +1421,7 @@
                     decodedresult += reader.read()
                 self.assertEqual(decodedresult, s, "%r != %r (encoding=%r)" % (decodedresult, s, encoding))
 
-            if encoding not in broken_incremental_coders:
+            if encoding not in broken_incremental_coders and _testcapi:
                 # check incremental decoder/encoder (fetched via the Python
                 # and C API) and iterencode()/iterdecode()
                 try:
diff --git a/lib-python/3/test/test_exceptions.py b/lib-python/3/test/test_exceptions.py
--- a/lib-python/3/test/test_exceptions.py
+++ b/lib-python/3/test/test_exceptions.py
@@ -6,6 +6,10 @@
 import pickle
 import weakref
 import errno
+try:
+    import _testcapi
+except ImportError:
+    _testcapi = None
 
 from test.support import (TESTFN, unlink, run_unittest, captured_output,
                           gc_collect, cpython_only)
@@ -762,6 +766,7 @@
         self.assertIn("maximum recursion depth exceeded", str(v))
 
 
+    @unittest.skipUnless(_testcapi, 'Requires _testcapi')
     def test_MemoryError(self):
         # PyErr_NoMemory always raises the same exception instance.
         # Check that the traceback is not doubled.
@@ -820,6 +825,7 @@
         self.assertEqual(error5.a, 1)
         self.assertEqual(error5.__doc__, "")
 
+    @unittest.skipUnless(_testcapi, 'Requires _testcapi')
     def test_memory_error_cleanup(self):
         # Issue #5437: preallocated MemoryError instances should not keep
         # traceback objects alive.
diff --git a/lib-python/3/test/test_traceback.py b/lib-python/3/test/test_traceback.py
--- a/lib-python/3/test/test_traceback.py
+++ b/lib-python/3/test/test_traceback.py
@@ -1,6 +1,9 @@
 """Test cases for traceback module"""
 
-from _testcapi import traceback_print, exception_print
+try:
+    import _testcapi
+except ImportError:
+    _testcapi = None
 from io import StringIO
 import sys
 import unittest
@@ -154,6 +157,7 @@
 
 class TracebackFormatTests(unittest.TestCase):
 
+    @unittest.skipUnless(_testcapi, 'Requires _testcapi')
     def test_traceback_format(self):
         try:
             raise KeyError('blah')
@@ -162,7 +166,7 @@
             traceback_fmt = 'Traceback (most recent call last):\n' + \
                             ''.join(traceback.format_tb(tb))
             file_ = StringIO()
-            traceback_print(tb, file_)
+            _testcapi.traceback_print(tb, file_)
             python_fmt  = file_.getvalue()
         else:
             raise Error("unable to create test traceback string")
@@ -326,10 +330,11 @@
     # This checks built-in reporting by the interpreter.
     #
 
+    @unittest.skipUnless(_testcapi, 'Requires _testcapi')
     def get_report(self, e):
         e = self.get_exception(e)
         with captured_output("stderr") as s:
-            exception_print(e)
+            _testcapi.exception_print(e)
         return s.getvalue()
 
 
diff --git a/lib-python/3/test/test_unicode.py b/lib-python/3/test/test_unicode.py
--- a/lib-python/3/test/test_unicode.py
+++ b/lib-python/3/test/test_unicode.py
@@ -12,6 +12,10 @@
 import warnings
 from test import support, string_tests
 import _string
+try:
+    import _testcapi
+except ImportError:
+    _testcapi = None
 
 # decorator to skip tests on narrow builds
 requires_wide_build = unittest.skipIf(sys.maxunicode == 65535,
@@ -1659,6 +1663,7 @@
         self.assertEqual(text, 'repr=abc\ufffd')
 
     # Test PyUnicode_AsWideChar()
+    @unittest.skipUnless(_testcapi, 'Requires _testcapi')
     def test_aswidechar(self):
         from _testcapi import unicode_aswidechar
         support.import_module('ctypes')
@@ -1696,6 +1701,7 @@
         self.assertEqual(wchar, nonbmp + '\0')
 
     # Test PyUnicode_AsWideCharString()
+    @unittest.skipUnless(_testcapi, 'Requires _testcapi')
     def test_aswidecharstring(self):
         from _testcapi import unicode_aswidecharstring
         support.import_module('ctypes')
@@ -1769,6 +1775,7 @@
             ]])
         self.assertRaises(TypeError, _string.formatter_field_name_split, 1)
 
+    @unittest.skipUnless(_testcapi, 'Requires _testcapi')
     def test_encode_decimal(self):
         from _testcapi import unicode_encodedecimal
         self.assertEqual(unicode_encodedecimal('123'),
@@ -1794,6 +1801,7 @@
         self.assertEqual(unicode_encodedecimal("123\u20ac\u0660", "replace"),
                          b'123?0')
 
+    @unittest.skipUnless(_testcapi, 'Requires _testcapi')
     def test_transform_decimal(self):
         from _testcapi import unicode_transformdecimaltoascii as transform_decimal
         self.assertEqual(transform_decimal('123'),


More information about the pypy-commit mailing list