Commit 1d3e96db authored by Ezio Melotti's avatar Ezio Melotti

#16888: test_array now works with unittest test discovery. Patch by Zachary Ware.

parent 47236db1
......@@ -31,7 +31,6 @@ class ArraySubclassWithKwargs(array.array):
def __init__(self, typecode, newarg=None):
array.array.__init__(self)
tests = [] # list to accumulate all tests
typecodes = "ubBhHiIlLfd"
if have_long_long:
typecodes += 'qQ'
......@@ -44,7 +43,6 @@ class BadConstructorTest(unittest.TestCase):
self.assertRaises(TypeError, array.array, 'xx')
self.assertRaises(ValueError, array.array, 'x')
tests.append(BadConstructorTest)
# Machine format codes.
#
......@@ -174,10 +172,7 @@ class ArrayReconstructorTest(unittest.TestCase):
msg="{0!r} != {1!r}; testcase={2!r}".format(a, b, testcase))
tests.append(ArrayReconstructorTest)
class BaseTest(unittest.TestCase):
class BaseTest:
# Required class attributes (provided by subclasses
# typecode: the typecode to test
# example: an initializer usable in the constructor for this type
......@@ -1036,7 +1031,7 @@ class StringTest(BaseTest):
a = array.array(self.typecode, self.example)
self.assertRaises(TypeError, a.__setitem__, 0, self.example[:2])
class UnicodeTest(StringTest):
class UnicodeTest(StringTest, unittest.TestCase):
typecode = 'u'
example = '\x01\u263a\x00\ufeff'
smallerexample = '\x01\u263a\x00\ufefe'
......@@ -1074,8 +1069,6 @@ class UnicodeTest(StringTest):
self.assertRaises(TypeError, a.fromunicode)
tests.append(UnicodeTest)
class NumberTest(BaseTest):
def test_extslice(self):
......@@ -1216,57 +1209,47 @@ class UnsignedNumberTest(NumberTest):
)
class ByteTest(SignedNumberTest):
class ByteTest(SignedNumberTest, unittest.TestCase):
typecode = 'b'
minitemsize = 1
tests.append(ByteTest)
class UnsignedByteTest(UnsignedNumberTest):
class UnsignedByteTest(UnsignedNumberTest, unittest.TestCase):
typecode = 'B'
minitemsize = 1
tests.append(UnsignedByteTest)
class ShortTest(SignedNumberTest):
class ShortTest(SignedNumberTest, unittest.TestCase):
typecode = 'h'
minitemsize = 2
tests.append(ShortTest)
class UnsignedShortTest(UnsignedNumberTest):
class UnsignedShortTest(UnsignedNumberTest, unittest.TestCase):
typecode = 'H'
minitemsize = 2
tests.append(UnsignedShortTest)
class IntTest(SignedNumberTest):
class IntTest(SignedNumberTest, unittest.TestCase):
typecode = 'i'
minitemsize = 2
tests.append(IntTest)
class UnsignedIntTest(UnsignedNumberTest):
class UnsignedIntTest(UnsignedNumberTest, unittest.TestCase):
typecode = 'I'
minitemsize = 2
tests.append(UnsignedIntTest)
class LongTest(SignedNumberTest):
class LongTest(SignedNumberTest, unittest.TestCase):
typecode = 'l'
minitemsize = 4
tests.append(LongTest)
class UnsignedLongTest(UnsignedNumberTest):
class UnsignedLongTest(UnsignedNumberTest, unittest.TestCase):
typecode = 'L'
minitemsize = 4
tests.append(UnsignedLongTest)
@unittest.skipIf(not have_long_long, 'need long long support')
class LongLongTest(SignedNumberTest):
class LongLongTest(SignedNumberTest, unittest.TestCase):
typecode = 'q'
minitemsize = 8
tests.append(LongLongTest)
@unittest.skipIf(not have_long_long, 'need long long support')
class UnsignedLongLongTest(UnsignedNumberTest):
class UnsignedLongLongTest(UnsignedNumberTest, unittest.TestCase):
typecode = 'Q'
minitemsize = 8
tests.append(UnsignedLongLongTest)
class FPTest(NumberTest):
example = [-42.0, 0, 42, 1e5, -1e10]
......@@ -1293,12 +1276,11 @@ class FPTest(NumberTest):
b.byteswap()
self.assertEqual(a, b)
class FloatTest(FPTest):
class FloatTest(FPTest, unittest.TestCase):
typecode = 'f'
minitemsize = 4
tests.append(FloatTest)
class DoubleTest(FPTest):
class DoubleTest(FPTest, unittest.TestCase):
typecode = 'd'
minitemsize = 8
......@@ -1319,22 +1301,6 @@ class DoubleTest(FPTest):
else:
self.fail("Array of size > maxsize created - MemoryError expected")
tests.append(DoubleTest)
def test_main(verbose=None):
import sys
support.run_unittest(*tests)
# verify reference counting
if verbose and hasattr(sys, "gettotalrefcount"):
import gc
counts = [None] * 5
for i in range(len(counts)):
support.run_unittest(*tests)
gc.collect()
counts[i] = sys.gettotalrefcount()
print(counts)
if __name__ == "__main__":
test_main(verbose=True)
unittest.main()
......@@ -408,6 +408,9 @@ Library
Tests
-----
- Issue #16888: test_array now works with unittest test discovery.
Patch by Zachary Ware.
- Issue #16896: test_asyncore now works with unittest test discovery.
Patch by Zachary Ware.
......
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