Issue #13072: Fix test_array for installation without the ctypes module

This commit is contained in:
Victor Stinner 2012-08-09 00:43:56 +02:00
parent 22701e86d0
commit 9d512ab97f
1 changed files with 11 additions and 2 deletions

View File

@ -3,7 +3,6 @@
Roger E. Masse Roger E. Masse
""" """
import ctypes
import unittest import unittest
from test import support from test import support
import weakref import weakref
@ -1033,6 +1032,16 @@ class UnicodeTest(StringTest):
minitemsize = 2 minitemsize = 2
def test_unicode(self): def test_unicode(self):
try:
import ctypes
sizeof_wchar = ctypes.sizeof(ctypes.c_wchar)
except ImportError:
import sys
if sys.platform == 'win32':
sizeof_wchar = 2
else:
sizeof_wchar = 4
self.assertRaises(TypeError, array.array, 'b', 'foo') self.assertRaises(TypeError, array.array, 'b', 'foo')
a = array.array('u', '\xa0\xc2\u1234') a = array.array('u', '\xa0\xc2\u1234')
@ -1042,7 +1051,7 @@ class UnicodeTest(StringTest):
a.fromunicode('\x11abc\xff\u1234') a.fromunicode('\x11abc\xff\u1234')
s = a.tounicode() s = a.tounicode()
self.assertEqual(s, '\xa0\xc2\u1234 \x11abc\xff\u1234') self.assertEqual(s, '\xa0\xc2\u1234 \x11abc\xff\u1234')
self.assertEqual(a.itemsize, ctypes.sizeof(ctypes.c_wchar)) self.assertEqual(a.itemsize, sizeof_wchar)
s = '\x00="\'a\\b\x80\xff\u0000\u0001\u1234' s = '\x00="\'a\\b\x80\xff\u0000\u0001\u1234'
a = array.array('u', s) a = array.array('u', s)