Kaydet (Commit) 7f7386cf authored tarafından Martin Blais's avatar Martin Blais

Fixed struct test to not use unittest.

üst d21a7fff
...@@ -2,7 +2,6 @@ from test.test_support import TestFailed, verbose, verify ...@@ -2,7 +2,6 @@ from test.test_support import TestFailed, verbose, verify
import test.test_support import test.test_support
import struct import struct
import array import array
import unittest
import warnings import warnings
import sys import sys
...@@ -494,36 +493,43 @@ def test_1229380(): ...@@ -494,36 +493,43 @@ def test_1229380():
if PY_STRUCT_RANGE_CHECKING: if PY_STRUCT_RANGE_CHECKING:
test_1229380() test_1229380()
class PackBufferTestCase(unittest.TestCase):
"""
Test the packing methods that work on buffers.
"""
def test_unpack_from( self ): ###########################################################################
# Packing and unpacking to/from buffers.
# Copied and modified from unittest.
def assertRaises(excClass, callableObj, *args, **kwargs):
try:
callableObj(*args, **kwargs)
except excClass:
return
else:
raise RuntimeError("%s not raised." % excClass)
def test_unpack_from():
test_string = 'abcd01234' test_string = 'abcd01234'
fmt = '4s' fmt = '4s'
s = struct.Struct(fmt) s = struct.Struct(fmt)
for cls in (str, buffer): for cls in (str, buffer):
data = cls(test_string) data = cls(test_string)
self.assertEquals(s.unpack_from(data), ('abcd',)) assert s.unpack_from(data) == ('abcd',)
self.assertEquals(s.unpack_from(data, 2), ('cd01',)) assert s.unpack_from(data, 2) == ('cd01',)
self.assertEquals(s.unpack_from(data, 4), ('0123',)) assert s.unpack_from(data, 4) == ('0123',)
for i in xrange(6): for i in xrange(6):
self.assertEquals(s.unpack_from(data, i), (data[i:i+4],)) assert s.unpack_from(data, i) == (data[i:i+4],)
for i in xrange(6, len(test_string) + 1): for i in xrange(6, len(test_string) + 1):
simple_err(s.unpack_from, data, i) simple_err(s.unpack_from, data, i)
for cls in (str, buffer): for cls in (str, buffer):
data = cls(test_string) data = cls(test_string)
self.assertEquals(struct.unpack_from(fmt, data), ('abcd',)) assert struct.unpack_from(fmt, data) == ('abcd',)
self.assertEquals(struct.unpack_from(fmt, data, 2), ('cd01',)) assert struct.unpack_from(fmt, data, 2) == ('cd01',)
self.assertEquals(struct.unpack_from(fmt, data, 4), ('0123',)) assert struct.unpack_from(fmt, data, 4) == ('0123',)
for i in xrange(6): for i in xrange(6):
self.assertEquals(struct.unpack_from(fmt, data, i), assert (struct.unpack_from(fmt, data, i) == (data[i:i+4],))
(data[i:i+4],))
for i in xrange(6, len(test_string) + 1): for i in xrange(6, len(test_string) + 1):
simple_err(struct.unpack_from, fmt, data, i) simple_err(struct.unpack_from, fmt, data, i)
def test_pack_to( self ): def test_pack_to():
test_string = 'Reykjavik rocks, eow!' test_string = 'Reykjavik rocks, eow!'
writable_buf = array.array('c', ' '*100) writable_buf = array.array('c', ' '*100)
fmt = '21s' fmt = '21s'
...@@ -532,19 +538,19 @@ class PackBufferTestCase(unittest.TestCase): ...@@ -532,19 +538,19 @@ class PackBufferTestCase(unittest.TestCase):
# Test without offset # Test without offset
s.pack_to(writable_buf, 0, test_string) s.pack_to(writable_buf, 0, test_string)
from_buf = writable_buf.tostring()[:len(test_string)] from_buf = writable_buf.tostring()[:len(test_string)]
self.assertEquals(from_buf, test_string) assert from_buf == test_string
# Test with offset. # Test with offset.
s.pack_to(writable_buf, 10, test_string) s.pack_to(writable_buf, 10, test_string)
from_buf = writable_buf.tostring()[:len(test_string)+10] from_buf = writable_buf.tostring()[:len(test_string)+10]
self.assertEquals(from_buf, (test_string[:10] + test_string)) assert from_buf == (test_string[:10] + test_string)
# Go beyond boundaries. # Go beyond boundaries.
small_buf = array.array('c', ' '*10) small_buf = array.array('c', ' '*10)
self.assertRaises(struct.error, s.pack_to, small_buf, 0, test_string) assertRaises(struct.error, s.pack_to, small_buf, 0, test_string)
self.assertRaises(struct.error, s.pack_to, small_buf, 2, test_string) assertRaises(struct.error, s.pack_to, small_buf, 2, test_string)
def test_pack_to_fn( self ): def test_pack_to_fn():
test_string = 'Reykjavik rocks, eow!' test_string = 'Reykjavik rocks, eow!'
writable_buf = array.array('c', ' '*100) writable_buf = array.array('c', ' '*100)
fmt = '21s' fmt = '21s'
...@@ -553,21 +559,21 @@ class PackBufferTestCase(unittest.TestCase): ...@@ -553,21 +559,21 @@ class PackBufferTestCase(unittest.TestCase):
# Test without offset # Test without offset
pack_to(writable_buf, 0, test_string) pack_to(writable_buf, 0, test_string)
from_buf = writable_buf.tostring()[:len(test_string)] from_buf = writable_buf.tostring()[:len(test_string)]
self.assertEquals(from_buf, test_string) assert from_buf == test_string
# Test with offset. # Test with offset.
pack_to(writable_buf, 10, test_string) pack_to(writable_buf, 10, test_string)
from_buf = writable_buf.tostring()[:len(test_string)+10] from_buf = writable_buf.tostring()[:len(test_string)+10]
self.assertEquals(from_buf, (test_string[:10] + test_string)) assert from_buf == (test_string[:10] + test_string)
# Go beyond boundaries. # Go beyond boundaries.
small_buf = array.array('c', ' '*10) small_buf = array.array('c', ' '*10)
self.assertRaises(struct.error, pack_to, small_buf, 0, test_string) assertRaises(struct.error, pack_to, small_buf, 0, test_string)
self.assertRaises(struct.error, pack_to, small_buf, 2, test_string) assertRaises(struct.error, pack_to, small_buf, 2, test_string)
def test_main(): # Test methods to pack and unpack from buffers rather than strings.
test.test_support.run_unittest(PackBufferTestCase) test_unpack_from()
test_pack_to()
test_pack_to_fn()
if __name__ == "__main__":
test_main()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment