From 0e4c2756db0b1a0c78cf64b40cbdd86f884d032b6f95afe449908a03133bf034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mark=C3=A9ta=20Machov=C3=A1?= Date: Tue, 24 Sep 2024 09:58:23 +0000 Subject: [PATCH] =?UTF-8?q?-=20Update=20to=202.7.2=20=20=20*=20Treat=20met?= =?UTF-8?q?hodName=3D"runTest"=20similar=20to=20unittest.TestCase,=20=20?= =?UTF-8?q?=20=20=20fixes=20compatibility=20with=20pytest=208.3.=20(Natana?= =?UTF-8?q?el=20Copa,=20#372)=20=20=20*=20Use=20ruff=20for=20linting.=20(J?= =?UTF-8?q?elmer=20Vernoo=C4=B3)=20=20=20*=20Fix=20compatibility=20with=20?= =?UTF-8?q?Python=203.12.1.=20(Matthew=20Treinish)=20=20=20*=20Deprecate?= =?UTF-8?q?=20SkippedTest=20exception.=20(Stephen=20Finucane)=20=20=20*=20?= =?UTF-8?q?Drop=20support=20for=20Python=203.7.=20(Jelmer=20Vernoo=C4=B3)?= =?UTF-8?q?=20-=20Drop=20merged=20pytest82.patch=20-=20Add=20upstream=20tw?= =?UTF-8?q?isted.patch=20to=20fix=20tests=20with=20new=20Twisted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-testtools?expand=0&rev=86 --- .gitattributes | 23 + .gitignore | 1 + _multibuild | 3 + pytest82.patch | 46 ++ python-testtools.changes | 904 +++++++++++++++++++++++++++++++++++++++ python-testtools.spec | 89 ++++ testtools-2.7.1.tar.gz | 3 + testtools-2.7.2.tar.gz | 3 + twisted.patch | 46 ++ 9 files changed, 1118 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 _multibuild create mode 100644 pytest82.patch create mode 100644 python-testtools.changes create mode 100644 python-testtools.spec create mode 100644 testtools-2.7.1.tar.gz create mode 100644 testtools-2.7.2.tar.gz create mode 100644 twisted.patch diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/pytest82.patch b/pytest82.patch new file mode 100644 index 0000000..9135649 --- /dev/null +++ b/pytest82.patch @@ -0,0 +1,46 @@ +From 91e617a5c0bb220779b1d9912f3e946a28be53d4 Mon Sep 17 00:00:00 2001 +From: Natanael Copa +Date: Mon, 13 May 2024 08:43:49 +0200 +Subject: [PATCH] Treat methodName="runTest" similar to unittest.TestCase + +pytest 8.2 relies on a feature of `unittest.TestCase` where the +initialization of it with the default `methodName="runTest"` is treated +specially, allowing it to insantiate even without `runTest` method +actually existing. + +See under "Changed in Python 3.2" in unittest.TestCase docs + +This fixes the error with pytest 8.2: + AttributeError: 'TestUtil' object has no attribute 'runTest'. Did you mean: 'subTest'? + +Fixes: https://github.com/testing-cabal/testtools/issues/372 +ref: https://docs.python.org/3/library/unittest.html#unittest.TestCase +ref: https://github.com/python/cpython/blob/51aefc5bf907ddffaaf083ded0de773adcdf08c8/Lib/unittest/case.py#L419-L426 +ref: https://github.com/pytest-dev/pytest/issues/12263#issuecomment-2081434468 +--- + testtools/testcase.py | 12 +++++++++++- + 1 file changed, 11 insertions(+), 1 deletion(-) + +diff --git a/testtools/testcase.py b/testtools/testcase.py +index 08b158b6..b8722df7 100644 +--- a/testtools/testcase.py ++++ b/testtools/testcase.py +@@ -735,7 +735,17 @@ def _run_teardown(self, result): + + def _get_test_method(self): + method_name = getattr(self, '_testMethodName') +- return getattr(self, method_name) ++ try: ++ m = getattr(self, method_name) ++ except AttributeError: ++ if method_name != "runTest": ++ # We allow instantiation with no explicit method name ++ # but not an *incorrect* or missing method name. ++ raise ValueError( ++ "no such test method in %s: %s" % (self.__class__, method_name) ++ ) ++ else: ++ return m + + def _run_test_method(self, result): + """Run the test method for this test. diff --git a/python-testtools.changes b/python-testtools.changes new file mode 100644 index 0000000..4e39342 --- /dev/null +++ b/python-testtools.changes @@ -0,0 +1,904 @@ +------------------------------------------------------------------- +Mon Sep 23 14:06:48 UTC 2024 - Markéta Machová + +- Update to 2.7.2 + * Treat methodName="runTest" similar to unittest.TestCase, + fixes compatibility with pytest 8.3. (Natanael Copa, #372) + * Use ruff for linting. (Jelmer Vernooij) + * Fix compatibility with Python 3.12.1. (Matthew Treinish) + * Deprecate SkippedTest exception. (Stephen Finucane) + * Drop support for Python 3.7. (Jelmer Vernooij) +- Drop merged pytest82.patch +- Add upstream twisted.patch to fix tests with new Twisted + +------------------------------------------------------------------- +Fri May 17 14:07:33 UTC 2024 - Markéta Machová + +- Add pytest82.patch to fix functionality with the new pytest. + +------------------------------------------------------------------- +Wed May 8 06:42:24 UTC 2024 - Steve Kowalik + +- Drop the now unneeded rpmlintrc. +- Clean up BuildRequires and Requires to match reality. +- Add missing _multibuild file. + +------------------------------------------------------------------- +Sat Dec 30 20:31:27 UTC 2023 - Dirk Müller + +- update to 2.7.1: + * Remove various unused imports. + * Fix build backend. This should prevent version from being set + when building wheels. + * Fix compatibility with Python 3.12. + * Add typing in various modules (still lacking full coverage). + * Drop the 'test' command for distutils. This has been + deprecated since 2.6.0. (Jelmer Vernooij) + * Drop support for Python 3.6. + +------------------------------------------------------------------- +Thu May 4 21:18:15 UTC 2023 - Dirk Müller + +- update to 2.6.0: + * Add support for Python 3.10 and 3.11. + * Drop support for Python 3.5 (EOL). + * Use ``CompoundFixture`` from ``fixtures>=2.0`` rather than + rolling our own. + * Make ``TestCase`` hashable. + * Prevent ``AttributeError`` in ``TestCase.__eq__`` for objects + lacking a ``__dict__`` attribute. + * Replace deprecated ``cgi`` module usage with ``email``. + +------------------------------------------------------------------- +Fri Apr 21 12:37:23 UTC 2023 - Dirk Müller + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Apr 13 22:45:22 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Mon Nov 21 14:19:47 UTC 2022 - Matej Cepl + +- Skip rpmlint error python-tests-in-package. + +------------------------------------------------------------------- +Fri Nov 11 13:31:42 UTC 2022 - pgajdos@suse.com + +- silent rpmlint + +------------------------------------------------------------------- +Fri Nov 11 11:10:03 UTC 2022 - pgajdos@suse.com + +- python-six is not required + +------------------------------------------------------------------- +Sat Oct 16 19:29:27 UTC 2021 - Dirk Müller + +- update to 2.5.0: + * Update testtools/compat.py + * Note Python 3.5 is EOL and will be dropped after the next release + * Fix for Python 3.10 + * Add python 3.10 to ci configuration + * testtools.compat: provide BytesIO, StringIO again + * Add support for Python 3.9 + * Update and simplify workflow + * Fix UserWarning: Usage of dash-separated ... + * Fix tests with Python 3.10 + * Remove mimeparse dependency + * trivial: Cleanup imports + * Re-introduce 'try\_imports' + * Remove use of 'try\_imports' + * tox: Don't skip sdist + * Remove use of 'safe\_hasattr' + * NEWS: Add note about unittest2 removal + * Fix github actions + * Update testtools/content.py + * Update tox.ini + * Update github actions config to use release 3.9 + * Drop traceback2 in favor of traceback and remove unused linecache2 + * Update tox.ini + * Add tox.ini file + * Remove tox.ini file + * restore testtools/tests/test\_testcase.py + * Remove unittest2 from setup.cfg and add tox.ini file + * Remove unrelated change + * Restore test\_spinner.py + * Remove unused try\_import + * Test on Python 3.9-dev + * Compare items using sets instead of sequences + * Add implementation for legacy assertItemsEqual existing in unittest2 library + * Do actually remove all references to unittest2 library + * Remove the travis config + * Add back travis config + * Update testtools/testcase.py + * Limit use of unittest2 to old Python versions + * Fix syntax error test for Python 3.9 + * Remove Travis CI config + * Test on GitHub Actions + * Remove stray six import + * Testtools 2.4.0 is the last to support Python 2.7 +- remove python-testtools-no-unittest2.patch (upstream) + +------------------------------------------------------------------- +Thu Jun 11 08:21:52 UTC 2020 - pgajdos@suse.com + +- move testsuite run to main package, remove -doc +- added patches + unittest2 is not neccessary to run testsuite + + python-testtools-no-unittest2.patch + +------------------------------------------------------------------- +Tue Jun 9 09:31:13 UTC 2020 - pgajdos@suse.com + +- remove unittest2 runtime dependency + +------------------------------------------------------------------- +Mon Mar 16 10:57:59 UTC 2020 - Dirk Mueller + +- update to 2.4.0: + * Release 2.4.0 + * Add myself to contributors list + * Add support for Python 3.7 and 3.8 + * Cache pip directory + * Test CI on PyPy3 + * Tell pip not to install for Python 3.4 + * Drop support for EOL Python 3.4 + * Extra space expected in PyPy output + * PyCharm IDE unittest detection compatibility fix + * Don't use eval() + * Fix the tests on Python 3.7 + * Drop support for EOL Python 3.3 + * Ignore IDE metadata + * Update classifiers + * Remove old Python 2.6 code + * Spelling fixes (#261) + * Python 3.6 invalid escape sequence deprecation fixes (#262) +- remove testtools-py37.patch: merged upstream + +------------------------------------------------------------------- +Mon Oct 14 16:47:02 CEST 2019 - Matej Cepl + +- Replace %fdupes -s with plain %fdupes; hardlinks are better. + +------------------------------------------------------------------- +Fri Aug 10 11:27:08 UTC 2018 - tchvatal@suse.com + +- Add patch to build with python 3.7: + * testtools-py37.patch + +------------------------------------------------------------------- +Thu Mar 8 10:17:39 UTC 2018 - aplanas@suse.com + +- Allows Recommends and Suggest in Fedora + +------------------------------------------------------------------- +Tue Feb 27 18:29:42 UTC 2018 - aplanas@suse.com + +- Recommends only for SUSE + +------------------------------------------------------------------- +Tue Jul 4 04:07:32 UTC 2017 - tbechtold@suse.com + +- update to 2.3.0: + * Release 2.3.0 + * Add ResourcedToStreamDecorator test result decorator for testresources integration (#243) + * Make KeysEqual usable with no arguments, i.e. match a dict with no keys. (#241) + * Add testtools.assertions to the documented API modules (#257) + * Add Python 3.6 to the list of Travis targets (#255) + * Don't add file details without content (#252) + * Don't run Sphinx on Travis Python 3.3 target (#250) + * Make twistedsupport and tests work on Python 3 + +------------------------------------------------------------------- +Mon May 22 08:08:02 UTC 2017 - tbechtold@suse.com + +- Revert "Require python-unittest2 only for python2". We have now + a python3-unittest2 package which should be used. + +------------------------------------------------------------------- +Mon May 22 06:27:28 UTC 2017 - tbechtold@suse.com + +- Require python-unittest2 only for python2 + +------------------------------------------------------------------- +Fri Apr 14 16:39:38 UTC 2017 - toddrme2178@gmail.com + +- Change fixtures dependency to "Recommends". It is not a hard + dependency becauses it causes dependency loops. + +------------------------------------------------------------------- +Sat Apr 8 19:29:56 UTC 2017 - toddrme2178@gmail.com + +- Split documentation and tests into separate .spec file to avoid + dependency cycle with python-extras/python-testrepositories. + +------------------------------------------------------------------- +Sun Apr 2 09:48:51 UTC 2017 - aloisio@gmx.com + +- Converted to single-spec +- Added doc subpackage + +------------------------------------------------------------------- +Mon Feb 27 07:31:26 UTC 2017 - shshyukriev@suse.com + +- BuildRequires also using extras>=1.0.0 + +------------------------------------------------------------------- +Thu Sep 1 12:43:29 UTC 2016 - tbechtold@suse.com + +- Use pypi.io as Source url + +------------------------------------------------------------------- +Tue Aug 30 11:41:55 UTC 2016 - tbechtold@suse.com + +- update to 2.2.0: + * Release 2.2.0 + * Depend on the extras 1.0.0 release + * Unbreak fixtures test suite / use of gather_details + * UTF-8 encode Twisted logs (allenap) + * Use inlineCallbacks instead of deferredGenerator + * Fix _lp_release: NEXT is case sensitive + * Release 2.1.0 + * Correct docs for skip deprecation + * Add matchers for detecting emitted warnings + * Revert usage of pyrsistent + * Add unique_text_generator + * Become compatible with newer Fixtures _setUp() API + * Better handling of KeyboardInterrupt + * Fix example in docstring for `failed` + * Move all Twisted code to twistedsupport package + * Revert "Move all Twisted code to twistedsupport package" + * Move all Twisted code to twistedsupport package + * Add Always & Never matchers + * Support TestResults without stop/shouldStop + * Stop using deprecated `skip()` internally + * Release 2.0.0 + * Options for logging in AsynchronousDeferredRunTest + * Twisted tests now pass under --debug-stacktraces + * Decouple log handling from Deferred wrangling + * Fix typo: flexability + * Review tweaks + * Drop support for Python 2.6 and 3.2 + * Release 1.9.0 + * Missed one + * 19.4.1 refers to importlib machinery. Avoid that + * See if setuptools 19.5 is bad + * PIP_VERSION is used by pip itself + * Correct spelling of 'less than 8', maybe + * Use only pip 7.* on pypy3 & py3.2 + * Longer timeout not necessary + * NEWS update + * Handle case where Deferred fires after timeout + * Explicitly separate fake stop method + * Lint & copyright + * NO_RESULT -> has_no_result + * Make twistedsupport a package + * Rename `successful` to `succeeded` + * Improve NEWS + * Conditionally import matchers + * Use non-inplace install and add a comment + * New module for twisted support code + * Minor documentation tweaks + * Make no_result a constant + * Style & documentation tweaks from review + * Review tweaks + * Import extract_result from correct location + * expectThat works under AsynchronousDeferredRunTest + * Correct string literal syntax + * Avoid .format + * Give up on some TODOs + * Maybe we need to install our thing? + * Add requirements for readthedocs + * Move non-matcher code to _deferred + * Nicer links + * Link to Twisted API docs + * More todos + * Documentation with examples + * Pass the Deferred to the handlers + * Docstring formatting + * Use _on_deferred_result in _NoResult + * Make _on_deferred_result transparent to Deferred + * Extract common Deferred logic + * Use same error messages as Twisted + * Matcher for Deferreds that have failed + * TODOs & XXXs + * successResultOf equivalent + * Docstring formatting + * Docstring + * Move formatting to exception + * Extract `extract_result` + * Matcher for no result + * Actually use `skipException` + * NEWS update + * Suppress skip traceback based on skipException + * Deprecate Python 2.6 + * Actually use pformat in errors + * Deterministic test + * NEWS update + * NEWS update + * Factor out counting + * ids has no apostrophe + * Lint + * Collect all duplicate test id's before raise + * Document checking release milestone before release + * Don't need our own assertRaisesRegexp + * Clarify the tests + * Add assertRaisesRegexp method + * Document early evaluation of details + * Update NEWS + * Deprecate TestCase.skip + * Deprecate _BinaryMismatch.{expected,observed} + * Make sure reference and actual align + * Put expected on the right for binary mismatch + * Fix typo + * Support Python 3.5, announce deprecation 3.2 + * API docs for deferredruntest + * Need Deferred reference + * Remove scare warnings from deferredruntest + * Documentation tweaks + * Move Twisted docs to separate file + * Better error message for MatchesListwise + * NEWS update + * Clarify some things + * Move _cleanups reset to _reset + * Rewrite patch tests using make_test_case + * `throw` helper + * Rewrite addCleanup tests in terms of make_test_case + * Use method for value, to avoid `self` weirdness + * Move useful matchers to helper module + * Move unique_id_gen to reset + * Clean up comments + * No need for special case + * Get pre_set_up & post_tear_down from scenario + * Spell setUp consistently + * Allow pre setUp & post tearDown to be set + * Complete suite of tests + * Encapsulate construction + * Start to use generated behaviors + * Wrap the constructor, hide the class + * Handle more test bodies + * Begin implementing full matrix + * Easy review comments + * 15.5.0 claims to support Python 2.6 but does not + * Run tests on last Twisted version to support 2.6 + * Latest Twisted doesn't run on Python 2.6 + * Non-deterministic test case + * Simplify cleanup code + * Rename all_sample_cases_scenarios to deterministic_sample_cases_scenarios + * Treat tear down failure as a scenario + * Begin to write scenario-based tests + * Split run twice tests to separate case + * Acquire testscenarios as a dependency + * Fix travis :( + * Add testscenarios for use by tests + * Handle failure in tearDown + * Test _run_teardown, rather than tearDown + * Allow tests to be run twice + * Don't use private APIs + * Update NEWS for 1.8.1 + * Hide TestRecord and StreamToTestRecord + * Old-fashioned set syntax + * Abstract text_or_bytes + * Add pyrsistent dependency to Travis CI + * Change PRecord to PClass + * Move test_dict_to_case near StreamToDict + * Don't use StreamToDict internally + * _streamer -> _hook + * StreamSummary with composition, not inheritance + * Extract StreamToTestRecord base class + * Move _make_content_type closer to where it is used + * Put to_test_case logic on TestRecord + * Make _status_map persistent + * Move test_dict_to_case closer to test_dict definition + * Remove temporary variable 'case' + * Extract got_file + * Extract got_timestamp function + * Move creation logic to TestRecord itself + * Actually use TestRecord internally + * Extract methods for making and updating record + * Extract _make_content_type + * Use `case` consistently, over `_inprogress[key]` + * Use name for interim states + * Aspirational documentation + * Remove VWS + * Update PlaceHolder indentation + * Restore & deprecate domap + * Spell out `f` and `xs` + * Drop `__metaclass__` declaration + * Document confusing `domap` + * Remove duplicate implementation of method + * Allow event_log to be passed to result doubles + * Fix lint in testresult.real + * Lint clear-up + * Uncap test matrix entries for modern Twisted + * Fix Travis matrix.include + * Only run Twisted tests on Python 2 + * Test with Twisted 13.0.0/15.2.0 + * Port twisted.deferredruntest to Twisted >= 15.1.0 + * Update hacking documentation + * Fix tests with unittest2 1.1.0 and higher + * Programmatically declare test dependencies + * Fix the call to the parent setup + * Release 1.8.0 + * Switch to pbr as a build system + * Add some custom matchers to make deferred log tests more readable + * Simplify AsynchronousDeferredRunTest._run_core's StringIO handling + * Rewind the deferred test log before attaching it + * Open 1.8.0 for dev + * Release 1.7.1 + * Clamp Sphinx below 1.3 for travis on pypy3/3.2 + * Fix pypy3 tests by using ceil when reporting duration + * Fix building universal wheels on Python 3 + * Open next version + * Release 1.7.0 + * Fix output of empty attachments + * Open 1.7.0 again + * Bug #1430076 fix installing when extras is not installed + * Opening 1.7.0 for development + * Release 1.6.0 + * Overhaul exception reporting +- Adjust Requires according to requirements.txt + +------------------------------------------------------------------- +Mon Dec 1 22:48:47 UTC 2014 - dmueller@suse.com + +- fix typo in last change + +------------------------------------------------------------------- +Mon Dec 1 17:04:18 UTC 2014 - rhafer@suse.com + +- Update to version 1.5.0: + * When an import error happens ``testtools.run`` will now show the full + error rather than just the name of the module that failed to import. + (Robert Collins) + * ``testtools.TestCase`` now inherits from unittest2.TestCase, which + provides a ``setUpClass`` for upcalls on Python 2.6. + (Robert Collins, #1393283) + * Fixed our setup.py to use setup_requires to ensure the import dependencies + for testtools are present before setup.py runs (as setup.py imports testtools + to read out the version number). (Robert Collins) + * Support setUpClass skipping with self.skipException. Previously this worked + with unittest from 2.7 and above but was not supported by testtools - it was + a happy accident. Since we now hard depend on unittest2, we need to invert + our exception lookup priorities to support it. Regular skips done through + raise self.skipException will continue to work, since they were always caught + in our code - its because the suite type being used to implement setUpClass + has changed that an issue occured. + (Robert Collins, #1393068) + * Correctly express our unittest2 dependency: we don't work with old releases. + (Robert Collins) + * Depends on unittest2 for discovery functionality and the ``TestProgram`` base + class. This brings in many fixes made to discovery where previously we were + only using the discovery package or the version in the release of Python + that the test execution was occuring on. (Robert Collins, #1271133) + * Fixed unit tests which were failing under pypy due to a change in the way + pypy formats tracebacks. (Thomi Richards) + * Fixed the testtools test suite to run correctly when run via ``unit2`` + or ``testtools.run discover``. + * Make `testtools.content.text_content` error if anything other than text + is given as content. (Thomi Richards) + +------------------------------------------------------------------- +Tue Sep 16 06:17:46 UTC 2014 - tbechtold@suse.com + +- update to version 1.1.0: + * Exceptions in a ``fixture.getDetails`` method will no longer mask errors + raised from the same fixture's ``setUp`` method. + (Robert Collins, #1368440) + * Fix a long-standing bug where tearDown and cleanUps would not be called if + the test run was interrupted. This should fix leaking external resources + from interrupted tests. + (Robert Collins, #1364188) + * Fix a long-standing bug where calling sys.exit(0) from within a test would + cause the test suite to exit with 0, without reporting a failure of that + test. We still allow the test suite to be exited (since catching higher + order exceptions requires exceptional circumstances) but we now call a + last-resort handler on the TestCase, resulting in an error being + reported for the test. + (Robert Collins, #1364188) + * Fix an issue where tests skipped with the ``skip``* family of decorators + would still have their ``setUp`` and ``tearDown`` functions called. + (Thomi Richards, #https://github.com/testing-cabal/testtools/issues/86) + * We have adopted a formal backwards compatibility statement (see hacking.rst) + (Robert Collins) + * _jython_aware_splitext was not defined entirely compatibly. + (Robert Collins, #https://github.com/testing-cabal/testtools/issues/100) + * Discovery import error detection wasn't implemented for python 2.6 (the + 'discover' module). (Robert Collins) + * Discovery now executes load_tests (if present) in __init__ in all packages. + (Robert Collins, http://bugs.python.org/issue16662) + * ``stdout`` is now correctly honoured on ``run.TestProgram`` - before the + runner objects would be created with no stdout parameter. If construction + fails, the previous parameter list is attempted, permitting compatibility + with Runner classes that don't accept stdout as a parameter. + (Robert Collins) + * The ``ExtendedToStreamDecorator`` now handles content objects with one less + packet - the last packet of the source content is sent with EOF set rather + than an empty packet with EOF set being sent after the last packet of the + source content. (Robert Collins) + * Error if ``setUp`` or ``tearDown`` are called twice. + (Robert Collins, #882884) + * Make testtools compatible with the ``unittest.expectedFailure`` decorator in + Python 3.4. (Thomi Richards) + +------------------------------------------------------------------- +Wed Jan 29 12:31:27 UTC 2014 - dmueller@suse.com + +- update to 0.9.35: + * Removed a number of code paths where Python 2.4 and Python 2.5 were + explicitly handled. (Daniel Watkins) + * Added the ``testtools.TestCase.expectThat`` method, which implements + delayed assertions. (Thomi Richards) + * Docs are now built as part of the Travis-CI build, reducing the chance of + Read The Docs being broken accidentally. (Daniel Watkins, #1158773) + +------------------------------------------------------------------- +Mon Jan 13 13:44:49 UTC 2014 - dmueller@suse.com + +- update to 0.9.34: + * Added ability for ``testtools.TestCase`` instances to force a test to + fail, even if no assertions failed. (Thomi Richards) + * Added ``testtools.content.StacktraceContent``, a content object that + automatically creates a ``StackLinesContent`` object containing the current + stack trace. (Thomi Richards) + * ``AnyMatch`` is now exported properly in ``testtools.matchers``. + (Robert Collins, Rob Kennedy, github #44) + * Network tests now bind to 127.0.0.1 to avoid (even temporary) network + visible ports. (Benedikt Morbach, github #46) + +------------------------------------------------------------------- +Sun Nov 17 16:48:32 UTC 2013 - p.drouand@gmail.com + +- Update to version 0.9.33 + + Added ``addDetailuniqueName`` method to ``testtools.TestCase`` class. + + Removed some unused code from ``testtools.content.TracebackContent``. + + Added ``testtools.StackLinesContent``: a content object for displaying + pre-processed stack lines. + + ``StreamSummary`` was calculating testsRun incorrectly: ``exists`` status + tests were counted as run tests, but they are not. +- Remove unwanted hidden file from documentation generated with Sphinx + +------------------------------------------------------------------- +Thu Aug 8 13:47:56 UTC 2013 - speilicke@suse.com + +- Revert back + +------------------------------------------------------------------- +Thu Aug 8 13:22:20 UTC 2013 - speilicke@suse.com + +- Totally disable testing to bootstrap ppc64. Actually the build conditional is + supposed to do just that. + +------------------------------------------------------------------- +Tue Jun 25 11:35:04 UTC 2013 - speilicke@suse.com + +- Introduce a build conditional for running tests to break build cycle + with python-extras + +------------------------------------------------------------------- +Fri Jun 21 08:21:16 UTC 2013 - speilicke@suse.com + +- Use upstream URL +- Run testsuite +- Update to version 0.9.32: + + Stacktrace filtering no longer hides unittest frames that are surrounded by + user frames. We will reenable this when we figure out a better algorithm for + retaining meaning. (Robert Collins, #1188420) + + The compatibility code for skipped tests with unittest2 was broken. + (Robert Collins, #1190951) + + Various documentation improvements (Clint Byrum, Xiao Hanyu). +- Changes from version 0.9.31: + + ExpectedException now accepts a msg parameter for describing an error, + much the same as assertEquals etc. (Robert Collins) + +------------------------------------------------------------------- +Mon May 6 11:25:43 UTC 2013 - dmueller@suse.com + +- add python-mmimeparse dependency + +------------------------------------------------------------------- +Tue Apr 23 09:33:35 UTC 2013 - p.drouand@gmail.com + +- Fix source URL; packages are available on https://pypi.python.org + +------------------------------------------------------------------- +Mon Apr 22 16:45:07 UTC 2013 - dmueller@suse.com + +- update to 0.9.30: + A new sort of TestResult, the StreamResult has been added, as a prototype for + a revised standard library test result API. Expect this API to change. + Although we will try to preserve compatibility for early adopters, it is + experimental and we might need to break it if it turns out to be unsuitable. + +------------------------------------------------------------------- +Tue Apr 16 11:49:26 UTC 2013 - p.drouand@gmail.com + +- Update to version 0.9.29 + + Added missing build-depends: python3-setuptools, python-setuptools and + python-extras. + + Build-depends: python-fixtures must be >= 0.3.12~ +- Disable test; it seems there is a typo mistake in setup.cfg +- Added url as source. + Please see http://en.opensuse.org/SourceUrls + +------------------------------------------------------------------- +Tue Jan 15 16:43:28 UTC 2013 - p.drouand@gmail.com + +- Initial python3 support + +------------------------------------------------------------------- +Mon Jan 14 12:38:00 UTC 2013 - saschpe@suse.de + +- Update to version 0.9.24: + * testtools.run discover will now sort the tests it discovered. This is a + workaround for http://bugs.python.org/issue16709. Non-standard test suites + are preserved, and their sort_tests() method called (if they have such an + attribute). testtools.testsuite.sorted_tests(suite, True) can be used by + such suites to do a local sort. + * ThreadsafeForwardingResult now defines a stub progress method, which + fixes testr run of streams containing progress markers (by discarding the + progress data). +- Changes from version 0.9.23: + * run.TestToolsTestRunner now accepts the verbosity, buffer and failfast + arguments the upstream python TestProgram code wants to give it, making it + possible to support them in a compatible fashion. (Robert Collins) + * testtools.run now supports the -f or --failfast parameter. + Previously it was advertised in the help but ignored. + * AnyMatch added, a new matcher that matches when any item in a collection + matches the given matcher. + * Spelling corrections to documentation. + * TestProgram now has a sane default for its testRunner argument. + * The test suite passes on Python 3 again. +- Changes from version 0.9.22: + * content_from_file and content_from_stream now accept seek_offset and + seek_whence parameters allowing them to be used to grab less than the full + stream, or to be used with StringIO streams. + +------------------------------------------------------------------- +Thu Dec 6 11:00:37 UTC 2012 - saschpe@suse.de + +- Cleanup spec file +- Install HTML documentation + +------------------------------------------------------------------- +Tue Nov 13 22:06:50 UTC 2012 - jfunk@funktronics.ca + +- Update to 0.9.21: + * DirContains correctly exposed, after being accidentally hidden in the + great matcher re-organization of 0.9.17. (Jonathan Lange) +- 0.9.20 + * New, powerful matchers that match items in a dictionary: + - MatchesDict, match every key in a dictionary with a key in a + dictionary of matchers. For when the set of expected keys is equal to + the set of observed keys. + - ContainsDict, every key in a dictionary of matchers must be + found in a dictionary, and the values for those keys must match. For + when the set of expected keys is a subset of the set of observed keys. + - ContainedByDict, every key in a dictionary must be found in + a dictionary of matchers. For when the set of expected keys is a + superset of the set of observed keys. + The names are a little confusing, sorry. We're still trying to figure out + how to present the concept in the simplest way possible. +- 0.9.19 + * Include the matcher tests in the release, allowing the tests to run and + pass from the release tarball. (Jonathan Lange) + * Fix cosmetic test failures in Python 3.3, introduced during release + 0.9.17. (Jonathan Lange) +- 0.9.18 + Due to an oversight, release 0.9.18 did not contain the new + testtools.matchers package and was thus completely broken. This release + corrects that, returning us all to normality. +- 0.9.17 + This release brings better discover support and Python3.x improvements. + There are still some test failures on Python3.3 but they are cosmetic - the + library is as usable there as on any other Python 3 release. + * The testtools.matchers package has been split up. No change to the + public interface. (Jonathan Lange) + * python -m testtools.run discover . --list now works. (Robert Collins) + * Correctly handling of bytes vs text in JSON content type. (Martin [gz]) +- 0.9.16 + This is the first release of testtools to drop support for Python 2.4 and + 2.5. If you need support for either of those versions, please use testtools + 0.9.15. + * New content helper, json_content (Jonathan Lange) + * New matchers: + * ContainsAll for asserting one thing is a subset of another + (Raphaël Badin) + * SameMembers for asserting two iterators have the same members. + (Jonathan Lange) + * Reraising of exceptions in Python 3 is more reliable. (Martin [gz]) + +------------------------------------------------------------------- +Wed May 23 21:20:46 UTC 2012 - jfunk@funktronics.ca + +- Update to 0.9.15 + * PlaceHolder and ErrorHolder now support being given result + details. (Robert Collins) + * ErrorHolder is now just a function - all the logic is in + PlaceHolder. (Robert Collins) + * TestResult and all other TestResult-like objects in testtools + distinguish between global tags and test-local tags, as per the subunit + specification. (Jonathan Lange) + * This is the **last** release of testtools that supports Python 2.4 or 2.5. + These releases are no longer supported by the Python community and do not + receive security updates. If this affects you, you will need to either + stay on this release or perform your own backports. + (Jonathan Lange, Robert Collins) + * ThreadsafeForwardingResult now forwards global tags as test-local + tags, making reasoning about the correctness of the multiplexed stream + simpler. This preserves the semantic value (what tags apply to a given + test) while consuming less stream size (as no negative-tag statement is + needed). (Robert Collins, Gary Poster, #986434) + * API documentation corrections. (Raphaël Badin) + * ConcurrentTestSuite now takes an optional wrap_result parameter + that can be used to wrap the ThreadsafeForwardingResults created by + the suite. (Jonathan Lange) + * Tagger added. It's a new TestResult that tags all tests sent to + it with a particular set of tags. (Jonathan Lange) + * testresultdecorator brought over from subunit. (Jonathan Lange) + * All TestResult wrappers now correctly forward current_tags from + their wrapped results, meaning that current_tags can always be relied + upon to return the currently active tags on a test result. + * TestByTestResult, a TestResult that calls a method once per test, + added. (Jonathan Lange) + * ThreadsafeForwardingResult correctly forwards tags() calls where + only one of new_tags or gone_tags are specified. + (Jonathan Lange, #980263) + * ThreadsafeForwardingResult no longer leaks local tags from one test + into all future tests run. (Jonathan Lange, #985613) + * ThreadsafeForwardingResult has many, many more tests. (Jonathan Lange) +- Enable tests + +------------------------------------------------------------------- +Tue Feb 21 19:39:22 UTC 2012 - jfunk@funktronics.ca + +- Update to 0.9.14: + * Our sister project, subunit _, was using + a private API that was deleted in the 0.9.13 release. This release + restores that API in order to smooth out the upgrade path. + If you don't use subunit, then this release won't matter very much to you. +- 0.9.13 + - Changes + * MatchesAll now takes an first_only keyword argument that changes + how mismatches are displayed. If you were previously passing matchers to + MatchesAll with keyword arguments, then this change might affect + your test results. (Jonathan Lange) + - Improvements + * Actually hide all of the testtools stack for assertion failures. The + previous release promised clean stack, but now we actually provide it. + (Jonathan Lange, #854769) + * assertRaises now includes the repr of the callable that failed + to raise properly. (Jonathan Lange, #881052) + * Asynchronous tests no longer hang when run with trial. + (Jonathan Lange, #926189) + * Content objects now have an as_text method to convert their + contents to Unicode text. (Jonathan Lange) + * Failed equality assertions now line up. (Jonathan Lange, #879339) + * FullStackRunTest no longer aborts the test run if a test raises an + error. (Jonathan Lange) + * MatchesAll and MatchesListwise both take a first_only + keyword argument. If True, they will report only on the first mismatch + they find, and not continue looking for other possible mismatches. + (Jonathan Lange) + * New helper, Nullary that turns callables with arguments into ones + that don't take arguments. (Jonathan Lange) + * New matchers: + * DirContains matches the contents of a directory. + (Jonathan Lange, James Westby) + * DirExists matches if a directory exists. + (Jonathan Lange, James Westby) + * FileContains matches the contents of a file. + (Jonathan Lange, James Westby) + * FileExists matches if a file exists. + (Jonathan Lange, James Westby) + * HasPermissions matches the permissions of a file. (Jonathan Lange) + * MatchesPredicate matches if a predicate is true. (Jonathan Lange) + * PathExists matches if a path exists. (Jonathan Lange, James + Westby) + * SamePath matches if two paths are the same. (Jonathan Lange) + * TarballContains matches the contents of a tarball. (Jonathan + Lange) + * MultiTestResult supports the tags method. + (Graham Binns, Francesco Banconi, #914279) + * ThreadsafeForwardingResult supports the tags method. + (Graham Binns, Francesco Banconi, #914279) + * ThreadsafeForwardingResult no longer includes semaphore acquisition + time in the test duration (for implicitly timed test runs). + (Robert Collins, #914362) + +------------------------------------------------------------------- +Sun Dec 11 20:52:09 UTC 2011 - jfunk@funktronics.ca + +- Update to 0.9.12: + - Changes: + * AfterPreproccessing renamed to AfterPreprocessing, which is a + more correct spelling. Old name preserved for backwards compatibility, + but is now deprecated. Please stop using it. (Jonathan Lange, #813460) + * assertThat raises MismatchError instead of + TestCase.failureException. MismatchError is a subclass of + AssertionError, so in most cases this change will not matter. + However, if self.failureException has been set to a non-default + value, then mismatches will become test errors rather than test + failures. + * gather_details takes two dicts, rather than two detailed objects. + (Jonathan Lange, #801027) + * MatchesRegex mismatch now says " does not match //" + rather than " did not match ". The regular expression + contains fewer backslashes too. (Jonathan Lange, #818079) + * Tests that run with AsynchronousDeferredRunTest now have the + reactor attribute set to the running reactor. (Jonathan Lange, + #720749) + - Improvements: + * All public matchers are now in testtools.matchers.__all__. (Jonathan + Lange, #784859) + * assertThat can actually display mismatches and matchers that contain + extended unicode characters. (Jonathan Lange, Martin [gz], #804127) + * assertThat output is much less verbose, displaying only what the + mismatch tells us to display. Old-style verbose output can be had by + passing verbose=True to assertThat. (Jonathan Lange, #675323, + #593190) + * assertThat accepts a message which will be used to annotate the + matcher. This can be given as a third parameter or as a keyword + parameter. (Robert Collins) + * Automated the Launchpad part of the release process. (Jonathan Lange, + #623486) + * Correctly display non-ASCII unicode output on terminals that claim to + have a unicode encoding. (Martin [gz], #804122) + * DocTestMatches correctly handles unicode output from examples, + rather than raising an error. (Martin [gz], #764170) + * ErrorHolder and PlaceHolder added to docs. (Jonathan Lange, + #816597) + * ExpectedException now matches any exception of the given type by + default, and also allows specifying a Matcher rather than a mere + regular expression. (Jonathan Lange, #791889) + * FixtureSuite added, allows test suites to run with a given fixture. + (Jonathan Lange) + * Hide testtools's own stack frames when displaying tracebacks, making it + easier for test authors to focus on their errors. (Jonathan Lange, + Martin [gz], #788974) + * Less boilerplate displayed in test failures and errors. (Jonathan Lange, + #660852) + * MatchesException now allows you to match exceptions against any + matcher, rather than just regular expressions. (Jonathan Lange, #791889) + * MatchesException now permits a tuple of types rather than a single + type (when using the type matching mode). (Robert Collins) + * MatchesStructure.byEquality added to make the common case of + matching many attributes by equality much easier. + MatchesStructure.byMatcher added in case folk want to match by + things other than equality. (Jonathan Lange) + * New convenience assertions, assertIsNone and assertIsNotNone. + (Christian Kampka) + * New matchers: + * AllMatch matches many values against a single matcher. (Jonathan + Lange, #615108) + * Contains. (Robert Collins) + * GreaterThan. (Christian Kampka) + * New helper, safe_hasattr added. (Jonathan Lange) + * reraise added to testtools.compat. (Jonathan Lange) +- 0.9.11: + - Changes + * TestCase now uses super to call base unittest.TestCase + constructor, setUp and tearDown. (Tim Cole, #771508) + * If, when calling useFixture an error occurs during fixture set up, + we still attempt to gather details from the fixture. (Gavin Panella) + - Improvements + * Additional compat helper for BytesIO for libraries that build on + testtools and are working on Python 3 porting. (Robert Collins) + * Corrected documentation for MatchesStructure in the test authors + document. (Jonathan Lange) + * LessThan error message now says something that is logically correct. + (Gavin Panella, #762008) + * Multiple details from a single fixture are now kept separate, rather + than being mooshed together. (Gavin Panella, #788182) + * Python 3 support now back in action. (Martin [gz], #688729) + * try_import and try_imports have a callback that is called + whenever they fail to import a module. (Martin Pool) + +------------------------------------------------------------------- +Sat Apr 16 18:51:17 UTC 2011 - jfunk@funktronics.ca + +- Initial release + diff --git a/python-testtools.spec b/python-testtools.spec new file mode 100644 index 0000000..639b436 --- /dev/null +++ b/python-testtools.spec @@ -0,0 +1,89 @@ +# +# spec file for package python-testtools +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%define psuffix -test +%bcond_without test +%else +%define psuffix %{nil} +%bcond_with test +%endif +%{?sle15_python_module_pythons} +Name: python-testtools%{psuffix} +Version: 2.7.2 +Release: 0 +Summary: Extensions to the Python Standard Library Unit Testing Framework +License: MIT +URL: https://github.com/testing-cabal/testtools +Source0: https://files.pythonhosted.org/packages/source/t/testtools/testtools-%{version}.tar.gz +# PATCH-FIX-UPSTREAM https://github.com/testing-cabal/testtools/commit/5b8cb6497c7159f593e68de6a13e15f7e78e56e3 Prepare tests for upcoming twisted version +Patch0: twisted.patch +BuildRequires: %{python_module hatch_vcs} +BuildRequires: %{python_module pip} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +Requires: python-Twisted +%if %python_version_nodots > 311 +Requires: python-setuptools +%endif +BuildArch: noarch +%if %{with test} +BuildRequires: %{python_module fixtures} +BuildRequires: %{python_module testresources} +BuildRequires: %{python_module testscenarios} +BuildRequires: %{python_module testtools = %{version}} +%endif +Recommends: python-fixtures >= 2.0 +%python_subpackages + +%description +testtools is a set of extensions to the Python standard library's unit tests +framework. These extensions have been derived from many years of experience +with unit tests in Python and come from many different sources. testtools +also ports recent unittest changes all the way back to Python 2.4. + +%prep +%autosetup -p1 -n testtools-%{version} + +%if !%{with test} +%build +%pyproject_wheel +%endif + +%if !%{with test} +%install +%pyproject_install +%python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif + +%if %{with test} +%check +%python_exec -m testtools.run testtools.tests.test_suite +%endif + +%if !%{with test} +%files %{python_files} +%license LICENSE +%doc NEWS README.rst +%{python_sitelib}/testtools +%{python_sitelib}/testtools-%{version}.dist-info +%endif + +%changelog diff --git a/testtools-2.7.1.tar.gz b/testtools-2.7.1.tar.gz new file mode 100644 index 0000000..09f3818 --- /dev/null +++ b/testtools-2.7.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df6de96010e29ee21f637a147eabf30d50b25e3841dd1d68f93ee89ce77e366c +size 200953 diff --git a/testtools-2.7.2.tar.gz b/testtools-2.7.2.tar.gz new file mode 100644 index 0000000..9863c05 --- /dev/null +++ b/testtools-2.7.2.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5be5bbc1f0fa0f8b60aca6ceec07845d41d0c475cf445bfadb4d2c45ec397ea3 +size 201430 diff --git a/twisted.patch b/twisted.patch new file mode 100644 index 0000000..cb1482d --- /dev/null +++ b/twisted.patch @@ -0,0 +1,46 @@ +From 5b8cb6497c7159f593e68de6a13e15f7e78e56e3 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20Van=C4=9Bk?= +Date: Mon, 1 Jul 2024 10:00:05 +0200 +Subject: [PATCH] Prepare tests for upcoming twisted version + +Twisted recently changed behavior of logger on failures [1]. It newly +logs the `Main loop terminated.` even on exceptions, which breaks two +test in twistedsupport test suite. This hack attempts to address the +upcoming issue. + +[1] https://github.com/twisted/twisted/pull/12207 +--- + testtools/tests/twistedsupport/test_runtest.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/testtools/tests/twistedsupport/test_runtest.py b/testtools/tests/twistedsupport/test_runtest.py +index 4b46cc64..f8faf7c6 100644 +--- a/testtools/tests/twistedsupport/test_runtest.py ++++ b/testtools/tests/twistedsupport/test_runtest.py +@@ -16,7 +16,6 @@ + Contains, + ContainsAll, + ContainsDict, +- EndsWith, + Equals, + Is, + KeysEqual, +@@ -749,7 +748,7 @@ def test_something(self): + test, + { + "traceback": Not(Is(None)), +- "twisted-log": AsText(EndsWith(" foo\n")), ++ "twisted-log": AsText(Contains(" foo\n")), + }, + ), + ("stopTest", test), +@@ -790,7 +789,8 @@ def test_something(self): + result = self.make_result() + runner.run(result) + self.assertThat( +- messages, MatchesListwise([ContainsDict({"message": Equals(("foo",))})]) ++ messages[0:1], ++ MatchesListwise([ContainsDict({"message": Equals(("foo",))})]), + ) + + def test_restore_observers(self):