[ctypes-commit] ctypes/unittests test_unicode.py,1.1,1.2
Brought to you by:
theller
From: Thomas H. <th...@us...> - 2004-10-12 19:05:19
|
Update of /cvsroot/ctypes/ctypes/unittests In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11303 Modified Files: test_unicode.py Log Message: Test that conversions also work in create_string_buffer and create_unicode_buffer. Index: test_unicode.py =================================================================== RCS file: /cvsroot/ctypes/ctypes/unittests/test_unicode.py,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** test_unicode.py 12 Oct 2004 18:03:54 -0000 1.1 --- test_unicode.py 12 Oct 2004 19:05:08 -0000 1.2 *************** *** 63,66 **** --- 63,80 ---- self.failUnlessEqual(wcslen("äöüß"), 4) + def test_buffers(self): + ctypes.set_conversion_mode("ascii", "strict") + buf = ctypes.create_unicode_buffer("abc") + self.failUnlessEqual(len(buf), 3+1) + + ctypes.set_conversion_mode("ascii", "replace") + buf = ctypes.create_unicode_buffer("abäöü") + self.failUnlessEqual(buf[:], u"ab\uFFFD\uFFFD\uFFFD\0") + + ctypes.set_conversion_mode("ascii", "ignore") + buf = ctypes.create_unicode_buffer("abäöü") + # is that correct? not sure. But with 'ignore', you get what you pay for.. + self.failUnlessEqual(buf[:], u"ab\0\0\0\0") + import _ctypes_test func = ctypes.CDLL(_ctypes_test.__file__)._testfunc_p_p *************** *** 95,99 **** --- 109,125 ---- self.failUnlessEqual(func(u"äöüß"), "????") + def test_buffers(self): + ctypes.set_conversion_mode("ascii", "strict") + buf = ctypes.create_string_buffer(u"abc") + self.failUnlessEqual(len(buf), 3+1) + ctypes.set_conversion_mode("ascii", "replace") + buf = ctypes.create_string_buffer(u"abäöü") + self.failUnlessEqual(buf[:], "ab???\0") + + ctypes.set_conversion_mode("ascii", "ignore") + buf = ctypes.create_string_buffer(u"abäöü") + # is that correct? not sure. But with 'ignore', you get what you pay for.. + self.failUnlessEqual(buf[:], "ab\0\0\0\0") if __name__ == '__main__': |