]> granicus.if.org Git - python/commitdiff
Issue #13072: Fix test_array for installation without the ctypes module
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 8 Aug 2012 22:43:56 +0000 (00:43 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 8 Aug 2012 22:43:56 +0000 (00:43 +0200)
Lib/test/test_array.py

index 974e178f96db53bd165db4d1d26ccd56a80a374a..eb6d77fc29d2f53aa9069f7d2deac3bd8d0ce0a2 100755 (executable)
@@ -3,7 +3,6 @@
    Roger E. Masse
 """
 
-import ctypes
 import unittest
 from test import support
 import weakref
@@ -1033,6 +1032,16 @@ class UnicodeTest(StringTest):
     minitemsize = 2
 
     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')
 
         a = array.array('u', '\xa0\xc2\u1234')
@@ -1042,7 +1051,7 @@ class UnicodeTest(StringTest):
         a.fromunicode('\x11abc\xff\u1234')
         s = a.tounicode()
         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'
         a = array.array('u', s)