mirror of
https://github.com/python/cpython.git
synced 2025-08-12 04:49:01 +00:00
Strengthen BytesWarning tests.
This commit is contained in:
parent
764d612f5e
commit
edf5f0ddc0
1 changed files with 54 additions and 45 deletions
|
@ -9,15 +9,28 @@ import os
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
import copy
|
import copy
|
||||||
import operator
|
import functools
|
||||||
import pickle
|
import pickle
|
||||||
import tempfile
|
import tempfile
|
||||||
import unittest
|
import unittest
|
||||||
import warnings
|
|
||||||
import test.support
|
import test.support
|
||||||
import test.string_tests
|
import test.string_tests
|
||||||
import test.buffer_tests
|
import test.buffer_tests
|
||||||
|
|
||||||
|
|
||||||
|
if sys.flags.bytes_warning:
|
||||||
|
def check_bytes_warnings(func):
|
||||||
|
@functools.wraps(func)
|
||||||
|
def wrapper(*args, **kw):
|
||||||
|
with test.support.check_warnings(('', BytesWarning)):
|
||||||
|
return func(*args, **kw)
|
||||||
|
return wrapper
|
||||||
|
else:
|
||||||
|
# no-op
|
||||||
|
def check_bytes_warnings(func):
|
||||||
|
return func
|
||||||
|
|
||||||
|
|
||||||
class Indexable:
|
class Indexable:
|
||||||
def __init__(self, value=0):
|
def __init__(self, value=0):
|
||||||
self.value = value
|
self.value = value
|
||||||
|
@ -121,9 +134,8 @@ class BaseBytesTest(unittest.TestCase):
|
||||||
self.assertFalse(b3 < b2)
|
self.assertFalse(b3 < b2)
|
||||||
self.assertFalse(b3 <= b2)
|
self.assertFalse(b3 <= b2)
|
||||||
|
|
||||||
|
@check_bytes_warnings
|
||||||
def test_compare_to_str(self):
|
def test_compare_to_str(self):
|
||||||
with test.support.check_warnings():
|
|
||||||
warnings.simplefilter('ignore', BytesWarning)
|
|
||||||
# Byte comparisons with unicode should always fail!
|
# Byte comparisons with unicode should always fail!
|
||||||
# Test this for all expected byte orders and Unicode character
|
# Test this for all expected byte orders and Unicode character
|
||||||
# sizes.
|
# sizes.
|
||||||
|
@ -823,9 +835,8 @@ class AssortedBytesTest(unittest.TestCase):
|
||||||
# Test various combinations of bytes and bytearray
|
# Test various combinations of bytes and bytearray
|
||||||
#
|
#
|
||||||
|
|
||||||
|
@check_bytes_warnings
|
||||||
def test_repr_str(self):
|
def test_repr_str(self):
|
||||||
with test.support.check_warnings():
|
|
||||||
warnings.simplefilter('ignore', BytesWarning)
|
|
||||||
for f in str, repr:
|
for f in str, repr:
|
||||||
self.assertEqual(f(bytearray()), "bytearray(b'')")
|
self.assertEqual(f(bytearray()), "bytearray(b'')")
|
||||||
self.assertEqual(f(bytearray([0])), "bytearray(b'\\x00')")
|
self.assertEqual(f(bytearray([0])), "bytearray(b'\\x00')")
|
||||||
|
@ -876,9 +887,8 @@ class AssortedBytesTest(unittest.TestCase):
|
||||||
b = bytearray(buf)
|
b = bytearray(buf)
|
||||||
self.assertEqual(b, bytearray(sample))
|
self.assertEqual(b, bytearray(sample))
|
||||||
|
|
||||||
|
@check_bytes_warnings
|
||||||
def test_to_str(self):
|
def test_to_str(self):
|
||||||
with test.support.check_warnings():
|
|
||||||
warnings.simplefilter('ignore', BytesWarning)
|
|
||||||
self.assertEqual(str(b''), "b''")
|
self.assertEqual(str(b''), "b''")
|
||||||
self.assertEqual(str(b'x'), "b'x'")
|
self.assertEqual(str(b'x'), "b'x'")
|
||||||
self.assertEqual(str(b'\x80'), "b'\\x80'")
|
self.assertEqual(str(b'\x80'), "b'\\x80'")
|
||||||
|
@ -930,19 +940,18 @@ class AssortedBytesTest(unittest.TestCase):
|
||||||
|
|
||||||
def test_compare(self):
|
def test_compare(self):
|
||||||
if sys.flags.bytes_warning:
|
if sys.flags.bytes_warning:
|
||||||
with test.support.check_warnings():
|
def bytes_warning():
|
||||||
warnings.simplefilter('error', BytesWarning)
|
return test.support.check_warnings(('', BytesWarning))
|
||||||
with self.assertRaises(BytesWarning):
|
with bytes_warning():
|
||||||
b'' == ''
|
b'' == ''
|
||||||
with self.assertRaises(BytesWarning):
|
with bytes_warning():
|
||||||
b'' != ''
|
b'' != ''
|
||||||
with self.assertRaises(BytesWarning):
|
with bytes_warning():
|
||||||
bytearray(b'') == ''
|
bytearray(b'') == ''
|
||||||
with self.assertRaises(BytesWarning):
|
with bytes_warning():
|
||||||
bytearray(b'') != ''
|
bytearray(b'') != ''
|
||||||
else:
|
else:
|
||||||
# self.skipTest("BytesWarning is needed for this test: use -bb option")
|
self.skipTest("BytesWarning is needed for this test: use -bb option")
|
||||||
pass
|
|
||||||
|
|
||||||
# Optimizations:
|
# Optimizations:
|
||||||
# __iter__? (optimization)
|
# __iter__? (optimization)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue