summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Panter <vadmium+py@gmail.com>2016-02-02 10:37:15 (GMT)
committerMartin Panter <vadmium+py@gmail.com>2016-02-02 10:37:15 (GMT)
commit275bd96aa67ce2bf1c1f57cb5c2cb840d3afbb2d (patch)
tree550384d874614b8056facdc1e354f2fb762ee6e6
parent3464ea2807b6ba2d132ef27b65535116ab993eba (diff)
downloadcpython-275bd96aa67ce2bf1c1f57cb5c2cb840d3afbb2d.zip
cpython-275bd96aa67ce2bf1c1f57cb5c2cb840d3afbb2d.tar.gz
cpython-275bd96aa67ce2bf1c1f57cb5c2cb840d3afbb2d.tar.bz2
Issue #19587: Remove masked and redundant tests in test_bytes
* test_contains() did not override anything * test_expandtabs/upper/lower() in FixedStringTest were masking usable tests in string_tests. These tests now get run for bytearray() and bytes(). * test_expandtabs/upper/lower() in buffer_tests were only run on bytearray() and are redundant with string_tests
-rw-r--r--Lib/test/buffer_tests.py46
-rw-r--r--Lib/test/string_tests.py10
-rw-r--r--Lib/test/test_bytes.py13
3 files changed, 6 insertions, 63 deletions
diff --git a/Lib/test/buffer_tests.py b/Lib/test/buffer_tests.py
index 0a62940..8bef7e8 100644
--- a/Lib/test/buffer_tests.py
+++ b/Lib/test/buffer_tests.py
@@ -1,11 +1,8 @@
-# Tests that work for both bytes and buffer objects.
+# Tests that work for bytearray objects. Could be merged into string_tests.
# See PEP 3137.
-import struct
-import sys
-
class MixinBytesBufferCommonTests(object):
- """Tests that work for both bytes and buffer objects.
+ """Tests that work for bytearray objects.
See PEP 3137.
"""
@@ -88,16 +85,6 @@ class MixinBytesBufferCommonTests(object):
self.assertRaises(TypeError, self.marshal(b'abc').isdigit, 42)
- def test_lower(self):
- self.assertEqual(b'hello', self.marshal(b'HeLLo').lower())
- self.assertEqual(b'hello', self.marshal(b'hello').lower())
- self.assertRaises(TypeError, self.marshal(b'hello').lower, 42)
-
- def test_upper(self):
- self.assertEqual(b'HELLO', self.marshal(b'HeLLo').upper())
- self.assertEqual(b'HELLO', self.marshal(b'HELLO').upper())
- self.assertRaises(TypeError, self.marshal(b'hello').upper, 42)
-
def test_capitalize(self):
self.assertEqual(b' hello ', self.marshal(b' hello ').capitalize())
self.assertEqual(b'Hello ', self.marshal(b'Hello ').capitalize())
@@ -153,35 +140,6 @@ class MixinBytesBufferCommonTests(object):
self.assertRaises(TypeError, self.marshal(b'123').zfill)
- def test_expandtabs(self):
- self.assertEqual(b'abc\rab def\ng hi',
- self.marshal(b'abc\rab\tdef\ng\thi').expandtabs())
- self.assertEqual(b'abc\rab def\ng hi',
- self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(8))
- self.assertEqual(b'abc\rab def\ng hi',
- self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(4))
- self.assertEqual(b'abc\r\nab def\ng hi',
- self.marshal(b'abc\r\nab\tdef\ng\thi').expandtabs())
- self.assertEqual(b'abc\r\nab def\ng hi',
- self.marshal(b'abc\r\nab\tdef\ng\thi').expandtabs(8))
- self.assertEqual(b'abc\r\nab def\ng hi',
- self.marshal(b'abc\r\nab\tdef\ng\thi').expandtabs(4))
- self.assertEqual(b'abc\r\nab\r\ndef\ng\r\nhi',
- self.marshal(b'abc\r\nab\r\ndef\ng\r\nhi').expandtabs(4))
- # check keyword args
- self.assertEqual(b'abc\rab def\ng hi',
- self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(tabsize=8))
- self.assertEqual(b'abc\rab def\ng hi',
- self.marshal(b'abc\rab\tdef\ng\thi').expandtabs(tabsize=4))
-
- self.assertEqual(b' a\n b', self.marshal(b' \ta\n\tb').expandtabs(1))
-
- self.assertRaises(TypeError, self.marshal(b'hello').expandtabs, 42, 42)
- # This test is only valid when sizeof(int) == sizeof(void*) == 4.
- if sys.maxsize < (1 << 32) and struct.calcsize('P') == 4:
- self.assertRaises(OverflowError,
- self.marshal(b'\ta\n\tb').expandtabs, sys.maxsize)
-
def test_title(self):
self.assertEqual(b' Hello ', self.marshal(b' hello ').title())
self.assertEqual(b'Hello ', self.marshal(b'hello ').title())
diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py
index 7605f0d..da79ffa 100644
--- a/Lib/test/string_tests.py
+++ b/Lib/test/string_tests.py
@@ -1,5 +1,5 @@
"""
-Common tests shared by test_unicode, test_userstring and test_string.
+Common tests shared by test_unicode, test_userstring and test_bytes.
"""
import unittest, string, sys, struct
@@ -686,8 +686,7 @@ class BaseTest:
class CommonTest(BaseTest):
# This testcase contains tests that can be used in all
- # stringlike classes. Currently this is str, unicode
- # UserString and the string module.
+ # stringlike classes. Currently this is str and UserString.
def test_hash(self):
# SF bug 1054139: += optimization was not invalidating cached hash value
@@ -857,8 +856,7 @@ class CommonTest(BaseTest):
class MixinStrUnicodeUserStringTest:
# additional tests that only work for
- # stringlike objects, i.e. str, unicode, UserString
- # (but not the string module)
+ # stringlike objects, i.e. str, UserString
def test_islower(self):
self.checkequal(False, '', 'islower')
@@ -1343,7 +1341,7 @@ class MixinStrUnicodeUserStringTest:
class MixinStrUnicodeTest:
- # Additional tests that only work with str and unicode.
+ # Additional tests that only work with str.
def test_bug1001011(self):
# Make sure join returns a NEW object for single item sequences
diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py
index caf28fd..bc1bf79 100644
--- a/Lib/test/test_bytes.py
+++ b/Lib/test/test_bytes.py
@@ -1467,24 +1467,11 @@ class BytearrayPEP3137Test(unittest.TestCase,
class FixedStringTest(test.string_tests.BaseTest):
-
def fixtype(self, obj):
if isinstance(obj, str):
return obj.encode("utf-8")
return super().fixtype(obj)
- # Currently the bytes containment testing uses a single integer
- # value. This may not be the final design, but until then the
- # bytes section with in a bytes containment not valid
- def test_contains(self):
- pass
- def test_expandtabs(self):
- pass
- def test_upper(self):
- pass
- def test_lower(self):
- pass
-
class ByteArrayAsStringTest(FixedStringTest, unittest.TestCase):
type2test = bytearray
contains_bytes = True