Fix test_bytes on Windows
On Windows, sprintf("%p", 0xabcdef) formats hexadecimal in uppercase and pad to 16 characters (on 64-bit system) with zeros.
This commit is contained in:
parent
03dab786b2
commit
7ab986dd84
|
@ -782,7 +782,7 @@ class BytesTest(BaseBytesTest, unittest.TestCase):
|
||||||
|
|
||||||
# Test PyBytes_FromFormat()
|
# Test PyBytes_FromFormat()
|
||||||
def test_from_format(self):
|
def test_from_format(self):
|
||||||
test.support.import_module('ctypes')
|
ctypes = test.support.import_module('ctypes')
|
||||||
_testcapi = test.support.import_module('_testcapi')
|
_testcapi = test.support.import_module('_testcapi')
|
||||||
from ctypes import pythonapi, py_object
|
from ctypes import pythonapi, py_object
|
||||||
from ctypes import (
|
from ctypes import (
|
||||||
|
@ -825,9 +825,12 @@ class BytesTest(BaseBytesTest, unittest.TestCase):
|
||||||
b'i=-123')
|
b'i=-123')
|
||||||
self.assertEqual(PyBytes_FromFormat(b'x=%x', c_int(0xabc)),
|
self.assertEqual(PyBytes_FromFormat(b'x=%x', c_int(0xabc)),
|
||||||
b'x=abc')
|
b'x=abc')
|
||||||
self.assertEqual(PyBytes_FromFormat(b'ptr=%p',
|
ptr = 0xabcdef
|
||||||
c_char_p(0xabcdef)),
|
expected = [b'ptr=%#x' % ptr]
|
||||||
b'ptr=0xabcdef')
|
win_format = 'ptr=0x%0{}X'.format(2 * ctypes.sizeof(c_char_p))
|
||||||
|
expected.append((win_format % ptr).encode('ascii'))
|
||||||
|
self.assertIn(PyBytes_FromFormat(b'ptr=%p', c_char_p(ptr)),
|
||||||
|
expected)
|
||||||
self.assertEqual(PyBytes_FromFormat(b's=%s', c_char_p(b'cstr')),
|
self.assertEqual(PyBytes_FromFormat(b's=%s', c_char_p(b'cstr')),
|
||||||
b's=cstr')
|
b's=cstr')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue