Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9376728

Browse files
authored
gh-67565: Add tests for C-contiguity checks (GH-110951)
1 parent677d4bc commit9376728

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

‎Lib/test/test_binascii.py‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,12 @@ def test_base64_roundtrip(self, binary, newline):
474474
restored=binascii.a2b_base64(self.type2test(converted))
475475
self.assertConversion(binary,converted,restored,newline=newline)
476476

477+
deftest_c_contiguity(self):
478+
m=memoryview(bytearray(b'noncontig'))
479+
noncontig_writable=m[::-2]
480+
withself.assertRaises(BufferError):
481+
binascii.b2a_hex(noncontig_writable)
482+
477483

478484
classArrayBinASCIITest(BinASCIITest):
479485
deftype2test(self,s):

‎Lib/test/test_capi/test_getargs.py‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ class TupleSubclass(tuple):
153153
classDictSubclass(dict):
154154
pass
155155

156+
NONCONTIG_WRITABLE=memoryview(bytearray(b'noncontig'))[::-2]
157+
NONCONTIG_READONLY=memoryview(b'noncontig')[::-2]
156158

157159
classUnsigned_TestCase(unittest.TestCase):
158160
deftest_b(self):
@@ -837,6 +839,8 @@ def test_y_star(self):
837839
self.assertEqual(getargs_y_star(bytearray(b'bytearray')),b'bytearray')
838840
self.assertEqual(getargs_y_star(memoryview(b'memoryview')),b'memoryview')
839841
self.assertRaises(TypeError,getargs_y_star,None)
842+
self.assertRaises(BufferError,getargs_y_star,NONCONTIG_WRITABLE)
843+
self.assertRaises(BufferError,getargs_y_star,NONCONTIG_READONLY)
840844

841845
deftest_y_hash(self):
842846
from_testcapiimportgetargs_y_hash
@@ -846,6 +850,9 @@ def test_y_hash(self):
846850
self.assertRaises(TypeError,getargs_y_hash,bytearray(b'bytearray'))
847851
self.assertRaises(TypeError,getargs_y_hash,memoryview(b'memoryview'))
848852
self.assertRaises(TypeError,getargs_y_hash,None)
853+
# TypeError: must be read-only bytes-like object, not memoryview
854+
self.assertRaises(TypeError,getargs_y_hash,NONCONTIG_WRITABLE)
855+
self.assertRaises(TypeError,getargs_y_hash,NONCONTIG_READONLY)
849856

850857
deftest_w_star(self):
851858
# getargs_w_star() modifies first and last byte
@@ -861,6 +868,8 @@ def test_w_star(self):
861868
self.assertEqual(getargs_w_star(memoryview(buf)),b'[emoryvie]')
862869
self.assertEqual(buf,bytearray(b'[emoryvie]'))
863870
self.assertRaises(TypeError,getargs_w_star,None)
871+
self.assertRaises(TypeError,getargs_w_star,NONCONTIG_WRITABLE)
872+
self.assertRaises(TypeError,getargs_w_star,NONCONTIG_READONLY)
864873

865874

866875
classString_TestCase(unittest.TestCase):
@@ -893,6 +902,8 @@ def test_s_star(self):
893902
self.assertEqual(getargs_s_star(bytearray(b'bytearray')),b'bytearray')
894903
self.assertEqual(getargs_s_star(memoryview(b'memoryview')),b'memoryview')
895904
self.assertRaises(TypeError,getargs_s_star,None)
905+
self.assertRaises(BufferError,getargs_s_star,NONCONTIG_WRITABLE)
906+
self.assertRaises(BufferError,getargs_s_star,NONCONTIG_READONLY)
896907

897908
deftest_s_hash(self):
898909
from_testcapiimportgetargs_s_hash
@@ -902,6 +913,9 @@ def test_s_hash(self):
902913
self.assertRaises(TypeError,getargs_s_hash,bytearray(b'bytearray'))
903914
self.assertRaises(TypeError,getargs_s_hash,memoryview(b'memoryview'))
904915
self.assertRaises(TypeError,getargs_s_hash,None)
916+
# TypeError: must be read-only bytes-like object, not memoryview
917+
self.assertRaises(TypeError,getargs_s_hash,NONCONTIG_WRITABLE)
918+
self.assertRaises(TypeError,getargs_s_hash,NONCONTIG_READONLY)
905919

906920
deftest_z(self):
907921
from_testcapiimportgetargs_z
@@ -920,6 +934,8 @@ def test_z_star(self):
920934
self.assertEqual(getargs_z_star(bytearray(b'bytearray')),b'bytearray')
921935
self.assertEqual(getargs_z_star(memoryview(b'memoryview')),b'memoryview')
922936
self.assertIsNone(getargs_z_star(None))
937+
self.assertRaises(BufferError,getargs_z_star,NONCONTIG_WRITABLE)
938+
self.assertRaises(BufferError,getargs_z_star,NONCONTIG_READONLY)
923939

924940
deftest_z_hash(self):
925941
from_testcapiimportgetargs_z_hash
@@ -929,6 +945,9 @@ def test_z_hash(self):
929945
self.assertRaises(TypeError,getargs_z_hash,bytearray(b'bytearray'))
930946
self.assertRaises(TypeError,getargs_z_hash,memoryview(b'memoryview'))
931947
self.assertIsNone(getargs_z_hash(None))
948+
# TypeError: must be read-only bytes-like object, not memoryview
949+
self.assertRaises(TypeError,getargs_z_hash,NONCONTIG_WRITABLE)
950+
self.assertRaises(TypeError,getargs_z_hash,NONCONTIG_READONLY)
932951

933952
deftest_es(self):
934953
from_testcapiimportgetargs_es

‎Lib/test/test_ssl.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1739,6 +1739,10 @@ def test_buffer_types(self):
17391739
self.assertEqual(bio.read(),b'bar')
17401740
bio.write(memoryview(b'baz'))
17411741
self.assertEqual(bio.read(),b'baz')
1742+
m=memoryview(bytearray(b'noncontig'))
1743+
noncontig_writable=m[::-2]
1744+
withself.assertRaises(BufferError):
1745+
bio.write(memoryview(noncontig_writable))
17421746

17431747
deftest_error_types(self):
17441748
bio=ssl.MemoryBIO()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp