class DictSubclass(dict):
pass
+NONCONTIG_WRITABLE = memoryview(bytearray(b'noncontig'))[::-2]
+NONCONTIG_READONLY = memoryview(b'noncontig')[::-2]
class Unsigned_TestCase(unittest.TestCase):
def test_b(self):
self.assertEqual(getargs_y_star(bytearray(b'bytearray')), b'bytearray')
self.assertEqual(getargs_y_star(memoryview(b'memoryview')), b'memoryview')
self.assertRaises(TypeError, getargs_y_star, None)
+ self.assertRaises(BufferError, getargs_y_star, NONCONTIG_WRITABLE)
+ self.assertRaises(BufferError, getargs_y_star, NONCONTIG_READONLY)
def test_y_hash(self):
from _testcapi import getargs_y_hash
self.assertRaises(TypeError, getargs_y_hash, bytearray(b'bytearray'))
self.assertRaises(TypeError, getargs_y_hash, memoryview(b'memoryview'))
self.assertRaises(TypeError, getargs_y_hash, None)
+ # TypeError: must be read-only bytes-like object, not memoryview
+ self.assertRaises(TypeError, getargs_y_hash, NONCONTIG_WRITABLE)
+ self.assertRaises(TypeError, getargs_y_hash, NONCONTIG_READONLY)
def test_w_star(self):
# getargs_w_star() modifies first and last byte
self.assertEqual(getargs_w_star(memoryview(buf)), b'[emoryvie]')
self.assertEqual(buf, bytearray(b'[emoryvie]'))
self.assertRaises(TypeError, getargs_w_star, None)
+ self.assertRaises(TypeError, getargs_w_star, NONCONTIG_WRITABLE)
+ self.assertRaises(TypeError, getargs_w_star, NONCONTIG_READONLY)
class String_TestCase(unittest.TestCase):
self.assertEqual(getargs_s_star(bytearray(b'bytearray')), b'bytearray')
self.assertEqual(getargs_s_star(memoryview(b'memoryview')), b'memoryview')
self.assertRaises(TypeError, getargs_s_star, None)
+ self.assertRaises(BufferError, getargs_s_star, NONCONTIG_WRITABLE)
+ self.assertRaises(BufferError, getargs_s_star, NONCONTIG_READONLY)
def test_s_hash(self):
from _testcapi import getargs_s_hash
self.assertRaises(TypeError, getargs_s_hash, bytearray(b'bytearray'))
self.assertRaises(TypeError, getargs_s_hash, memoryview(b'memoryview'))
self.assertRaises(TypeError, getargs_s_hash, None)
+ # TypeError: must be read-only bytes-like object, not memoryview
+ self.assertRaises(TypeError, getargs_s_hash, NONCONTIG_WRITABLE)
+ self.assertRaises(TypeError, getargs_s_hash, NONCONTIG_READONLY)
def test_z(self):
from _testcapi import getargs_z
self.assertEqual(getargs_z_star(bytearray(b'bytearray')), b'bytearray')
self.assertEqual(getargs_z_star(memoryview(b'memoryview')), b'memoryview')
self.assertIsNone(getargs_z_star(None))
+ self.assertRaises(BufferError, getargs_z_star, NONCONTIG_WRITABLE)
+ self.assertRaises(BufferError, getargs_z_star, NONCONTIG_READONLY)
def test_z_hash(self):
from _testcapi import getargs_z_hash
self.assertRaises(TypeError, getargs_z_hash, bytearray(b'bytearray'))
self.assertRaises(TypeError, getargs_z_hash, memoryview(b'memoryview'))
self.assertIsNone(getargs_z_hash(None))
+ # TypeError: must be read-only bytes-like object, not memoryview
+ self.assertRaises(TypeError, getargs_z_hash, NONCONTIG_WRITABLE)
+ self.assertRaises(TypeError, getargs_z_hash, NONCONTIG_READONLY)
def test_es(self):
from _testcapi import getargs_es