From 0487c2e77daf9373d40b40358253abac4a8f7029 Mon Sep 17 00:00:00 2001 From: Michel Alexandre Salim Date: Apr 04 2020 00:35:53 +0000 Subject: Update to 2.4.0 --- diff --git a/.gitignore b/.gitignore index d79e64f..2f4f652 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -/testtools-2.3.0.tar.gz +/testtools-2.4.0.tar.gz diff --git a/python-testtools.spec b/python-testtools.spec index 29d285b..687a06e 100644 --- a/python-testtools.spec +++ b/python-testtools.spec @@ -2,18 +2,14 @@ %bcond_without docs Name: python-testtools -Version: 2.3.0 -Release: 18%{?dist} +Version: 2.4.0 +Release: 1%{?dist} Summary: Extensions to the Python unit testing framework License: MIT URL: https://launchpad.net/testtools Source0: https://pypi.io/packages/source/t/testtools/testtools-%{version}.tar.gz -Patch0: testtools-1.8.0-py3.patch - -# https://github.com/testing-cabal/testtools/pull/271 -Patch1: testtools-2.3.0-py37.patch -Patch2: remove_backports.patch +Patch0: testtools-2.4.0-remove_backports.patch BuildArch: noarch @@ -62,14 +58,7 @@ This package contains HTML documentation for %{name}. %prep -%setup -q -n testtools-%{version} -%patch1 -p1 -b .py37 - - -# make the Python 3 build load the Python 3.x compatibility library directly -%patch0 -p1 -b .py3 -%patch2 -p1 - +%autosetup -p1 -n testtools-%{version} find . -name '*.py' | xargs sed -i '1s|^#!python|#!%{__python3}|' rm testtools/_compat2x.py @@ -103,6 +92,9 @@ make PYTHON=%{__python3} check %changelog +* Fri Apr 3 2020 Michel Alexandre Salim - 2.4.0-1 +- Update to 2.4.0 + * Thu Feb 20 2020 Avram Lubkin - 2.3.0-18 - Patch to remove unittest2 and traceback2 from source diff --git a/remove_backports.patch b/remove_backports.patch deleted file mode 100644 index 45885b8..0000000 --- a/remove_backports.patch +++ /dev/null @@ -1,288 +0,0 @@ -diff -ru testtools-2.3.0-orig/requirements.txt testtools-2.3.0/requirements.txt ---- testtools-2.3.0-orig/requirements.txt 2016-10-22 13:21:40.000000000 -0400 -+++ testtools-2.3.0/requirements.txt 2020-01-22 19:26:30.863707850 -0500 -@@ -4,6 +4,4 @@ - # 'mimeparse' has not been uploaded by the maintainer with Python3 compat - # but someone kindly uploaded a fixed version as 'python-mimeparse'. - python-mimeparse --unittest2>=1.0.0 --traceback2 - six>=1.4.0 -diff -ru testtools-2.3.0-orig/setup.cfg testtools-2.3.0/setup.cfg ---- testtools-2.3.0-orig/setup.cfg 2017-05-11 09:48:50.000000000 -0400 -+++ testtools-2.3.0/setup.cfg 2020-01-22 19:22:54.808892653 -0500 -@@ -5,15 +5,14 @@ - description-file = doc/overview.rst - author = Jonathan M. Lange - author-email = jml+testtools@mumak.net --classifier = -+classifier = - License :: OSI Approved :: MIT License - Programming Language :: Python :: 3 - - [extras] --test = -+test = - testscenarios - testresources -- unittest2>=1.1.0 - - [files] - packages = testtools -@@ -24,5 +23,4 @@ - [egg_info] - tag_date = 0 - tag_svn_revision = 0 --tag_build = -- -+tag_build = -diff -ru testtools-2.3.0-orig/testtools/compat.py testtools-2.3.0/testtools/compat.py ---- testtools-2.3.0-orig/testtools/compat.py 2016-10-22 13:21:40.000000000 -0400 -+++ testtools-2.3.0/testtools/compat.py 2020-01-22 19:38:36.628892814 -0500 -@@ -223,5 +223,3 @@ - # no benefit in asking more than once as it's a global - # setting that can change after the message is formatted. - return locale.getlocale(locale.LC_MESSAGES)[1] or "ascii" -- -- -diff -ru testtools-2.3.0-orig/testtools/content.py testtools-2.3.0/testtools/content.py ---- testtools-2.3.0-orig/testtools/content.py 2016-11-07 12:24:31.000000000 -0500 -+++ testtools-2.3.0/testtools/content.py 2020-01-22 19:26:25.914712083 -0500 -@@ -17,10 +17,9 @@ - import json - import os - import sys -+import traceback - - from extras import try_import --# To let setup.py work, make this a conditional import. --traceback = try_import('traceback2') - - from testtools.compat import ( - _b, -diff -ru testtools-2.3.0-orig/testtools/run.py testtools-2.3.0/testtools/run.py ---- testtools-2.3.0-orig/testtools/run.py 2017-04-11 10:30:44.000000000 -0400 -+++ testtools-2.3.0/testtools/run.py 2020-01-22 19:57:16.088133809 -0500 -@@ -12,10 +12,10 @@ - from functools import partial - import os.path - import sys -+import unittest - - from extras import safe_hasattr, try_imports - # To let setup.py work, make this a conditional import. --unittest = try_imports(['unittest2', 'unittest']) - - from testtools import TextTestResult, testcase - from testtools.compat import classtypes, istext, unicode_output_stream -@@ -50,7 +50,6 @@ - describing things that failed to import. - """ - unittest_import_strs = set([ -- 'unittest2.loader.ModuleImportFailure.', - 'unittest.loader.ModuleImportFailure.', - 'discover.ModuleImportFailure.' - ]) -diff -ru testtools-2.3.0-orig/testtools/testcase.py testtools-2.3.0/testtools/testcase.py ---- testtools-2.3.0-orig/testtools/testcase.py 2017-01-30 13:43:16.000000000 -0500 -+++ testtools-2.3.0/testtools/testcase.py 2020-01-22 20:11:05.944826324 -0500 -@@ -20,6 +20,7 @@ - import functools - import itertools - import sys -+import unittest - import warnings - - from extras import ( -@@ -28,7 +29,6 @@ - try_imports, - ) - # To let setup.py work, make this a conditional import. --unittest = try_imports(['unittest2', 'unittest']) - import six - - from testtools import ( -@@ -62,23 +62,8 @@ - - wraps = try_import('functools.wraps') - -- --class TestSkipped(Exception): -- """Raised within TestCase.run() when a test is skipped.""" --TestSkipped = try_import('unittest.case.SkipTest', TestSkipped) --TestSkipped = try_import('unittest2.case.SkipTest', TestSkipped) -- -- --class _UnexpectedSuccess(Exception): -- """An unexpected success was raised. -- -- Note that this exception is private plumbing in testtools' testcase -- module. -- """ --_UnexpectedSuccess = try_import( -- 'unittest.case._UnexpectedSuccess', _UnexpectedSuccess) --_UnexpectedSuccess = try_import( -- 'unittest2.case._UnexpectedSuccess', _UnexpectedSuccess) -+from unittest.case import SkipTest as TestSkipped -+from unittest.case import _UnexpectedSuccess - - - class _ExpectedFailure(Exception): -@@ -87,10 +72,6 @@ - Note that this exception is private plumbing in testtools' testcase - module. - """ --_ExpectedFailure = try_import( -- 'unittest.case._ExpectedFailure', _ExpectedFailure) --_ExpectedFailure = try_import( -- 'unittest2.case._ExpectedFailure', _ExpectedFailure) - - - # Copied from unittest before python 3.4 release. Used to maintain -diff -ru testtools-2.3.0-orig/testtools/tests/test_compat.py testtools-2.3.0/testtools/tests/test_compat.py ---- testtools-2.3.0-orig/testtools/tests/test_compat.py 2016-10-22 13:21:40.000000000 -0400 -+++ testtools-2.3.0/testtools/tests/test_compat.py 2020-01-22 19:27:16.335668952 -0500 -@@ -3,7 +3,7 @@ - """Tests for miscellaneous compatibility functions""" - - import io --import linecache2 as linecache -+import linecache - import os - import sys - import tempfile -diff -ru testtools-2.3.0-orig/testtools/tests/test_run.py testtools-2.3.0/testtools/tests/test_run.py ---- testtools-2.3.0-orig/testtools/tests/test_run.py 2016-10-22 13:21:40.000000000 -0400 -+++ testtools-2.3.0/testtools/tests/test_run.py 2020-01-22 19:23:26.011865968 -0500 -@@ -10,7 +10,7 @@ - from extras import try_import - fixtures = try_import('fixtures') - testresources = try_import('testresources') --import unittest2 -+import unittest - - import testtools - from testtools import TestCase, run, skipUnless -@@ -195,13 +195,13 @@ - broken = self.useFixture(SampleTestFixture(broken=True)) - out = StringIO() - # XXX: http://bugs.python.org/issue22811 -- unittest2.defaultTestLoader._top_level_dir = None -+ unittest.defaultTestLoader._top_level_dir = None - exc = self.assertRaises( - SystemExit, - run.main, ['prog', 'discover', '-l', broken.package.base, '*.py'], out) - self.assertEqual(2, exc.args[0]) - self.assertThat(out.getvalue(), DocTestMatches("""\ --unittest2.loader._FailedTest.runexample -+unittest.loader._FailedTest.runexample - Failed to import test module: runexample - Traceback (most recent call last): - File ".../loader.py", line ..., in _find_test_path -@@ -345,7 +345,7 @@ - pkg = self.useFixture(SampleLoadTestsPackage()) - out = StringIO() - # XXX: http://bugs.python.org/issue22811 -- unittest2.defaultTestLoader._top_level_dir = None -+ unittest.defaultTestLoader._top_level_dir = None - self.assertEqual(None, run.main( - ['prog', 'discover', '-l', pkg.package.base], out)) - self.assertEqual(dedent("""\ -diff -ru testtools-2.3.0-orig/testtools/tests/test_testsuite.py testtools-2.3.0/testtools/tests/test_testsuite.py ---- testtools-2.3.0-orig/testtools/tests/test_testsuite.py 2016-11-26 11:20:14.000000000 -0500 -+++ testtools-2.3.0/testtools/tests/test_testsuite.py 2020-01-22 20:00:51.324138620 -0500 -@@ -5,7 +5,7 @@ - import doctest - from pprint import pformat - import unittest --import unittest2 -+import unittest - - from extras import try_import - -@@ -223,9 +223,9 @@ - raise cls.skipException('foo') - def test_notrun(self): - pass -- # Test discovery uses the default suite from unittest2 (unless users -+ # Test discovery uses the default suite from unittest (unless users - # deliberately change things, in which case they keep both pieces). -- suite = unittest2.TestSuite([Skips("test_notrun")]) -+ suite = unittest.TestSuite([Skips("test_notrun")]) - log = [] - result = LoggingResult(log) - suite.run(result) -@@ -240,9 +240,9 @@ - super(Simples, cls).setUpClass() - def test_simple(self): - pass -- # Test discovery uses the default suite from unittest2 (unless users -+ # Test discovery uses the default suite from unittest (unless users - # deliberately change things, in which case they keep both pieces). -- suite = unittest2.TestSuite([Simples("test_simple")]) -+ suite = unittest.TestSuite([Simples("test_simple")]) - log = [] - result = LoggingResult(log) - suite.run(result) -diff -ru testtools-2.3.0-orig/testtools/tests/twistedsupport/test_deferred.py testtools-2.3.0/testtools/tests/twistedsupport/test_deferred.py ---- testtools-2.3.0-orig/testtools/tests/twistedsupport/test_deferred.py 2016-10-22 13:21:40.000000000 -0400 -+++ testtools-2.3.0/testtools/tests/twistedsupport/test_deferred.py 2020-01-22 19:24:51.892792510 -0500 -@@ -52,5 +52,5 @@ - - - def test_suite(): -- from unittest2 import TestLoader, TestSuite -+ from unittest import TestLoader, TestSuite - return TestLoader().loadTestsFromName(__name__) -diff -ru testtools-2.3.0-orig/testtools/tests/twistedsupport/test_matchers.py testtools-2.3.0/testtools/tests/twistedsupport/test_matchers.py ---- testtools-2.3.0-orig/testtools/tests/twistedsupport/test_matchers.py 2016-10-22 13:21:40.000000000 -0400 -+++ testtools-2.3.0/testtools/tests/twistedsupport/test_matchers.py 2020-01-22 19:24:56.353788694 -0500 -@@ -205,5 +205,5 @@ - - - def test_suite(): -- from unittest2 import TestLoader, TestSuite -+ from unittest import TestLoader, TestSuite - return TestLoader().loadTestsFromName(__name__) -diff -ru testtools-2.3.0-orig/testtools/tests/twistedsupport/test_runtest.py testtools-2.3.0/testtools/tests/twistedsupport/test_runtest.py ---- testtools-2.3.0-orig/testtools/tests/twistedsupport/test_runtest.py 2016-10-22 13:21:40.000000000 -0400 -+++ testtools-2.3.0/testtools/tests/twistedsupport/test_runtest.py 2020-01-22 19:25:00.501785145 -0500 -@@ -1016,7 +1016,7 @@ - - - def test_suite(): -- from unittest2 import TestLoader, TestSuite -+ from unittest import TestLoader, TestSuite - return TestLoader().loadTestsFromName(__name__) - - -diff -ru testtools-2.3.0-orig/testtools/testsuite.py testtools-2.3.0/testtools/testsuite.py ---- testtools-2.3.0-orig/testtools/testsuite.py 2016-10-22 13:21:40.000000000 -0400 -+++ testtools-2.3.0/testtools/testsuite.py 2020-01-22 20:00:22.049153497 -0500 -@@ -16,8 +16,6 @@ - import unittest - - from extras import safe_hasattr, try_imports --# This is just to let setup.py work, as testtools is imported in setup.py. --unittest2 = try_imports(['unittest2', 'unittest']) - Queue = try_imports(['Queue.Queue', 'queue.Queue']) - - import testtools -@@ -35,7 +33,7 @@ - yield subtest - - --class ConcurrentTestSuite(unittest2.TestSuite): -+class ConcurrentTestSuite(unittest.TestSuite): - """A TestSuite whose run() calls out to a concurrency strategy.""" - - def __init__(self, suite, make_tests, wrap_result=None): -@@ -198,7 +196,7 @@ - process_result.stopTestRun() - - --class FixtureSuite(unittest2.TestSuite): -+class FixtureSuite(unittest.TestSuite): - - def __init__(self, fixture, tests): - super(FixtureSuite, self).__init__(tests) diff --git a/sources b/sources index 425bab6..e465412 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (testtools-2.3.0.tar.gz) = 558fe6a1bdce7215f9f6f178f469a2b76948dc7ff0ce27400482a16683474edb81d9bf90ae48b6fcb8df9eb70759341b694aa162ed3d9d4abd372981cdcd8a64 +SHA512 (testtools-2.4.0.tar.gz) = af26e163a4caeb207a554b19f86c7892ab5ebe904c144d85273464e880cd18a991c70a77ff817aefb15768fa38f382e9ed853cdefb212dc697b24072e17535c0 diff --git a/testtools-1.8.0-py3.patch b/testtools-1.8.0-py3.patch deleted file mode 100644 index e97e5ac..0000000 --- a/testtools-1.8.0-py3.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- testtools-1.8.0/testtools/compat.py.py3 2015-03-11 04:19:19.000000000 +0700 -+++ testtools-1.8.0/testtools/compat.py 2015-07-28 22:54:02.537568121 +0700 -@@ -32,10 +32,7 @@ - # To let setup.py work, make this a conditional import. - linecache = try_import('linecache2') - --try: -- from testtools import _compat2x as _compat --except SyntaxError: -- from testtools import _compat3x as _compat -+from testtools import _compat3x as _compat - - reraise = _compat.reraise - diff --git a/testtools-2.3.0-py37.patch b/testtools-2.3.0-py37.patch deleted file mode 100644 index 2241c83..0000000 --- a/testtools-2.3.0-py37.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 29004731f9c480b7c44a9c2605513d50d372898f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= -Date: Thu, 17 May 2018 17:52:26 +0200 -Subject: [PATCH] Fix the tests on Python 3.7 - -Exception's repr got changed not to include trailing comma - -Fixes https://github.com/testing-cabal/testtools/issues/270 ---- - .travis.yml | 1 + - testtools/tests/matchers/test_exception.py | 11 +++++++++-- - 2 files changed, 10 insertions(+), 2 deletions(-) - -diff --git a/.travis.yml b/.travis.yml -index 7f1f4db7..784608e0 100644 ---- a/.travis.yml -+++ b/.travis.yml -@@ -5,6 +5,7 @@ python: - - "3.4" - - "3.5" - - "3.6" -+ - "3.7-dev" - - "pypy" - - install: -diff --git a/testtools/tests/matchers/test_exception.py b/testtools/tests/matchers/test_exception.py -index 6cd80af1..acd39252 100644 ---- a/testtools/tests/matchers/test_exception.py -+++ b/testtools/tests/matchers/test_exception.py -@@ -32,15 +32,22 @@ class TestMatchesExceptionInstanceInterface(TestCase, TestMatchersInterface): - matches_matches = [error_foo] - matches_mismatches = [error_bar, error_base_foo] - -+ if sys.version_info >= (3, 7): -+ # exception's repr has changed -+ _e = '' -+ else: -+ _e = ',' -+ - str_examples = [ -- ("MatchesException(Exception('foo',))", -+ ("MatchesException(Exception('foo'%s))" % _e, - MatchesException(Exception('foo'))) - ] - describe_examples = [ - ("%r is not a %r" % (Exception, ValueError), - error_base_foo, - MatchesException(ValueError("foo"))), -- ("ValueError('bar',) has different arguments to ValueError('foo',).", -+ ("ValueError('bar'%s) has different arguments to ValueError('foo'%s)." -+ % (_e, _e), - error_bar, - MatchesException(ValueError("foo"))), - ] diff --git a/testtools-2.4.0-remove_backports.patch b/testtools-2.4.0-remove_backports.patch new file mode 100644 index 0000000..3c63f33 --- /dev/null +++ b/testtools-2.4.0-remove_backports.patch @@ -0,0 +1,298 @@ +diff -ru testtools-2.4.0-orig/requirements.txt testtools-2.4.0/requirements.txt +--- testtools-2.4.0-orig/requirements.txt 2018-04-04 16:27:14.000000000 -0700 ++++ testtools-2.4.0/requirements.txt 2020-04-03 17:03:31.776205598 -0700 +@@ -4,6 +4,4 @@ + # 'mimeparse' has not been uploaded by the maintainer with Python3 compat + # but someone kindly uploaded a fixed version as 'python-mimeparse'. + python-mimeparse +-unittest2>=1.0.0 +-traceback2 + six>=1.4.0 +diff -ru testtools-2.4.0-orig/setup.cfg testtools-2.4.0/setup.cfg +--- testtools-2.4.0-orig/setup.cfg 2020-03-14 07:30:56.000000000 -0700 ++++ testtools-2.4.0/setup.cfg 2020-04-03 17:04:37.605592118 -0700 +@@ -28,7 +28,6 @@ + test = + testscenarios + testresources +- unittest2>=1.1.0 + + [files] + packages = testtools +diff -ru testtools-2.4.0-orig/testtools/compat.py testtools-2.4.0/testtools/compat.py +--- testtools-2.4.0-orig/testtools/compat.py 2018-04-04 16:27:14.000000000 -0700 ++++ testtools-2.4.0/testtools/compat.py 2020-04-03 17:02:34.047743583 -0700 +@@ -33,10 +33,7 @@ + # To let setup.py work, make this a conditional import. + linecache = try_import('linecache2') + +-try: +- from testtools import _compat2x as _compat +-except SyntaxError: +- from testtools import _compat3x as _compat ++from testtools import _compat3x as _compat + + reraise = _compat.reraise + +diff -ru testtools-2.4.0-orig/testtools/content.py testtools-2.4.0/testtools/content.py +--- testtools-2.4.0-orig/testtools/content.py 2018-04-04 16:27:14.000000000 -0700 ++++ testtools-2.4.0/testtools/content.py 2020-04-03 17:05:23.037168731 -0700 +@@ -17,10 +17,9 @@ + import json + import os + import sys ++import traceback + + from extras import try_import +-# To let setup.py work, make this a conditional import. +-traceback = try_import('traceback2') + + from testtools.compat import ( + _b, +diff -ru testtools-2.4.0-orig/testtools/run.py testtools-2.4.0/testtools/run.py +--- testtools-2.4.0-orig/testtools/run.py 2015-11-07 09:27:33.000000000 -0800 ++++ testtools-2.4.0/testtools/run.py 2020-04-03 17:07:07.353196586 -0700 +@@ -12,11 +12,9 @@ + from functools import partial + import os.path + import sys ++import unittest + + from extras import safe_hasattr, try_imports +-# To let setup.py work, make this a conditional import. +-unittest = try_imports(['unittest2', 'unittest']) +- + from testtools import TextTestResult, testcase + from testtools.compat import classtypes, istext, unicode_output_stream + from testtools.testsuite import filter_by_ids, iterate_tests, sorted_tests +@@ -50,7 +48,6 @@ + describing things that failed to import. + """ + unittest_import_strs = set([ +- 'unittest2.loader.ModuleImportFailure.', + 'unittest.loader.ModuleImportFailure.', + 'discover.ModuleImportFailure.' + ]) +diff -ru testtools-2.4.0-orig/testtools/testcase.py testtools-2.4.0/testtools/testcase.py +--- testtools-2.4.0-orig/testtools/testcase.py 2019-11-28 00:58:29.000000000 -0800 ++++ testtools-2.4.0/testtools/testcase.py 2020-04-03 17:27:49.122395535 -0700 +@@ -19,22 +19,15 @@ + import copy + import functools + import itertools ++import six + import sys ++import unittest + import warnings + + from extras import ( + safe_hasattr, + try_import, + ) +-# To let setup.py work, make this a conditional import. +-# Don't use extras.try_imports, as it interferes with PyCharm's unittest +-# detection algorithm. See: https://youtrack.jetbrains.com/issue/PY-26630 +-try: +- import unittest2 as unittest +-except ImportError: +- import unittest +-import six +- + from testtools import ( + content, + ) +@@ -66,23 +59,8 @@ + + wraps = try_import('functools.wraps') + +- +-class TestSkipped(Exception): +- """Raised within TestCase.run() when a test is skipped.""" +-TestSkipped = try_import('unittest.case.SkipTest', TestSkipped) +-TestSkipped = try_import('unittest2.case.SkipTest', TestSkipped) +- +- +-class _UnexpectedSuccess(Exception): +- """An unexpected success was raised. +- +- Note that this exception is private plumbing in testtools' testcase +- module. +- """ +-_UnexpectedSuccess = try_import( +- 'unittest.case._UnexpectedSuccess', _UnexpectedSuccess) +-_UnexpectedSuccess = try_import( +- 'unittest2.case._UnexpectedSuccess', _UnexpectedSuccess) ++from unittest.case import SkipTest as TestSkipped ++from unittest.case import _UnexpectedSuccess + + + class _ExpectedFailure(Exception): +@@ -93,8 +71,6 @@ + """ + _ExpectedFailure = try_import( + 'unittest.case._ExpectedFailure', _ExpectedFailure) +-_ExpectedFailure = try_import( +- 'unittest2.case._ExpectedFailure', _ExpectedFailure) + + + # Copied from unittest before python 3.4 release. Used to maintain +diff -ru testtools-2.4.0-orig/testtools/tests/test_compat.py testtools-2.4.0/testtools/tests/test_compat.py +--- testtools-2.4.0-orig/testtools/tests/test_compat.py 2019-11-28 00:58:29.000000000 -0800 ++++ testtools-2.4.0/testtools/tests/test_compat.py 2020-04-03 17:11:59.211436348 -0700 +@@ -4,7 +4,7 @@ + + import ast + import io +-import linecache2 as linecache ++import linecache + import os + import sys + import tempfile +diff -ru testtools-2.4.0-orig/testtools/tests/test_run.py testtools-2.4.0/testtools/tests/test_run.py +--- testtools-2.4.0-orig/testtools/tests/test_run.py 2015-11-07 09:27:33.000000000 -0800 ++++ testtools-2.4.0/testtools/tests/test_run.py 2020-04-03 17:30:21.725938899 -0700 +@@ -10,7 +10,7 @@ + from extras import try_import + fixtures = try_import('fixtures') + testresources = try_import('testresources') +-import unittest2 ++import unittest + + import testtools + from testtools import TestCase, run, skipUnless +@@ -195,13 +195,13 @@ + broken = self.useFixture(SampleTestFixture(broken=True)) + out = StringIO() + # XXX: http://bugs.python.org/issue22811 +- unittest2.defaultTestLoader._top_level_dir = None ++ unittest.defaultTestLoader._top_level_dir = None + exc = self.assertRaises( + SystemExit, + run.main, ['prog', 'discover', '-l', broken.package.base, '*.py'], out) + self.assertEqual(2, exc.args[0]) + self.assertThat(out.getvalue(), DocTestMatches("""\ +-unittest2.loader._FailedTest.runexample ++unittest.loader._FailedTest.runexample + Failed to import test module: runexample + Traceback (most recent call last): + File ".../loader.py", line ..., in _find_test_path +@@ -345,7 +345,7 @@ + pkg = self.useFixture(SampleLoadTestsPackage()) + out = StringIO() + # XXX: http://bugs.python.org/issue22811 +- unittest2.defaultTestLoader._top_level_dir = None ++ unittest.defaultTestLoader._top_level_dir = None + self.assertEqual(None, run.main( + ['prog', 'discover', '-l', pkg.package.base], out)) + self.assertEqual(dedent("""\ +diff -ru testtools-2.4.0-orig/testtools/tests/test_testsuite.py testtools-2.4.0/testtools/tests/test_testsuite.py +--- testtools-2.4.0-orig/testtools/tests/test_testsuite.py 2018-04-04 16:27:14.000000000 -0700 ++++ testtools-2.4.0/testtools/tests/test_testsuite.py 2020-04-03 17:13:27.006601122 -0700 +@@ -5,7 +5,6 @@ + import doctest + from pprint import pformat + import unittest +-import unittest2 + + from extras import try_import + +@@ -223,9 +222,9 @@ + raise cls.skipException('foo') + def test_notrun(self): + pass +- # Test discovery uses the default suite from unittest2 (unless users ++ # Test discovery uses the default suite from unittest (unless users + # deliberately change things, in which case they keep both pieces). +- suite = unittest2.TestSuite([Skips("test_notrun")]) ++ suite = unittest.TestSuite([Skips("test_notrun")]) + log = [] + result = LoggingResult(log) + suite.run(result) +@@ -240,9 +239,9 @@ + super(Simples, cls).setUpClass() + def test_simple(self): + pass +- # Test discovery uses the default suite from unittest2 (unless users ++ # Test discovery uses the default suite from unittest (unless users + # deliberately change things, in which case they keep both pieces). +- suite = unittest2.TestSuite([Simples("test_simple")]) ++ suite = unittest.TestSuite([Simples("test_simple")]) + log = [] + result = LoggingResult(log) + suite.run(result) +diff -ru testtools-2.4.0-orig/testtools/tests/twistedsupport/test_deferred.py testtools-2.4.0/testtools/tests/twistedsupport/test_deferred.py +--- testtools-2.4.0-orig/testtools/tests/twistedsupport/test_deferred.py 2018-04-04 16:27:14.000000000 -0700 ++++ testtools-2.4.0/testtools/tests/twistedsupport/test_deferred.py 2020-04-03 17:13:45.124428761 -0700 +@@ -52,5 +52,5 @@ + + + def test_suite(): +- from unittest2 import TestLoader, TestSuite ++ from unittest import TestLoader, TestSuite + return TestLoader().loadTestsFromName(__name__) +diff -ru testtools-2.4.0-orig/testtools/tests/twistedsupport/test_matchers.py testtools-2.4.0/testtools/tests/twistedsupport/test_matchers.py +--- testtools-2.4.0-orig/testtools/tests/twistedsupport/test_matchers.py 2018-04-04 16:27:14.000000000 -0700 ++++ testtools-2.4.0/testtools/tests/twistedsupport/test_matchers.py 2020-04-03 17:13:58.452301968 -0700 +@@ -205,5 +205,5 @@ + + + def test_suite(): +- from unittest2 import TestLoader, TestSuite ++ from unittest import TestLoader, TestSuite + return TestLoader().loadTestsFromName(__name__) +diff -ru testtools-2.4.0-orig/testtools/tests/twistedsupport/test_runtest.py testtools-2.4.0/testtools/tests/twistedsupport/test_runtest.py +--- testtools-2.4.0-orig/testtools/tests/twistedsupport/test_runtest.py 2018-04-04 16:27:14.000000000 -0700 ++++ testtools-2.4.0/testtools/tests/twistedsupport/test_runtest.py 2020-04-03 17:14:09.153200167 -0700 +@@ -1016,7 +1016,7 @@ + + + def test_suite(): +- from unittest2 import TestLoader, TestSuite ++ from unittest import TestLoader, TestSuite + return TestLoader().loadTestsFromName(__name__) + + +diff -ru testtools-2.4.0-orig/testtools/testsuite.py testtools-2.4.0/testtools/testsuite.py +--- testtools-2.4.0-orig/testtools/testsuite.py 2018-04-04 16:27:14.000000000 -0700 ++++ testtools-2.4.0/testtools/testsuite.py 2020-04-03 17:02:34.047743583 -0700 +@@ -17,8 +17,6 @@ + import unittest + + from extras import safe_hasattr, try_imports +-# This is just to let setup.py work, as testtools is imported in setup.py. +-unittest2 = try_imports(['unittest2', 'unittest']) + Queue = try_imports(['Queue.Queue', 'queue.Queue']) + + import testtools +@@ -36,7 +34,7 @@ + yield subtest + + +-class ConcurrentTestSuite(unittest2.TestSuite): ++class ConcurrentTestSuite(unittest.TestSuite): + """A TestSuite whose run() calls out to a concurrency strategy.""" + + def __init__(self, suite, make_tests, wrap_result=None): +@@ -199,7 +197,7 @@ + process_result.stopTestRun() + + +-class FixtureSuite(unittest2.TestSuite): ++class FixtureSuite(unittest.TestSuite): + + def __init__(self, fixture, tests): + super(FixtureSuite, self).__init__(tests) +diff -ru testtools-2.4.0-orig/testtools.egg-info/requires.txt testtools-2.4.0/testtools.egg-info/requires.txt +--- testtools-2.4.0-orig/testtools.egg-info/requires.txt 2020-03-14 07:30:56.000000000 -0700 ++++ testtools-2.4.0/testtools.egg-info/requires.txt 2020-04-03 17:31:06.316513271 -0700 +@@ -3,10 +3,7 @@ + pbr>=0.11 + python-mimeparse + six>=1.4.0 +-traceback2 +-unittest2>=1.0.0 + + [test] + testresources + testscenarios +-unittest2>=1.1.0