From cb157ab173d4bf72f6408ac3903cd7acb42103c2 Mon Sep 17 00:00:00 2001 From: R David Murray Date: Mon, 21 Mar 2011 15:46:55 -0400 Subject: [PATCH] Move email tests to Lib/test package and modernize test runner machinery --- Lib/test/test_email.py | 14 ------------ Lib/test/test_email/__init__.py | 13 +++++++++++ Lib/test/test_email/__main__.py | 3 +++ .../test => test/test_email}/data/msg_01.txt | 0 .../test => test/test_email}/data/msg_02.txt | 0 .../test => test/test_email}/data/msg_03.txt | 0 .../test => test/test_email}/data/msg_04.txt | 0 .../test => test/test_email}/data/msg_05.txt | 0 .../test => test/test_email}/data/msg_06.txt | 0 .../test => test/test_email}/data/msg_07.txt | 0 .../test => test/test_email}/data/msg_08.txt | 0 .../test => test/test_email}/data/msg_09.txt | 0 .../test => test/test_email}/data/msg_10.txt | 0 .../test => test/test_email}/data/msg_11.txt | 0 .../test => test/test_email}/data/msg_12.txt | 0 .../test => test/test_email}/data/msg_12a.txt | 0 .../test => test/test_email}/data/msg_13.txt | 0 .../test => test/test_email}/data/msg_14.txt | 0 .../test => test/test_email}/data/msg_15.txt | 0 .../test => test/test_email}/data/msg_16.txt | 0 .../test => test/test_email}/data/msg_17.txt | 0 .../test => test/test_email}/data/msg_18.txt | 0 .../test => test/test_email}/data/msg_19.txt | 0 .../test => test/test_email}/data/msg_20.txt | 0 .../test => test/test_email}/data/msg_21.txt | 0 .../test => test/test_email}/data/msg_22.txt | 0 .../test => test/test_email}/data/msg_23.txt | 0 .../test => test/test_email}/data/msg_24.txt | 0 .../test => test/test_email}/data/msg_25.txt | 0 .../test => test/test_email}/data/msg_26.txt | 0 .../test => test/test_email}/data/msg_27.txt | 0 .../test => test/test_email}/data/msg_28.txt | 0 .../test => test/test_email}/data/msg_29.txt | 0 .../test => test/test_email}/data/msg_30.txt | 0 .../test => test/test_email}/data/msg_31.txt | 0 .../test => test/test_email}/data/msg_32.txt | 0 .../test => test/test_email}/data/msg_33.txt | 0 .../test => test/test_email}/data/msg_34.txt | 0 .../test => test/test_email}/data/msg_35.txt | 0 .../test => test/test_email}/data/msg_36.txt | 0 .../test => test/test_email}/data/msg_37.txt | 0 .../test => test/test_email}/data/msg_38.txt | 0 .../test => test/test_email}/data/msg_39.txt | 0 .../test => test/test_email}/data/msg_40.txt | 0 .../test => test/test_email}/data/msg_41.txt | 0 .../test => test/test_email}/data/msg_42.txt | 0 .../test => test/test_email}/data/msg_43.txt | 0 .../test => test/test_email}/data/msg_44.txt | 0 .../test => test/test_email}/data/msg_45.txt | 0 .../test => test/test_email}/data/msg_46.txt | 0 .../test_email/test_asian_codecs.py} | 15 ++----------- .../test => test/test_email}/test_email.py | 22 ++----------------- .../test_email/torture_test.py} | 0 Misc/NEWS | 5 +++++ 54 files changed, 25 insertions(+), 47 deletions(-) delete mode 100644 Lib/test/test_email.py create mode 100644 Lib/test/test_email/__init__.py create mode 100644 Lib/test/test_email/__main__.py rename Lib/{email/test => test/test_email}/data/msg_01.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_02.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_03.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_04.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_05.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_06.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_07.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_08.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_09.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_10.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_11.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_12.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_12a.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_13.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_14.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_15.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_16.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_17.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_18.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_19.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_20.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_21.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_22.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_23.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_24.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_25.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_26.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_27.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_28.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_29.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_30.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_31.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_32.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_33.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_34.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_35.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_36.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_37.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_38.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_39.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_40.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_41.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_42.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_43.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_44.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_45.txt (100%) rename Lib/{email/test => test/test_email}/data/msg_46.txt (100%) rename Lib/{email/test/test_email_codecs.py => test/test_email/test_asian_codecs.py} (91%) rename Lib/{email/test => test/test_email}/test_email.py (99%) rename Lib/{email/test/test_email_torture.py => test/test_email/torture_test.py} (100%) diff --git a/Lib/test/test_email.py b/Lib/test/test_email.py deleted file mode 100644 index 5eebba5590..0000000000 --- a/Lib/test/test_email.py +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (C) 2001-2007 Python Software Foundation -# email package unit tests - -# The specific tests now live in Lib/email/test -from email.test.test_email import suite -from email.test.test_email_codecs import suite as codecs_suite -from test import support - -def test_main(): - support.run_unittest(suite()) - support.run_unittest(codecs_suite()) - -if __name__ == '__main__': - test_main() diff --git a/Lib/test/test_email/__init__.py b/Lib/test/test_email/__init__.py new file mode 100644 index 0000000000..5aae093b40 --- /dev/null +++ b/Lib/test/test_email/__init__.py @@ -0,0 +1,13 @@ +import os +import sys +import unittest +import test.support + +# used by regrtest and __main__. +def test_main(): + here = os.path.dirname(__file__) + # Unittest mucks with the path, so we have to save and restore + # it to keep regrtest happy. + savepath = sys.path[:] + test.support._run_suite(unittest.defaultTestLoader.discover(here)) + sys.path[:] = savepath diff --git a/Lib/test/test_email/__main__.py b/Lib/test/test_email/__main__.py new file mode 100644 index 0000000000..98af9ecbad --- /dev/null +++ b/Lib/test/test_email/__main__.py @@ -0,0 +1,3 @@ +from test.test_email import test_main + +test_main() diff --git a/Lib/email/test/data/msg_01.txt b/Lib/test/test_email/data/msg_01.txt similarity index 100% rename from Lib/email/test/data/msg_01.txt rename to Lib/test/test_email/data/msg_01.txt diff --git a/Lib/email/test/data/msg_02.txt b/Lib/test/test_email/data/msg_02.txt similarity index 100% rename from Lib/email/test/data/msg_02.txt rename to Lib/test/test_email/data/msg_02.txt diff --git a/Lib/email/test/data/msg_03.txt b/Lib/test/test_email/data/msg_03.txt similarity index 100% rename from Lib/email/test/data/msg_03.txt rename to Lib/test/test_email/data/msg_03.txt diff --git a/Lib/email/test/data/msg_04.txt b/Lib/test/test_email/data/msg_04.txt similarity index 100% rename from Lib/email/test/data/msg_04.txt rename to Lib/test/test_email/data/msg_04.txt diff --git a/Lib/email/test/data/msg_05.txt b/Lib/test/test_email/data/msg_05.txt similarity index 100% rename from Lib/email/test/data/msg_05.txt rename to Lib/test/test_email/data/msg_05.txt diff --git a/Lib/email/test/data/msg_06.txt b/Lib/test/test_email/data/msg_06.txt similarity index 100% rename from Lib/email/test/data/msg_06.txt rename to Lib/test/test_email/data/msg_06.txt diff --git a/Lib/email/test/data/msg_07.txt b/Lib/test/test_email/data/msg_07.txt similarity index 100% rename from Lib/email/test/data/msg_07.txt rename to Lib/test/test_email/data/msg_07.txt diff --git a/Lib/email/test/data/msg_08.txt b/Lib/test/test_email/data/msg_08.txt similarity index 100% rename from Lib/email/test/data/msg_08.txt rename to Lib/test/test_email/data/msg_08.txt diff --git a/Lib/email/test/data/msg_09.txt b/Lib/test/test_email/data/msg_09.txt similarity index 100% rename from Lib/email/test/data/msg_09.txt rename to Lib/test/test_email/data/msg_09.txt diff --git a/Lib/email/test/data/msg_10.txt b/Lib/test/test_email/data/msg_10.txt similarity index 100% rename from Lib/email/test/data/msg_10.txt rename to Lib/test/test_email/data/msg_10.txt diff --git a/Lib/email/test/data/msg_11.txt b/Lib/test/test_email/data/msg_11.txt similarity index 100% rename from Lib/email/test/data/msg_11.txt rename to Lib/test/test_email/data/msg_11.txt diff --git a/Lib/email/test/data/msg_12.txt b/Lib/test/test_email/data/msg_12.txt similarity index 100% rename from Lib/email/test/data/msg_12.txt rename to Lib/test/test_email/data/msg_12.txt diff --git a/Lib/email/test/data/msg_12a.txt b/Lib/test/test_email/data/msg_12a.txt similarity index 100% rename from Lib/email/test/data/msg_12a.txt rename to Lib/test/test_email/data/msg_12a.txt diff --git a/Lib/email/test/data/msg_13.txt b/Lib/test/test_email/data/msg_13.txt similarity index 100% rename from Lib/email/test/data/msg_13.txt rename to Lib/test/test_email/data/msg_13.txt diff --git a/Lib/email/test/data/msg_14.txt b/Lib/test/test_email/data/msg_14.txt similarity index 100% rename from Lib/email/test/data/msg_14.txt rename to Lib/test/test_email/data/msg_14.txt diff --git a/Lib/email/test/data/msg_15.txt b/Lib/test/test_email/data/msg_15.txt similarity index 100% rename from Lib/email/test/data/msg_15.txt rename to Lib/test/test_email/data/msg_15.txt diff --git a/Lib/email/test/data/msg_16.txt b/Lib/test/test_email/data/msg_16.txt similarity index 100% rename from Lib/email/test/data/msg_16.txt rename to Lib/test/test_email/data/msg_16.txt diff --git a/Lib/email/test/data/msg_17.txt b/Lib/test/test_email/data/msg_17.txt similarity index 100% rename from Lib/email/test/data/msg_17.txt rename to Lib/test/test_email/data/msg_17.txt diff --git a/Lib/email/test/data/msg_18.txt b/Lib/test/test_email/data/msg_18.txt similarity index 100% rename from Lib/email/test/data/msg_18.txt rename to Lib/test/test_email/data/msg_18.txt diff --git a/Lib/email/test/data/msg_19.txt b/Lib/test/test_email/data/msg_19.txt similarity index 100% rename from Lib/email/test/data/msg_19.txt rename to Lib/test/test_email/data/msg_19.txt diff --git a/Lib/email/test/data/msg_20.txt b/Lib/test/test_email/data/msg_20.txt similarity index 100% rename from Lib/email/test/data/msg_20.txt rename to Lib/test/test_email/data/msg_20.txt diff --git a/Lib/email/test/data/msg_21.txt b/Lib/test/test_email/data/msg_21.txt similarity index 100% rename from Lib/email/test/data/msg_21.txt rename to Lib/test/test_email/data/msg_21.txt diff --git a/Lib/email/test/data/msg_22.txt b/Lib/test/test_email/data/msg_22.txt similarity index 100% rename from Lib/email/test/data/msg_22.txt rename to Lib/test/test_email/data/msg_22.txt diff --git a/Lib/email/test/data/msg_23.txt b/Lib/test/test_email/data/msg_23.txt similarity index 100% rename from Lib/email/test/data/msg_23.txt rename to Lib/test/test_email/data/msg_23.txt diff --git a/Lib/email/test/data/msg_24.txt b/Lib/test/test_email/data/msg_24.txt similarity index 100% rename from Lib/email/test/data/msg_24.txt rename to Lib/test/test_email/data/msg_24.txt diff --git a/Lib/email/test/data/msg_25.txt b/Lib/test/test_email/data/msg_25.txt similarity index 100% rename from Lib/email/test/data/msg_25.txt rename to Lib/test/test_email/data/msg_25.txt diff --git a/Lib/email/test/data/msg_26.txt b/Lib/test/test_email/data/msg_26.txt similarity index 100% rename from Lib/email/test/data/msg_26.txt rename to Lib/test/test_email/data/msg_26.txt diff --git a/Lib/email/test/data/msg_27.txt b/Lib/test/test_email/data/msg_27.txt similarity index 100% rename from Lib/email/test/data/msg_27.txt rename to Lib/test/test_email/data/msg_27.txt diff --git a/Lib/email/test/data/msg_28.txt b/Lib/test/test_email/data/msg_28.txt similarity index 100% rename from Lib/email/test/data/msg_28.txt rename to Lib/test/test_email/data/msg_28.txt diff --git a/Lib/email/test/data/msg_29.txt b/Lib/test/test_email/data/msg_29.txt similarity index 100% rename from Lib/email/test/data/msg_29.txt rename to Lib/test/test_email/data/msg_29.txt diff --git a/Lib/email/test/data/msg_30.txt b/Lib/test/test_email/data/msg_30.txt similarity index 100% rename from Lib/email/test/data/msg_30.txt rename to Lib/test/test_email/data/msg_30.txt diff --git a/Lib/email/test/data/msg_31.txt b/Lib/test/test_email/data/msg_31.txt similarity index 100% rename from Lib/email/test/data/msg_31.txt rename to Lib/test/test_email/data/msg_31.txt diff --git a/Lib/email/test/data/msg_32.txt b/Lib/test/test_email/data/msg_32.txt similarity index 100% rename from Lib/email/test/data/msg_32.txt rename to Lib/test/test_email/data/msg_32.txt diff --git a/Lib/email/test/data/msg_33.txt b/Lib/test/test_email/data/msg_33.txt similarity index 100% rename from Lib/email/test/data/msg_33.txt rename to Lib/test/test_email/data/msg_33.txt diff --git a/Lib/email/test/data/msg_34.txt b/Lib/test/test_email/data/msg_34.txt similarity index 100% rename from Lib/email/test/data/msg_34.txt rename to Lib/test/test_email/data/msg_34.txt diff --git a/Lib/email/test/data/msg_35.txt b/Lib/test/test_email/data/msg_35.txt similarity index 100% rename from Lib/email/test/data/msg_35.txt rename to Lib/test/test_email/data/msg_35.txt diff --git a/Lib/email/test/data/msg_36.txt b/Lib/test/test_email/data/msg_36.txt similarity index 100% rename from Lib/email/test/data/msg_36.txt rename to Lib/test/test_email/data/msg_36.txt diff --git a/Lib/email/test/data/msg_37.txt b/Lib/test/test_email/data/msg_37.txt similarity index 100% rename from Lib/email/test/data/msg_37.txt rename to Lib/test/test_email/data/msg_37.txt diff --git a/Lib/email/test/data/msg_38.txt b/Lib/test/test_email/data/msg_38.txt similarity index 100% rename from Lib/email/test/data/msg_38.txt rename to Lib/test/test_email/data/msg_38.txt diff --git a/Lib/email/test/data/msg_39.txt b/Lib/test/test_email/data/msg_39.txt similarity index 100% rename from Lib/email/test/data/msg_39.txt rename to Lib/test/test_email/data/msg_39.txt diff --git a/Lib/email/test/data/msg_40.txt b/Lib/test/test_email/data/msg_40.txt similarity index 100% rename from Lib/email/test/data/msg_40.txt rename to Lib/test/test_email/data/msg_40.txt diff --git a/Lib/email/test/data/msg_41.txt b/Lib/test/test_email/data/msg_41.txt similarity index 100% rename from Lib/email/test/data/msg_41.txt rename to Lib/test/test_email/data/msg_41.txt diff --git a/Lib/email/test/data/msg_42.txt b/Lib/test/test_email/data/msg_42.txt similarity index 100% rename from Lib/email/test/data/msg_42.txt rename to Lib/test/test_email/data/msg_42.txt diff --git a/Lib/email/test/data/msg_43.txt b/Lib/test/test_email/data/msg_43.txt similarity index 100% rename from Lib/email/test/data/msg_43.txt rename to Lib/test/test_email/data/msg_43.txt diff --git a/Lib/email/test/data/msg_44.txt b/Lib/test/test_email/data/msg_44.txt similarity index 100% rename from Lib/email/test/data/msg_44.txt rename to Lib/test/test_email/data/msg_44.txt diff --git a/Lib/email/test/data/msg_45.txt b/Lib/test/test_email/data/msg_45.txt similarity index 100% rename from Lib/email/test/data/msg_45.txt rename to Lib/test/test_email/data/msg_45.txt diff --git a/Lib/email/test/data/msg_46.txt b/Lib/test/test_email/data/msg_46.txt similarity index 100% rename from Lib/email/test/data/msg_46.txt rename to Lib/test/test_email/data/msg_46.txt diff --git a/Lib/email/test/test_email_codecs.py b/Lib/test/test_email/test_asian_codecs.py similarity index 91% rename from Lib/email/test/test_email_codecs.py rename to Lib/test/test_email/test_asian_codecs.py index ca85f5731e..a4dd9a9235 100644 --- a/Lib/email/test/test_email_codecs.py +++ b/Lib/test/test_email/test_asian_codecs.py @@ -5,7 +5,7 @@ import unittest from test.support import run_unittest -from email.test.test_email import TestEmailBase +from test.test_email.test_email import TestEmailBase from email.charset import Charset from email.header import Header, decode_header from email.message import Message @@ -77,17 +77,6 @@ Hello World! =?iso-2022-jp?b?GyRCJU8lbSE8JW8hPCVrJUkhKhsoQg==?= self.assertEqual(jhello, ustr) - -def suite(): - suite = unittest.TestSuite() - suite.addTest(unittest.makeSuite(TestEmailAsianCodecs)) - return suite - - -def test_main(): - run_unittest(TestEmailAsianCodecs) - - if __name__ == '__main__': - unittest.main(defaultTest='suite') + unittest.main() diff --git a/Lib/email/test/test_email.py b/Lib/test/test_email/test_email.py similarity index 99% rename from Lib/email/test/test_email.py rename to Lib/test/test_email/test_email.py index d14e2232a2..29dd0fc7ab 100644 --- a/Lib/email/test/test_email.py +++ b/Lib/test/test_email/test_email.py @@ -37,7 +37,7 @@ from email import base64mime from email import quoprimime from test.support import findfile, run_unittest, unlink -from email.test import __file__ as landmark +from test.test_email import __file__ as landmark NL = '\n' @@ -4142,23 +4142,5 @@ class TestSigned(TestEmailBase): -def _testclasses(): - mod = sys.modules[__name__] - return [getattr(mod, name) for name in dir(mod) if name.startswith('Test')] - - -def suite(): - suite = unittest.TestSuite() - for testclass in _testclasses(): - suite.addTest(unittest.makeSuite(testclass)) - return suite - - -def test_main(): - for testclass in _testclasses(): - run_unittest(testclass) - - - if __name__ == '__main__': - unittest.main(defaultTest='suite') + unittest.main() diff --git a/Lib/email/test/test_email_torture.py b/Lib/test/test_email/torture_test.py similarity index 100% rename from Lib/email/test/test_email_torture.py rename to Lib/test/test_email/torture_test.py diff --git a/Misc/NEWS b/Misc/NEWS index 992ef8f54a..76b42b8520 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -278,6 +278,11 @@ Tools/Demos Tests ----- +- The email test suite now lives in the Lib/test/test_email package. The test + harness code has also been modernized to allow use of new unittest features. + +- regrtest now discovers test packages as well as test modules. + - Issue #11577: improve test coverage of binhex.py. Patch by Arkady Koplyarov. - New test_crashers added to exercise the scripts in the Lib/test/crashers -- 2.50.1