summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/support/__init__.py8
-rw-r--r--Lib/test/test_csv.py2
-rw-r--r--Lib/test/test_decimal.py5
-rw-r--r--Lib/test/test_getargs2.py4
-rw-r--r--Lib/test/test_unicode.py4
5 files changed, 21 insertions, 2 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py
index b21978a..1ce3a78 100644
--- a/Lib/test/support/__init__.py
+++ b/Lib/test/support/__init__.py
@@ -36,6 +36,11 @@ from .warnings_helper import (
from .testresult import get_test_runner
+try:
+ from _testcapi import unicode_legacy_string
+except ImportError:
+ unicode_legacy_string = None
+
__all__ = [
# globals
"PIPE_MAX_SIZE", "verbose", "max_memuse", "use_resources", "failfast",
@@ -426,6 +431,9 @@ def requires_lzma(reason='requires lzma'):
lzma = None
return unittest.skipUnless(lzma, reason)
+requires_legacy_unicode_capi = unittest.skipUnless(unicode_legacy_string,
+ 'requires legacy Unicode C API')
+
is_jython = sys.platform.startswith('java')
is_android = hasattr(sys, 'getandroidapilevel')
diff --git a/Lib/test/test_csv.py b/Lib/test/test_csv.py
index d421be0..a92870c 100644
--- a/Lib/test/test_csv.py
+++ b/Lib/test/test_csv.py
@@ -250,9 +250,9 @@ class Test_Csv(unittest.TestCase):
self.assertRaises(OSError, writer.writerows, BadIterable())
@support.cpython_only
+ @support.requires_legacy_unicode_capi
def test_writerows_legacy_strings(self):
import _testcapi
-
c = _testcapi.unicode_legacy_string('a')
with TemporaryFile("w+", newline='') as fileobj:
writer = csv.writer(fileobj)
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 716e6eb..9dbae44 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -33,7 +33,8 @@ import unittest
import numbers
import locale
from test.support import (run_unittest, run_doctest, is_resource_enabled,
- requires_IEEE_754, requires_docstrings)
+ requires_IEEE_754, requires_docstrings,
+ requires_legacy_unicode_capi)
from test.support import (TestFailed,
run_with_locale, cpython_only)
from test.support.import_helper import import_fresh_module
@@ -582,6 +583,7 @@ class ExplicitConstructionTest(unittest.TestCase):
self.assertRaises(InvalidOperation, Decimal, "1_2_\u00003")
@cpython_only
+ @requires_legacy_unicode_capi
def test_from_legacy_strings(self):
import _testcapi
Decimal = self.decimal.Decimal
@@ -2817,6 +2819,7 @@ class ContextAPItests(unittest.TestCase):
Overflow])
@cpython_only
+ @requires_legacy_unicode_capi
def test_from_legacy_strings(self):
import _testcapi
c = self.decimal.Context()
diff --git a/Lib/test/test_getargs2.py b/Lib/test/test_getargs2.py
index d39ea56..0956019 100644
--- a/Lib/test/test_getargs2.py
+++ b/Lib/test/test_getargs2.py
@@ -976,6 +976,7 @@ class String_TestCase(unittest.TestCase):
buf = bytearray()
self.assertRaises(ValueError, getargs_et_hash, 'abc\xe9', 'latin1', buf)
+ @support.requires_legacy_unicode_capi
def test_u(self):
from _testcapi import getargs_u
self.assertEqual(getargs_u('abc\xe9'), 'abc\xe9')
@@ -985,6 +986,7 @@ class String_TestCase(unittest.TestCase):
self.assertRaises(TypeError, getargs_u, memoryview(b'memoryview'))
self.assertRaises(TypeError, getargs_u, None)
+ @support.requires_legacy_unicode_capi
def test_u_hash(self):
from _testcapi import getargs_u_hash
self.assertEqual(getargs_u_hash('abc\xe9'), 'abc\xe9')
@@ -994,6 +996,7 @@ class String_TestCase(unittest.TestCase):
self.assertRaises(TypeError, getargs_u_hash, memoryview(b'memoryview'))
self.assertRaises(TypeError, getargs_u_hash, None)
+ @support.requires_legacy_unicode_capi
def test_Z(self):
from _testcapi import getargs_Z
self.assertEqual(getargs_Z('abc\xe9'), 'abc\xe9')
@@ -1003,6 +1006,7 @@ class String_TestCase(unittest.TestCase):
self.assertRaises(TypeError, getargs_Z, memoryview(b'memoryview'))
self.assertIsNone(getargs_Z(None))
+ @support.requires_legacy_unicode_capi
def test_Z_hash(self):
from _testcapi import getargs_Z_hash
self.assertEqual(getargs_Z_hash('abc\xe9'), 'abc\xe9')
diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py
index afc9555..d485bc7 100644
--- a/Lib/test/test_unicode.py
+++ b/Lib/test/test_unicode.py
@@ -723,6 +723,7 @@ class UnicodeTest(string_tests.CommonTest,
self.assertFalse("0".isidentifier())
@support.cpython_only
+ @support.requires_legacy_unicode_capi
def test_isidentifier_legacy(self):
import _testcapi
u = '𝖀𝖓𝖎𝖈𝖔𝖉𝖊'
@@ -2350,6 +2351,7 @@ class UnicodeTest(string_tests.CommonTest,
self.assertEqual(len(args), 1)
@support.cpython_only
+ @support.requires_legacy_unicode_capi
def test_resize(self):
from _testcapi import getargs_u
for length in range(1, 100, 7):
@@ -2920,6 +2922,7 @@ class CAPITest(unittest.TestCase):
self.assertRaises(SystemError, unicode_copycharacters, s, 0, b'', 0, 0)
@support.cpython_only
+ @support.requires_legacy_unicode_capi
def test_encode_decimal(self):
from _testcapi import unicode_encodedecimal
self.assertEqual(unicode_encodedecimal('123'),
@@ -2936,6 +2939,7 @@ class CAPITest(unittest.TestCase):
unicode_encodedecimal, "123\u20ac", "replace")
@support.cpython_only
+ @support.requires_legacy_unicode_capi
def test_transform_decimal(self):
from _testcapi import unicode_transformdecimaltoascii as transform_decimal
self.assertEqual(transform_decimal('123'),