From 0dceb560b6b7bfc0a2e11d3a6c27f0a7c7e2e619 Mon Sep 17 00:00:00 2001 From: Ezio Melotti Date: Thu, 10 Jan 2013 07:43:26 +0200 Subject: [PATCH] #16910: test_bytes, test_unicode, and test_userstring now work with unittest test discovery. Patch by Zachary Ware. --- Lib/test/string_tests.py | 2 +- Lib/test/test_bytes.py | 24 +++++++++--------------- Lib/test/test_unicode.py | 8 +++----- Lib/test/test_userstring.py | 7 +++---- Misc/NEWS | 3 +++ 5 files changed, 19 insertions(+), 25 deletions(-) diff --git a/Lib/test/string_tests.py b/Lib/test/string_tests.py index e4688d08fbb..27e4662c922 100644 --- a/Lib/test/string_tests.py +++ b/Lib/test/string_tests.py @@ -19,7 +19,7 @@ class BadSeq2(Sequence): def __init__(self): self.seq = ['a', 'b', 'c'] def __len__(self): return 8 -class BaseTest(unittest.TestCase): +class BaseTest: # These tests are for buffers of values (bytes) and not # specific to character interpretation, used for bytes objects # and various string implementations diff --git a/Lib/test/test_bytes.py b/Lib/test/test_bytes.py index f88c2429228..26cb4980917 100644 --- a/Lib/test/test_bytes.py +++ b/Lib/test/test_bytes.py @@ -38,7 +38,7 @@ class Indexable: return self.value -class BaseBytesTest(unittest.TestCase): +class BaseBytesTest: def test_basics(self): b = self.type2test() @@ -682,7 +682,7 @@ class BaseBytesTest(unittest.TestCase): x, None, None, None) -class BytesTest(BaseBytesTest): +class BytesTest(BaseBytesTest, unittest.TestCase): type2test = bytes def test_buffer_is_readonly(self): @@ -730,7 +730,7 @@ class BytesTest(BaseBytesTest): b's:cstr') -class ByteArrayTest(BaseBytesTest): +class ByteArrayTest(BaseBytesTest, unittest.TestCase): type2test = bytearray def test_nohash(self): @@ -1293,16 +1293,16 @@ class FixedStringTest(test.string_tests.BaseTest): def test_lower(self): pass -class ByteArrayAsStringTest(FixedStringTest): +class ByteArrayAsStringTest(FixedStringTest, unittest.TestCase): type2test = bytearray contains_bytes = True -class BytesAsStringTest(FixedStringTest): +class BytesAsStringTest(FixedStringTest, unittest.TestCase): type2test = bytes contains_bytes = True -class SubclassTest(unittest.TestCase): +class SubclassTest: def test_basic(self): self.assertTrue(issubclass(self.subclass2test, self.type2test)) @@ -1374,7 +1374,7 @@ class ByteArraySubclass(bytearray): class BytesSubclass(bytes): pass -class ByteArraySubclassTest(SubclassTest): +class ByteArraySubclassTest(SubclassTest, unittest.TestCase): type2test = bytearray subclass2test = ByteArraySubclass @@ -1389,16 +1389,10 @@ class ByteArraySubclassTest(SubclassTest): self.assertEqual(x, b"abcd") -class BytesSubclassTest(SubclassTest): +class BytesSubclassTest(SubclassTest, unittest.TestCase): type2test = bytes subclass2test = BytesSubclass -def test_main(): - test.support.run_unittest( - BytesTest, AssortedBytesTest, BytesAsStringTest, - ByteArrayTest, ByteArrayAsStringTest, BytesSubclassTest, - ByteArraySubclassTest, BytearrayPEP3137Test) - if __name__ == "__main__": - test_main() + unittest.main() diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py index 9aaedd3fab5..8fccab3cb8b 100644 --- a/Lib/test/test_unicode.py +++ b/Lib/test/test_unicode.py @@ -33,7 +33,8 @@ codecs.register(search_function) class UnicodeTest(string_tests.CommonTest, string_tests.MixinStrUnicodeUserStringTest, - string_tests.MixinStrUnicodeTest): + string_tests.MixinStrUnicodeTest, + unittest.TestCase): type2test = str @@ -2218,8 +2219,5 @@ class StringModuleTest(unittest.TestCase): self.assertRaises(TypeError, _string.formatter_field_name_split, 1) -def test_main(): - support.run_unittest(__name__) - if __name__ == "__main__": - test_main() + unittest.main() diff --git a/Lib/test/test_userstring.py b/Lib/test/test_userstring.py index d5d0c894313..71fcac25e13 100755 --- a/Lib/test/test_userstring.py +++ b/Lib/test/test_userstring.py @@ -3,6 +3,7 @@ # UserString instances should behave similar to builtin string objects. import string +import unittest from test import support, string_tests from collections import UserString @@ -10,6 +11,7 @@ from collections import UserString class UserStringTest( string_tests.CommonTest, string_tests.MixinStrUnicodeUserStringTest, + unittest.TestCase ): type2test = UserString @@ -42,8 +44,5 @@ class UserStringTest( getattr(object, methodname)(*args) -def test_main(): - support.run_unittest(UserStringTest) - if __name__ == "__main__": - test_main() + unittest.main() diff --git a/Misc/NEWS b/Misc/NEWS index a70acd94051..0c1be4610df 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -408,6 +408,9 @@ Library Tests ----- +- Issue #16910: test_bytes, test_unicode, and test_userstring now work with + unittest test discovery. Patch by Zachary Ware. + - Issue #16905: test_warnings now works with unittest test discovery. Initial patch by Berker Peksag.