testing-cabal / testtools

Testtools - tasteful testing for python
https://testtools.readthedocs.io/en/latest/
Other
94 stars 88 forks source link

2.5.0 + master (b68af1b0): pytest is failing #332

Open kloczek opened 2 years ago

kloczek commented 2 years ago

I'm trying to package your module as an rpm package. So I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

Here is pytest output:

```console + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-testtools-2.5.0-8.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-testtools-2.5.0-8.fc35.x86_64/usr/lib/python3.8/site-packages + /usr/bin/pytest -ra -p no:randomly =========================================================================== test session starts ============================================================================ platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0 rootdir: /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0 plugins: pyfakefs-4.5.6 collected 1376 items testtools/tests/test_assert_that.py ............. [ 0%] testtools/tests/test_compat.py ..................... [ 2%] testtools/tests/test_content.py ...................................... [ 5%] testtools/tests/test_content_type.py ......... [ 5%] testtools/tests/test_distutilscmd.py ... [ 6%] testtools/tests/test_fixturesupport.py ........ [ 6%] testtools/tests/test_helpers.py ... [ 6%] testtools/tests/test_monkey.py .............. [ 7%] testtools/tests/test_run.py ............ [ 8%] testtools/tests/test_runtest.py ........................ [ 10%] testtools/tests/test_tags.py .......... [ 11%] testtools/tests/test_testcase.py ..................................................................................................................F................ [ 20%] ............................ [ 22%] testtools/tests/test_testresult.py FF............................................................................................................................... [ 32%] .................................................................................................................................................................... [ 44%] .......................................................FFF.......................................................................................................... [ 56%] ......s.....................................................................................................x..ss.......s..x..ss.......s............................ [ 67%] .. [ 68%] testtools/tests/test_testsuite.py ................. [ 69%] testtools/tests/test_with_with.py .......... [ 70%] testtools/tests/matchers/test_basic.py FFFF.................................................................... [ 75%] testtools/tests/matchers/test_const.py FFFF......... [ 76%] testtools/tests/matchers/test_datastructures.py FFFF......................... [ 78%] testtools/tests/matchers/test_dict.py FFFF................................... [ 81%] testtools/tests/matchers/test_doctest.py FFFF............ [ 82%] testtools/tests/matchers/test_exception.py FFFF.............................. [ 84%] testtools/tests/matchers/test_filesystem.py ............................ [ 86%] testtools/tests/matchers/test_higherorder.py FFFF........................................ [ 90%] testtools/tests/matchers/test_impl.py ........... [ 90%] testtools/tests/matchers/test_warnings.py FFFF................................... [ 93%] testtools/tests/twistedsupport/test_deferred.py .... [ 93%] testtools/tests/twistedsupport/test_matchers.py .............. [ 94%] testtools/tests/twistedsupport/test_runtest.py .......................................... [ 98%] testtools/tests/twistedsupport/test_spinner.py ........................... [100%] ================================================================================= FAILURES ================================================================================= ________________________________________________________________ TestRunTwiceNondeterministic.test_runTwice ________________________________________________________________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/runtest.py", line 193, in _run_user return fn(*args, **kwargs) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/testcase.py", line 702, in _run_test_method return self._get_test_method()() File "/home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/tests/test_testcase.py", line 1440, in test_runTwice test = self.case AttributeError: 'TestRunTwiceNondeterministic' object has no attribute 'case' ____________________________________________________________ TestControlContract.test_initially_not_shouldStop _____________________________________________________________ self = def test_initially_not_shouldStop(self): # A result is not set to stop initially. > result = self.makeResult() E AttributeError: 'TestControlContract' object has no attribute 'makeResult' testtools/tests/test_testresult.py:142: AttributeError ______________________________________________________________ TestControlContract.test_stop_sets_shouldStop _______________________________________________________________ self = def test_stop_sets_shouldStop(self): # Calling 'stop()' sets 'shouldStop' to True. > result = self.makeResult() E AttributeError: 'TestControlContract' object has no attribute 'makeResult' testtools/tests/test_testresult.py:147: AttributeError ________________________________________________________________ TestStreamResultContract.test_startTestRun ________________________________________________________________ self = def test_startTestRun(self): > result = self._make_result() testtools/tests/test_testresult.py:510: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:507: NotImplementedError ___________________________________________________________________ TestStreamResultContract.test_files ____________________________________________________________________ self = def test_files(self): # Test parameter combinations when files are being emitted. > result = self._make_result() testtools/tests/test_testresult.py:516: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:507: NotImplementedError ________________________________________________________________ TestStreamResultContract.test_test_status _________________________________________________________________ self = def test_test_status(self): # Tests non-file attachment parameter combinations. > result = self._make_result() testtools/tests/test_testresult.py:534: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:507: NotImplementedError _________________________________________________________________ TestMatchersInterface.test_matches_match _________________________________________________________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ____________________________________________________________________ TestMatchersInterface.test__str__ _____________________________________________________________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ______________________________________________________________ TestMatchersInterface.test_describe_difference ______________________________________________________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _______________________________________________________________ TestMatchersInterface.test_mismatch_details ________________________________________________________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError _________________________________________________________________ TestMatchersInterface.test_matches_match _________________________________________________________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ____________________________________________________________________ TestMatchersInterface.test__str__ _____________________________________________________________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ______________________________________________________________ TestMatchersInterface.test_describe_difference ______________________________________________________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _______________________________________________________________ TestMatchersInterface.test_mismatch_details ________________________________________________________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError _________________________________________________________________ TestMatchersInterface.test_matches_match _________________________________________________________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ____________________________________________________________________ TestMatchersInterface.test__str__ _____________________________________________________________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ______________________________________________________________ TestMatchersInterface.test_describe_difference ______________________________________________________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _______________________________________________________________ TestMatchersInterface.test_mismatch_details ________________________________________________________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError _________________________________________________________________ TestMatchersInterface.test_matches_match _________________________________________________________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ____________________________________________________________________ TestMatchersInterface.test__str__ _____________________________________________________________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ______________________________________________________________ TestMatchersInterface.test_describe_difference ______________________________________________________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _______________________________________________________________ TestMatchersInterface.test_mismatch_details ________________________________________________________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError _________________________________________________________________ TestMatchersInterface.test_matches_match _________________________________________________________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ____________________________________________________________________ TestMatchersInterface.test__str__ _____________________________________________________________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ______________________________________________________________ TestMatchersInterface.test_describe_difference ______________________________________________________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _______________________________________________________________ TestMatchersInterface.test_mismatch_details ________________________________________________________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError _________________________________________________________________ TestMatchersInterface.test_matches_match _________________________________________________________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ____________________________________________________________________ TestMatchersInterface.test__str__ _____________________________________________________________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ______________________________________________________________ TestMatchersInterface.test_describe_difference ______________________________________________________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _______________________________________________________________ TestMatchersInterface.test_mismatch_details ________________________________________________________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError _________________________________________________________________ TestMatchersInterface.test_matches_match _________________________________________________________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ____________________________________________________________________ TestMatchersInterface.test__str__ _____________________________________________________________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ______________________________________________________________ TestMatchersInterface.test_describe_difference ______________________________________________________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _______________________________________________________________ TestMatchersInterface.test_mismatch_details ________________________________________________________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError _________________________________________________________________ TestMatchersInterface.test_matches_match _________________________________________________________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ____________________________________________________________________ TestMatchersInterface.test__str__ _____________________________________________________________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ______________________________________________________________ TestMatchersInterface.test_describe_difference ______________________________________________________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _______________________________________________________________ TestMatchersInterface.test_mismatch_details ________________________________________________________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ============================================================================= warnings summary ============================================================================= testtools/distutilscmd.py:14 /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/distutilscmd.py:14: PytestCollectionWarning: cannot collect test class 'TestCommand' because it has a __init__ constructor (from: testtools/tests/test_distutilscmd.py) class TestCommand(Command): testtools/tests/test_monkey.py:11 /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/tests/test_monkey.py:11: PytestCollectionWarning: cannot collect test class 'TestObj' because it has a __init__ constructor (from: testtools/tests/test_monkey.py) class TestObj: ../../../../../usr/lib64/python3.8/unittest/suite.py:92 /usr/lib64/python3.8/unittest/suite.py:92: PytestCollectionWarning: cannot collect test class 'TestSuite' because it has a __init__ constructor (from: testtools/tests/test_run.py) class TestSuite(BaseTestSuite): testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/test_runtest.py) class TestResult(unittest.TestResult): ../../../../../usr/lib64/python3.8/unittest/case.py:26 /usr/lib64/python3.8/unittest/case.py:26: PytestCollectionWarning: cannot collect test class 'SkipTest' because it has a __init__ constructor (from: testtools/tests/test_testcase.py) class SkipTest(Exception): ../../../../../usr/lib64/python3.8/unittest/suite.py:92 /usr/lib64/python3.8/unittest/suite.py:92: PytestCollectionWarning: cannot collect test class 'TestSuite' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestSuite(BaseTestSuite): testtools/testresult/real.py:1027 /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/testresult/real.py:1027: PytestCollectionWarning: cannot collect test class 'TestControl' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestControl: testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestResult(unittest.TestResult): testtools/testresult/real.py:1857 /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/testresult/real.py:1857: PytestCollectionWarning: cannot collect test class 'TestResultDecorator' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestResultDecorator: testtools/testresult/real.py:1944 /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/testresult/real.py:1944: PytestCollectionWarning: cannot collect test class 'TestByTestResult' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestByTestResult(TestResult): testtools/testresult/real.py:1944 /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/testresult/real.py:1944: PytestCollectionWarning: cannot collect test class 'TestByTestResult' because it has a __init__ constructor (from: testtools/tests/test_testsuite.py) class TestByTestResult(TestResult): testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/twistedsupport/test_runtest.py) class TestResult(unittest.TestResult): testtools/tests/test_distutilscmd.py::TestCommandTest::test_test_module testtools/tests/test_distutilscmd.py::TestCommandTest::test_test_suite /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/distutilscmd.py:32: DeprecationWarning: Distutils integration is deprecated and will be removed in the next major release. Refer to https://github.com/pypa/setuptools/issues/1684 for more information. warnings.warn( testtools/tests/test_testcase.py::TestAssertions::test_assertRaisesRegexp /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/tests/test_testcase.py:392: DeprecationWarning: Please use assertRaisesRegex instead. self.assertRaisesRegexp(RuntimeError, r"M\w*e", self.raiseError, testtools/tests/test_testcase.py::TestAssertions::test_assertRaisesRegexp_wrong_error_type testtools/tests/test_testcase.py::TestAssertions::test_assertRaisesRegexp_wrong_message /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/testcase.py:1039: DeprecationWarning: Please use assertRaisesRegex instead. return self._callable_object(*self._args, **self._kwargs) testtools/tests/test_testcase.py::TestSkipping::test_skip_causes_skipException /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/tests/test_testcase.py:1458: DeprecationWarning: Only valid in 1.8.1 and earlier. Use skipTest instead. lambda: self.skip("Skip this test"), testtools/tests/test_testresult.py::TestTextTestResult::test_stopTestRun_shows_details /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/tests/test_testresult.py:1569: DeprecationWarning: Only valid in 1.8.1 and earlier. Use skipTest instead. self.skip("Disabled per bug 1188420") testtools/tests/test_testresult.py::TestNonAsciiResults::test_non_ascii_failure_string testtools/tests/test_testresult.py::TestNonAsciiResults::test_non_ascii_failure_string_via_exec testtools/tests/test_testresult.py::TestNonAsciiResults::test_unicode_exception testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_non_ascii_failure_string testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_non_ascii_failure_string_via_exec testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_unicode_exception /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/tests/test_testresult.py:2571: DeprecationWarning: Only valid in 1.8.1 and earlier. Use skipTest instead. self.skip("Could not find a sample text for encoding: %r" % encoding) testtools/tests/twistedsupport/test_runtest.py::TestRunWithLogObservers::test_restores_observers /home/tkloczko/rpmbuild/BUILD/testtools-2.5.0/testtools/tests/twistedsupport/test_runtest.py:884: DeprecationWarning: run_with_log_observers is deprecated since 1.8.2. run_with_log_observers([], lambda: None) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ========================================================================= short test summary info ========================================================================== SKIPPED [1] testtools/tests/test_testresult.py:1568: Disabled per bug 1188420 SKIPPED [2] testtools/tests/test_testresult.py:2576: Could not find a sample text for encoding: 'ascii' SKIPPED [2] testtools/tests/test_testresult.py:2582: Could not find a sample text for encoding: 'ascii' SKIPPED [2] testtools/tests/test_testresult.py:2625: Could not find a sample text for encoding: 'unicode_internal' XFAIL testtools/tests/test_testresult.py::TestNonAsciiResults::test_control_characters_in_failure_string reason: XFAIL testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_control_characters_in_failure_string reason: FAILED testtools/tests/test_testcase.py::TestRunTwiceNondeterministic::test_runTwice FAILED testtools/tests/test_testresult.py::TestControlContract::test_initially_not_shouldStop - AttributeError: 'TestControlContract' object has no attribute 'makeResult' FAILED testtools/tests/test_testresult.py::TestControlContract::test_stop_sets_shouldStop - AttributeError: 'TestControlContract' object has no attribute 'makeResult' FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_startTestRun - NotImplementedError:
bigjools commented 2 years ago

Is there any reason you're not using the testtools test runner?

kloczek commented 2 years ago

I have 11 reasons 😄 😋

[tkloczko@devel-g2v SPECS]$ grep  'python3dist(testtools)' *
python-fasteners.spec:BuildRequires:    python3dist(testtools)
python-fixtures.spec:BuildRequires:     python3dist(testtools)  >= 0.9.22
python-hacking.spec:BuildRequires:      python3dist(testtools)
python-requests-mock.spec:BuildRequires:        python3dist(testtools)
python-subunit.spec:BuildRequires:      python3dist(testtools)  >= 2.5
python-testrepository.spec:BuildRequires:       python3dist(testtools)
python-testresources.spec:BuildRequires:        python3dist(testtools)
python-testscenarios.spec:BuildRequires:        python3dist(testtools)
python-traceback2.spec:BuildRequires:   python3dist(testtools)
python-zope-testrunner.spec:BuildRequires:      python3dist(testtools)
subunit.spec:BuildRequires:     python3dist(testtools)  >= 1.8.0
rbtcollins commented 2 years ago

I don't understand your reasons, nor why you are insisting on using an entirely different testing framework to test this package.

pytest is not equal to unittest, and unittest is not equal to testtools, which is not equal to nosetests and so on throughout the ecosystem.

PEP-517 doesn't mandate py.test at all, and bugs with PEP-517 support would be taken seriously.

OTOH I'm largely emeritus here, so if you convince folk that py.test compatibility should be worked on, so be it - but it makes no sense on the face of it.

kloczek commented 2 years ago

I don't understand your reasons, nor why you are insisting on using an entirely different testing framework to test this package.

Because in my packaging approach if test suite is provided and it is able to test something it needs to be used. More test -> more opportunities to catch some issue not only in tested code but whole tooling used by exact package test suite as well -> quality of whole packages distribution is going up.

pytest is not equal to unittest, and unittest is not equal to testtools, which is not equal to nosetests and so on throughout the ecosystem.

Enough fresh unittest test suite can be correctly handled by pytest. Some stat about how often I was able to use so far pytest in case of +900 modules population

[tkloczko@devel-g2v SPECS]$ grep ^%pytest python-* | wc -l; grep ^%tox python-* | wc -l; grep ^%py3_test python-*|wc -l; ls -1 python-* | wc -l
897
1
7
940

As you see almost 95% of all packages modules I was able to use pytest. In last two days I was able to increase tag stat by 5% using patched pytest using https://github.com/pytest-dev/pytest/issues/9976. My target is to have 100%.

rbtcollins commented 2 years ago

So, entirely in favour of more testing. Thats great. But its entirely irrelevant to this discussion.

If py.test want to offer support for testtools extended protocols, thats up to py.test to offer. testtools only guarantees that it can be tested with itself.

kloczek commented 2 years ago

For the starter please try to have look on DeprecationWarning warnings.

kloczek commented 2 years ago

Please try to understand me .. I'm just a messenger. As you see I have my own goals in which using pytest everywhere has its crucial value. Whole "painted by pytest picture" does not need to be perfect. At least needs to show me "a picture" which I'm going to use as baseline for regression tests in the future. In that kind of approach any changes on that "picture" during day-to-day whole distribution updates would be early signal that change in package A affects packages X, Y, Z. That signal will be generated almost instantly. As you can see I can deliver you in the future completely automatically generated report with exact impact on some population of other modules which are using your module. If you may help me now bringing pytest to kind of useable form I can help you lowering the risk releasing something which may trash/not work other people projects. That is my kind of offer .. Are you interested in such an offer? 😋

bigjools commented 2 years ago

I don't think you're going to get any traction trying to test with pytest here. Testtools can test itself, and it meets your needs to test like that as far as I can tell, so I don't understand the resistance to using it. As Robert says, it looks like pytest lacks testtools extended protocols.

kloczek commented 1 year ago

gentle ping .. just tested and looks like 2.6.0 still fails in the same units 🤔

cjwatson commented 1 year ago

If you want this to happen, you're very likely to need to figure out how to get it working for yourself and send PRs. Pings probably won't get anyone excited to work on testing one test-running framework using a different test-running framework.

kloczek commented 1 year ago

Hmm .. so you've not been able to reproduce those fails? 🤔

cjwatson commented 1 year ago

Since it's not our supported way to run the test suite, I haven't spent any time even trying.

kloczek commented 1 year ago

Since it's not our supported way to run the test suite, I haven't spent any time even trying.

pytest shows many warnings which is not possible to see with your way of testing. At least please try to review those warnings. As well pytest is de facto standard test suite framework with many extensions. Using it really can make maintenance of your module easier. Errors shows as well shows code issues.

Other issue is that tet suite (testtools/tests/) is part of the installed resources. This part should be not included in .whl archive.

And update of latest version of pytest ourput (now it fails one unit more)

```console + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-testtools-2.6.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-testtools-2.6.0-2.fc35.x86_64/usr/lib/python3.8/site-packages + /usr/bin/pytest -ra -m 'not network' -p no:randomly ============================= test session starts ============================== platform linux -- Python 3.8.17, pytest-7.4.0, pluggy-1.0.0 rootdir: /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0 collected 1378 items testtools/tests/test_assert_that.py ............. [ 0%] testtools/tests/test_compat.py ..................... [ 2%] testtools/tests/test_content.py ...................................... [ 5%] testtools/tests/test_content_type.py ......... [ 5%] testtools/tests/test_distutilscmd.py ... [ 6%] testtools/tests/test_fixturesupport.py ........ [ 6%] testtools/tests/test_helpers.py ... [ 6%] testtools/tests/test_monkey.py .............. [ 7%] testtools/tests/test_run.py ............ [ 8%] testtools/tests/test_runtest.py ........................ [ 10%] testtools/tests/test_tags.py .......... [ 11%] testtools/tests/test_testcase.py ....................................... [ 14%] ........................................................................ [ 19%] .....F............................................ [ 22%] testtools/tests/test_testresult.py FF................................... [ 25%] ........................................................................ [ 30%] ........................................................................ [ 36%] ........................................................................ [ 41%] ........................................................................ [ 46%] .......................FFF.............................................. [ 51%] ..................................................................s..... [ 56%] ........................................................................ [ 62%] ........................x..ss.......sF.x..ss.......sF................... [ 67%] .......... [ 68%] testtools/tests/test_testsuite.py ................. [ 69%] testtools/tests/test_with_with.py .......... [ 70%] testtools/tests/matchers/test_basic.py FFFF............................. [ 72%] ....................................... [ 75%] testtools/tests/matchers/test_const.py FFFF......... [ 76%] testtools/tests/matchers/test_datastructures.py FFFF.................... [ 78%] ..... [ 78%] testtools/tests/matchers/test_dict.py FFFF.............................. [ 80%] ..... [ 81%] testtools/tests/matchers/test_doctest.py FFFF............ [ 82%] testtools/tests/matchers/test_exception.py FFFF......................... [ 84%] ..... [ 84%] testtools/tests/matchers/test_filesystem.py ............................ [ 86%] [ 86%] testtools/tests/matchers/test_higherorder.py FFFF....................... [ 88%] ................. [ 90%] testtools/tests/matchers/test_impl.py ........... [ 90%] testtools/tests/matchers/test_warnings.py FFFF.......................... [ 93%] ......... [ 93%] testtools/tests/twistedsupport/test_deferred.py .... [ 93%] testtools/tests/twistedsupport/test_matchers.py .............. [ 94%] testtools/tests/twistedsupport/test_runtest.py ......................... [ 96%] ................. [ 98%] testtools/tests/twistedsupport/test_spinner.py ......................... [ 99%] .. [100%] =================================== FAILURES =================================== __________________ TestRunTwiceNondeterministic.test_runTwice __________________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/runtest.py", line 193, in _run_user return fn(*args, **kwargs) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 703, in _run_test_method return self._get_test_method()() File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/test_testcase.py", line 1449, in test_runTwice test = self.case AttributeError: 'TestRunTwiceNondeterministic' object has no attribute 'case' ______________ TestControlContract.test_initially_not_shouldStop _______________ self = def test_initially_not_shouldStop(self): # A result is not set to stop initially. > result = self.makeResult() E AttributeError: 'TestControlContract' object has no attribute 'makeResult' testtools/tests/test_testresult.py:141: AttributeError ________________ TestControlContract.test_stop_sets_shouldStop _________________ self = def test_stop_sets_shouldStop(self): # Calling 'stop()' sets 'shouldStop' to True. > result = self.makeResult() E AttributeError: 'TestControlContract' object has no attribute 'makeResult' testtools/tests/test_testresult.py:146: AttributeError __________________ TestStreamResultContract.test_startTestRun __________________ self = def test_startTestRun(self): > result = self._make_result() testtools/tests/test_testresult.py:509: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:506: NotImplementedError _____________________ TestStreamResultContract.test_files ______________________ self = def test_files(self): # Test parameter combinations when files are being emitted. > result = self._make_result() testtools/tests/test_testresult.py:515: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:506: NotImplementedError __________________ TestStreamResultContract.test_test_status ___________________ self = def test_test_status(self): # Tests non-file attachment parameter combinations. > result = self._make_result() testtools/tests/test_testresult.py:533: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:506: NotImplementedError ________________ TestNonAsciiResults.test_unprintable_exception ________________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/test_testresult.py", line 2655, in test_unprintable_exception self.assertIn(self._as_output(expected), textoutput) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 400, in assertIn self.assertThat(haystack, Contains(needle), message) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 481, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: 'UnprintableError: \n' not in 'Tests running...\n======================================================================\nERROR: test_unprintable_exception.Test.runTest\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/TestNonAsciiResultsrfo9bps1/test_unprintable_exception.py", line 13, in runTest\n raise UnprintableError\ntest_unprintable_exception.UnprintableError: \n\nRan 1 test in 0.001s\nFAILED (failures=1)\n' __________ TestNonAsciiResultsWithUnittest.test_unprintable_exception __________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/test_testresult.py", line 2655, in test_unprintable_exception self.assertIn(self._as_output(expected), textoutput) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 400, in assertIn self.assertThat(haystack, Contains(needle), message) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 481, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: 'UnprintableError: \n' not in 'E\n======================================================================\nERROR: runTest (test_unprintable_exception.Test)\ntest_unprintable_exception.Test.runTest\n----------------------------------------------------------------------\ntesttools.testresult.real._StringException: Traceback (most recent call last):\n File "/tmp/TestNonAsciiResultsWithUnittest8d3lvdko/test_unprintable_exception.py", line 13, in runTest\n raise UnprintableError\ntest_unprintable_exception.UnprintableError: \n\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (errors=1)\n' ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError =============================== warnings summary =============================== testtools/distutilscmd.py:14 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/distutilscmd.py:14: PytestCollectionWarning: cannot collect test class 'TestCommand' because it has a __init__ constructor (from: testtools/tests/test_distutilscmd.py) class TestCommand(Command): testtools/tests/test_monkey.py:11 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/test_monkey.py:11: PytestCollectionWarning: cannot collect test class 'TestObj' because it has a __init__ constructor (from: testtools/tests/test_monkey.py) class TestObj: ../../../../../usr/lib64/python3.8/unittest/suite.py:92 /usr/lib64/python3.8/unittest/suite.py:92: PytestCollectionWarning: cannot collect test class 'TestSuite' because it has a __init__ constructor (from: testtools/tests/test_run.py) class TestSuite(BaseTestSuite): testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/test_runtest.py) class TestResult(unittest.TestResult): ../../../../../usr/lib64/python3.8/unittest/case.py:26 /usr/lib64/python3.8/unittest/case.py:26: PytestCollectionWarning: cannot collect test class 'SkipTest' because it has a __init__ constructor (from: testtools/tests/test_testcase.py) class SkipTest(Exception): ../../../../../usr/lib64/python3.8/unittest/suite.py:92 /usr/lib64/python3.8/unittest/suite.py:92: PytestCollectionWarning: cannot collect test class 'TestSuite' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestSuite(BaseTestSuite): testtools/testresult/real.py:1030 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:1030: PytestCollectionWarning: cannot collect test class 'TestControl' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestControl: testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestResult(unittest.TestResult): testtools/testresult/real.py:1860 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:1860: PytestCollectionWarning: cannot collect test class 'TestResultDecorator' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestResultDecorator: testtools/testresult/real.py:1947 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:1947: PytestCollectionWarning: cannot collect test class 'TestByTestResult' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestByTestResult(TestResult): testtools/testresult/real.py:1947 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:1947: PytestCollectionWarning: cannot collect test class 'TestByTestResult' because it has a __init__ constructor (from: testtools/tests/test_testsuite.py) class TestByTestResult(TestResult): testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/twistedsupport/test_runtest.py) class TestResult(unittest.TestResult): testtools/tests/test_assert_that.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_assert_that.py::test_suite returned , , , , , ]>, , , , , , ]>, ]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_compat.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_compat.py::test_suite returned , ]>, , , , , , , , , , ]>, , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_content.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_content.py::test_suite returned , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , ]>, , , , ]>, , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_content_type.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_content_type.py::test_suite returned , ]>, , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_distutilscmd.py::TestCommandTest::test_test_module testtools/tests/test_distutilscmd.py::TestCommandTest::test_test_suite /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/distutilscmd.py:32: DeprecationWarning: Distutils integration is deprecated and will be removed in the next major release. Refer to https://github.com/pypa/setuptools/issues/1684 for more information. warnings.warn( testtools/tests/test_distutilscmd.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_distutilscmd.py::test_suite returned , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_fixturesupport.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_fixturesupport.py::test_suite returned , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_helpers.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_helpers.py::test_suite returned , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_monkey.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_monkey.py::test_suite returned , , , , , , , , , , ]>, , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_run.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_run.py::test_suite returned , , , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_runtest.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_runtest.py::test_suite returned , , , , , , , , , , , , , , , , ]>, , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_tags.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_tags.py::test_suite returned , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_testcase.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_testcase.py::test_suite returned , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , ]>, , , ]>, , , , ]>, , , , , , , , , , , ]>, , ]>, , , , , , , , , ]>, , , , , , ]>, , , , ]>, , , ]>, , , , , , ]>, , , , , , , , , , , , , , , , , ]>, ]>, ]>, ]>, , , , ]>, , , , , , , , , , , , , , , , , , , , , ]>, , ]>, , , , , , ]>, ]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_testresult.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_testresult.py::test_suite returned , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , ]>, , , , , , , , , , , , , , , ]>, , , , ]>, , , ]>, , , , , , , , ]>, , , ]>, , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , ]>, , , , , , , ]>, , , , , , , ]>, , , , , , , , ]>, , , , , , ]>, , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , ]>, , ]>, , , ]>, , , ]>, , , , ]>, , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , ]>, , , , , , ]>, , , , , , , , , , , , , , ]>, , , , , ]>, , , ]>, , , , , , , ]>, , , ]>, , , , , , , , , , , , , ]>, , , ]>, , , , , , , , , ]>, , , ]>, , ]>, , , ]>, , , , , , ]>, , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , ]>, , , ]>, , , ]>, ]>, , ]>, , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_testsuite.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_testsuite.py::test_suite returned , ]>, , , , , ]>, , , ]>, , ]>, , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_with_with.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_with_with.py::test_suite returned , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_basic.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_basic.py::test_suite returned , , ]>, , , ]>, , , , , , , ]>, , , , , , , ]>, , , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_const.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_const.py::test_suite returned , , , ]>, , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_datastructures.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_datastructures.py::test_suite returned , , , , ]>, ]>, , , , , , , , , , ]>, , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_dict.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_dict.py::test_suite returned , , , , ]>, , , , ]>, , , , ]>, , , , , ]>, , , , , ]>, , , , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_doctest.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_doctest.py::test_suite returned , , , , ]>, , , , ]>, , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_exception.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_exception.py::test_suite returned , , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , ]>, , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_filesystem.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_filesystem.py::test_suite returned , , , , , , , ]>, , , ]>, , , , , , ]>, , , ]>, ]>, , ]>, , , ]>, , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_higherorder.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_higherorder.py::test_suite returned , , , ]>, , , , ]>, , , , , , ]>, ]>, , , , ]>, , , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_impl.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_impl.py::test_suite returned , , ]>, , , ]>, , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_warnings.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_warnings.py::test_suite returned , ]>, ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_deferred.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_deferred.py::test_suite returned , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_matchers.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_matchers.py::test_suite returned , , , ]>, , , , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_runtest.py::TestRunWithLogObservers::test_restores_observers /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/twistedsupport/test_runtest.py:884: DeprecationWarning: run_with_log_observers is deprecated since 1.8.2. run_with_log_observers([], lambda: None) testtools/tests/twistedsupport/test_runtest.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_runtest.py::test_suite returned , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , ]>, ]>, , ]>, , , ]>, ]>, , , ]>, ]>, , , , , , , , , , , , , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_spinner.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_spinner.py::test_suite returned , , ]>, , , , , , , , , , , , , , , , , , , , , , ]>, , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ SKIPPED [1] testtools/tests/test_testresult.py:1567: Disabled per bug 1188420 SKIPPED [2] testtools/tests/test_testresult.py:2575: Could not find a sample text for encoding: 'ascii' SKIPPED [2] testtools/tests/test_testresult.py:2581: Could not find a sample text for encoding: 'ascii' SKIPPED [2] testtools/tests/test_testresult.py:2624: Could not find a sample text for encoding: 'unicode_internal' XFAIL testtools/tests/test_testresult.py::TestNonAsciiResults::test_control_characters_in_failure_string - reason: XFAIL testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_control_characters_in_failure_string - reason: FAILED testtools/tests/test_testcase.py::TestRunTwiceNondeterministic::test_runTwice FAILED testtools/tests/test_testresult.py::TestControlContract::test_initially_not_shouldStop FAILED testtools/tests/test_testresult.py::TestControlContract::test_stop_sets_shouldStop FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_startTestRun FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_files FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_test_status FAILED testtools/tests/test_testresult.py::TestNonAsciiResults::test_unprintable_exception FAILED testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_unprintable_exception FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test_mismatch_details ====== 40 failed, 1329 passed, 7 skipped, 2 xfailed, 44 warnings in 3.03s ====== ```
cjwatson commented 1 year ago

If you want this sort of thing improved, you're going to have to put the work in and send patches yourself.

kloczek commented 1 year ago

And you will changes related to pytest? 🤔

cjwatson commented 1 year ago

(I assume you meant "you will review".)

Reviewing PRs is at least a lot more likely that being receptive to incessant harassment via issues.

kloczek commented 11 months ago

Just tested 2.6.0 and looks like now pytest is failing in 40 units

```console + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-testtools-2.6.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-testtools-2.6.0-2.fc35.x86_64/usr/lib/python3.8/site-packages + /usr/bin/pytest -ra -m 'not network' -p no:randomly ============================= test session starts ============================== platform linux -- Python 3.8.18, pytest-7.4.2, pluggy-1.3.0 rootdir: /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0 collected 1378 items testtools/tests/test_assert_that.py ............. [ 0%] testtools/tests/test_compat.py ..................... [ 2%] testtools/tests/test_content.py ...................................... [ 5%] testtools/tests/test_content_type.py ......... [ 5%] testtools/tests/test_distutilscmd.py ... [ 6%] testtools/tests/test_fixturesupport.py ........ [ 6%] testtools/tests/test_helpers.py ... [ 6%] testtools/tests/test_monkey.py .............. [ 7%] testtools/tests/test_run.py ............ [ 8%] testtools/tests/test_runtest.py ........................ [ 10%] testtools/tests/test_tags.py .......... [ 11%] testtools/tests/test_testcase.py ....................................... [ 14%] ........................................................................ [ 19%] .....F............................................ [ 22%] testtools/tests/test_testresult.py FF................................... [ 25%] ........................................................................ [ 30%] ........................................................................ [ 36%] ........................................................................ [ 41%] ........................................................................ [ 46%] .......................FFF.............................................. [ 51%] ..................................................................s..... [ 56%] ........................................................................ [ 62%] ........................x..ss.......sF.x..ss.......sF................... [ 67%] .......... [ 68%] testtools/tests/test_testsuite.py ................. [ 69%] testtools/tests/test_with_with.py .......... [ 70%] testtools/tests/matchers/test_basic.py FFFF............................. [ 72%] ....................................... [ 75%] testtools/tests/matchers/test_const.py FFFF......... [ 76%] testtools/tests/matchers/test_datastructures.py FFFF.................... [ 78%] ..... [ 78%] testtools/tests/matchers/test_dict.py FFFF.............................. [ 80%] ..... [ 81%] testtools/tests/matchers/test_doctest.py FFFF............ [ 82%] testtools/tests/matchers/test_exception.py FFFF......................... [ 84%] ..... [ 84%] testtools/tests/matchers/test_filesystem.py ............................ [ 86%] [ 86%] testtools/tests/matchers/test_higherorder.py FFFF....................... [ 88%] ................. [ 90%] testtools/tests/matchers/test_impl.py ........... [ 90%] testtools/tests/matchers/test_warnings.py FFFF.......................... [ 93%] ......... [ 93%] testtools/tests/twistedsupport/test_deferred.py .... [ 93%] testtools/tests/twistedsupport/test_matchers.py .............. [ 94%] testtools/tests/twistedsupport/test_runtest.py ......................... [ 96%] ................. [ 98%] testtools/tests/twistedsupport/test_spinner.py ......................... [ 99%] .. [100%] =================================== FAILURES =================================== __________________ TestRunTwiceNondeterministic.test_runTwice __________________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/runtest.py", line 193, in _run_user return fn(*args, **kwargs) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 703, in _run_test_method return self._get_test_method()() File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/test_testcase.py", line 1449, in test_runTwice test = self.case AttributeError: 'TestRunTwiceNondeterministic' object has no attribute 'case' ______________ TestControlContract.test_initially_not_shouldStop _______________ self = def test_initially_not_shouldStop(self): # A result is not set to stop initially. > result = self.makeResult() E AttributeError: 'TestControlContract' object has no attribute 'makeResult' testtools/tests/test_testresult.py:141: AttributeError ________________ TestControlContract.test_stop_sets_shouldStop _________________ self = def test_stop_sets_shouldStop(self): # Calling 'stop()' sets 'shouldStop' to True. > result = self.makeResult() E AttributeError: 'TestControlContract' object has no attribute 'makeResult' testtools/tests/test_testresult.py:146: AttributeError __________________ TestStreamResultContract.test_startTestRun __________________ self = def test_startTestRun(self): > result = self._make_result() testtools/tests/test_testresult.py:509: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:506: NotImplementedError _____________________ TestStreamResultContract.test_files ______________________ self = def test_files(self): # Test parameter combinations when files are being emitted. > result = self._make_result() testtools/tests/test_testresult.py:515: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:506: NotImplementedError __________________ TestStreamResultContract.test_test_status ___________________ self = def test_test_status(self): # Tests non-file attachment parameter combinations. > result = self._make_result() testtools/tests/test_testresult.py:533: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:506: NotImplementedError ________________ TestNonAsciiResults.test_unprintable_exception ________________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/test_testresult.py", line 2655, in test_unprintable_exception self.assertIn(self._as_output(expected), textoutput) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 400, in assertIn self.assertThat(haystack, Contains(needle), message) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 481, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: 'UnprintableError: \n' not in 'Tests running...\n======================================================================\nERROR: test_unprintable_exception.Test.runTest\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/TestNonAsciiResultsxgi3gax6/test_unprintable_exception.py", line 13, in runTest\n raise UnprintableError\ntest_unprintable_exception.UnprintableError: \n\nRan 1 test in 0.001s\nFAILED (failures=1)\n' __________ TestNonAsciiResultsWithUnittest.test_unprintable_exception __________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/test_testresult.py", line 2655, in test_unprintable_exception self.assertIn(self._as_output(expected), textoutput) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 400, in assertIn self.assertThat(haystack, Contains(needle), message) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testcase.py", line 481, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: 'UnprintableError: \n' not in 'E\n======================================================================\nERROR: runTest (test_unprintable_exception.Test)\ntest_unprintable_exception.Test.runTest\n----------------------------------------------------------------------\ntesttools.testresult.real._StringException: Traceback (most recent call last):\n File "/tmp/TestNonAsciiResultsWithUnittesto0kh8c6l/test_unprintable_exception.py", line 13, in runTest\n raise UnprintableError\ntest_unprintable_exception.UnprintableError: \n\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (errors=1)\n' ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError =============================== warnings summary =============================== testtools/distutilscmd.py:14 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/distutilscmd.py:14: PytestCollectionWarning: cannot collect test class 'TestCommand' because it has a __init__ constructor (from: testtools/tests/test_distutilscmd.py) class TestCommand(Command): testtools/tests/test_monkey.py:11 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/test_monkey.py:11: PytestCollectionWarning: cannot collect test class 'TestObj' because it has a __init__ constructor (from: testtools/tests/test_monkey.py) class TestObj: ../../../../../usr/lib64/python3.8/unittest/suite.py:92 /usr/lib64/python3.8/unittest/suite.py:92: PytestCollectionWarning: cannot collect test class 'TestSuite' because it has a __init__ constructor (from: testtools/tests/test_run.py) class TestSuite(BaseTestSuite): testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/test_runtest.py) class TestResult(unittest.TestResult): ../../../../../usr/lib64/python3.8/unittest/case.py:26 /usr/lib64/python3.8/unittest/case.py:26: PytestCollectionWarning: cannot collect test class 'SkipTest' because it has a __init__ constructor (from: testtools/tests/test_testcase.py) class SkipTest(Exception): ../../../../../usr/lib64/python3.8/unittest/suite.py:92 /usr/lib64/python3.8/unittest/suite.py:92: PytestCollectionWarning: cannot collect test class 'TestSuite' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestSuite(BaseTestSuite): testtools/testresult/real.py:1030 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:1030: PytestCollectionWarning: cannot collect test class 'TestControl' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestControl: testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestResult(unittest.TestResult): testtools/testresult/real.py:1860 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:1860: PytestCollectionWarning: cannot collect test class 'TestResultDecorator' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestResultDecorator: testtools/testresult/real.py:1947 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:1947: PytestCollectionWarning: cannot collect test class 'TestByTestResult' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestByTestResult(TestResult): testtools/testresult/real.py:1947 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:1947: PytestCollectionWarning: cannot collect test class 'TestByTestResult' because it has a __init__ constructor (from: testtools/tests/test_testsuite.py) class TestByTestResult(TestResult): testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/twistedsupport/test_runtest.py) class TestResult(unittest.TestResult): testtools/tests/test_assert_that.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_assert_that.py::test_suite returned , , , , , ]>, , , , , , ]>, ]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_compat.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_compat.py::test_suite returned , ]>, , , , , , , , , , ]>, , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_content.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_content.py::test_suite returned , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , ]>, , , , ]>, , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_content_type.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_content_type.py::test_suite returned , ]>, , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_distutilscmd.py::TestCommandTest::test_test_module testtools/tests/test_distutilscmd.py::TestCommandTest::test_test_suite /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/distutilscmd.py:32: DeprecationWarning: Distutils integration is deprecated and will be removed in the next major release. Refer to https://github.com/pypa/setuptools/issues/1684 for more information. warnings.warn( testtools/tests/test_distutilscmd.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_distutilscmd.py::test_suite returned , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_fixturesupport.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_fixturesupport.py::test_suite returned , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_helpers.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_helpers.py::test_suite returned , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_monkey.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_monkey.py::test_suite returned , , , , , , , , , , ]>, , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_run.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_run.py::test_suite returned , , , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_runtest.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_runtest.py::test_suite returned , , , , , , , , , , , , , , , , ]>, , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_tags.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_tags.py::test_suite returned , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_testcase.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_testcase.py::test_suite returned , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , ]>, , , ]>, , , , ]>, , , , , , , , , , , ]>, , ]>, , , , , , , , , ]>, , , , , , ]>, , , , ]>, , , ]>, , , , , , ]>, , , , , , , , , , , , , , , , , ]>, ]>, ]>, ]>, , , , ]>, , , , , , , , , , , , , , , , , , , , , ]>, , ]>, , , , , , ]>, ]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_testresult.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_testresult.py::test_suite returned , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , ]>, , , , , , , , , , , , , , , ]>, , , , ]>, , , ]>, , , , , , , , ]>, , , ]>, , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , ]>, , , , , , , ]>, , , , , , , ]>, , , , , , , , ]>, , , , , , ]>, , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , ]>, , ]>, , , ]>, , , ]>, , , , ]>, , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , ]>, , , , , , ]>, , , , , , , , , , , , , , ]>, , , , , ]>, , , ]>, , , , , , , ]>, , , ]>, , , , , , , , , , , , , ]>, , , ]>, , , , , , , , , ]>, , , ]>, , ]>, , , ]>, , , , , , ]>, , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , ]>, , , ]>, , , ]>, ]>, , ]>, , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_testsuite.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_testsuite.py::test_suite returned , ]>, , , , , ]>, , , ]>, , ]>, , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_with_with.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_with_with.py::test_suite returned , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_basic.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_basic.py::test_suite returned , , ]>, , , ]>, , , , , , , ]>, , , , , , , ]>, , , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_const.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_const.py::test_suite returned , , , ]>, , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_datastructures.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_datastructures.py::test_suite returned , , , , ]>, ]>, , , , , , , , , , ]>, , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_dict.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_dict.py::test_suite returned , , , , ]>, , , , ]>, , , , ]>, , , , , ]>, , , , , ]>, , , , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_doctest.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_doctest.py::test_suite returned , , , , ]>, , , , ]>, , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_exception.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_exception.py::test_suite returned , , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , ]>, , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_filesystem.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_filesystem.py::test_suite returned , , , , , , , ]>, , , ]>, , , , , , ]>, , , ]>, ]>, , ]>, , , ]>, , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_higherorder.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_higherorder.py::test_suite returned , , , ]>, , , , ]>, , , , , , ]>, ]>, , , , ]>, , , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_impl.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_impl.py::test_suite returned , , ]>, , , ]>, , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_warnings.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_warnings.py::test_suite returned , ]>, ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_deferred.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_deferred.py::test_suite returned , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_matchers.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_matchers.py::test_suite returned , , , ]>, , , , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_runtest.py::TestRunWithLogObservers::test_restores_observers /home/tkloczko/rpmbuild/BUILD/testtools-2.6.0/testtools/tests/twistedsupport/test_runtest.py:884: DeprecationWarning: run_with_log_observers is deprecated since 1.8.2. run_with_log_observers([], lambda: None) testtools/tests/twistedsupport/test_runtest.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_runtest.py::test_suite returned , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , ]>, ]>, , ]>, , , ]>, ]>, , , ]>, ]>, , , , , , , , , , , , , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_spinner.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_spinner.py::test_suite returned , , ]>, , , , , , , , , , , , , , , , , , , , , , ]>, , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ SKIPPED [1] testtools/tests/test_testresult.py:1567: Disabled per bug 1188420 SKIPPED [2] testtools/tests/test_testresult.py:2575: Could not find a sample text for encoding: 'ascii' SKIPPED [2] testtools/tests/test_testresult.py:2581: Could not find a sample text for encoding: 'ascii' SKIPPED [2] testtools/tests/test_testresult.py:2624: Could not find a sample text for encoding: 'unicode_internal' XFAIL testtools/tests/test_testresult.py::TestNonAsciiResults::test_control_characters_in_failure_string - reason: XFAIL testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_control_characters_in_failure_string - reason: FAILED testtools/tests/test_testcase.py::TestRunTwiceNondeterministic::test_runTwice FAILED testtools/tests/test_testresult.py::TestControlContract::test_initially_not_shouldStop FAILED testtools/tests/test_testresult.py::TestControlContract::test_stop_sets_shouldStop FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_startTestRun FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_files FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_test_status FAILED testtools/tests/test_testresult.py::TestNonAsciiResults::test_unprintable_exception FAILED testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_unprintable_exception FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test_mismatch_details ====== 40 failed, 1329 passed, 7 skipped, 2 xfailed, 44 warnings in 3.17s ====== ```
kloczek commented 9 months ago

Just FTR 2.7.0 pytest output

```console + PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-testtools-2.7.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-testtools-2.7.0-2.fc35.x86_64/usr/lib/python3.8/site-packages + /usr/bin/pytest -ra -m 'not network' -p no:randomly ============================= test session starts ============================== platform linux -- Python 3.8.18, pytest-7.4.3, pluggy-1.3.0 rootdir: /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0 collected 1375 items testtools/tests/test_assert_that.py ............. [ 0%] testtools/tests/test_compat.py ..................... [ 2%] testtools/tests/test_content.py ...................................... [ 5%] testtools/tests/test_content_type.py ......... [ 5%] testtools/tests/test_fixturesupport.py ........ [ 6%] testtools/tests/test_helpers.py ... [ 6%] testtools/tests/test_monkey.py .............. [ 7%] testtools/tests/test_run.py ............ [ 8%] testtools/tests/test_runtest.py ........................ [ 10%] testtools/tests/test_tags.py .......... [ 11%] testtools/tests/test_testcase.py ....................................... [ 13%] ........................................................................ [ 19%] .....F............................................ [ 22%] testtools/tests/test_testresult.py FF................................... [ 25%] ........................................................................ [ 30%] ........................................................................ [ 35%] ........................................................................ [ 41%] ........................................................................ [ 46%] .......................FFF.............................................. [ 51%] ..................................................................s..... [ 56%] ........................................................................ [ 62%] ........................x..ss.......sF.x..ss.......sF................... [ 67%] .......... [ 68%] testtools/tests/test_testsuite.py ................. [ 69%] testtools/tests/test_with_with.py .......... [ 70%] testtools/tests/matchers/test_basic.py FFFF............................. [ 72%] ....................................... [ 75%] testtools/tests/matchers/test_const.py FFFF......... [ 76%] testtools/tests/matchers/test_datastructures.py FFFF.................... [ 77%] ..... [ 78%] testtools/tests/matchers/test_dict.py FFFF.............................. [ 80%] ..... [ 81%] testtools/tests/matchers/test_doctest.py FFFF............ [ 82%] testtools/tests/matchers/test_exception.py FFFF......................... [ 84%] ..... [ 84%] testtools/tests/matchers/test_filesystem.py ............................ [ 86%] [ 86%] testtools/tests/matchers/test_higherorder.py FFFF....................... [ 88%] ................. [ 90%] testtools/tests/matchers/test_impl.py ........... [ 90%] testtools/tests/matchers/test_warnings.py FFFF.......................... [ 93%] ......... [ 93%] testtools/tests/twistedsupport/test_deferred.py .... [ 93%] testtools/tests/twistedsupport/test_matchers.py .............. [ 94%] testtools/tests/twistedsupport/test_runtest.py ......................... [ 96%] ................. [ 98%] testtools/tests/twistedsupport/test_spinner.py ......................... [ 99%] .. [100%] =================================== FAILURES =================================== __________________ TestRunTwiceNondeterministic.test_runTwice __________________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/runtest.py", line 193, in _run_user return fn(*args, **kwargs) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testcase.py", line 703, in _run_test_method return self._get_test_method()() File "/home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/tests/test_testcase.py", line 1449, in test_runTwice test = self.case AttributeError: 'TestRunTwiceNondeterministic' object has no attribute 'case' ______________ TestControlContract.test_initially_not_shouldStop _______________ self = def test_initially_not_shouldStop(self): # A result is not set to stop initially. > result = self.makeResult() E AttributeError: 'TestControlContract' object has no attribute 'makeResult' testtools/tests/test_testresult.py:141: AttributeError ________________ TestControlContract.test_stop_sets_shouldStop _________________ self = def test_stop_sets_shouldStop(self): # Calling 'stop()' sets 'shouldStop' to True. > result = self.makeResult() E AttributeError: 'TestControlContract' object has no attribute 'makeResult' testtools/tests/test_testresult.py:146: AttributeError __________________ TestStreamResultContract.test_startTestRun __________________ self = def test_startTestRun(self): > result = self._make_result() testtools/tests/test_testresult.py:509: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:506: NotImplementedError _____________________ TestStreamResultContract.test_files ______________________ self = def test_files(self): # Test parameter combinations when files are being emitted. > result = self._make_result() testtools/tests/test_testresult.py:515: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:506: NotImplementedError __________________ TestStreamResultContract.test_test_status ___________________ self = def test_test_status(self): # Tests non-file attachment parameter combinations. > result = self._make_result() testtools/tests/test_testresult.py:533: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = def _make_result(self): > raise NotImplementedError(self._make_result) E NotImplementedError: > testtools/tests/test_testresult.py:506: NotImplementedError ________________ TestNonAsciiResults.test_unprintable_exception ________________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/tests/test_testresult.py", line 2655, in test_unprintable_exception self.assertIn(self._as_output(expected), textoutput) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testcase.py", line 400, in assertIn self.assertThat(haystack, Contains(needle), message) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testcase.py", line 481, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: 'UnprintableError: \n' not in 'Tests running...\n======================================================================\nERROR: test_unprintable_exception.Test.runTest\n----------------------------------------------------------------------\nTraceback (most recent call last):\n File "/tmp/TestNonAsciiResults1tzapn1x/test_unprintable_exception.py", line 13, in runTest\n raise UnprintableError\ntest_unprintable_exception.UnprintableError: \n\nRan 1 test in 0.001s\nFAILED (failures=1)\n' __________ TestNonAsciiResultsWithUnittest.test_unprintable_exception __________ 'NoneType' object is not iterable During handling of the above exception, another exception occurred: NOTE: Incompatible Exception Representation, displaying natively: testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/tests/test_testresult.py", line 2655, in test_unprintable_exception self.assertIn(self._as_output(expected), textoutput) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testcase.py", line 400, in assertIn self.assertThat(haystack, Contains(needle), message) File "/home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testcase.py", line 481, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: 'UnprintableError: \n' not in 'E\n======================================================================\nERROR: runTest (test_unprintable_exception.Test)\ntest_unprintable_exception.Test.runTest\n----------------------------------------------------------------------\ntesttools.testresult.real._StringException: Traceback (most recent call last):\n File "/tmp/TestNonAsciiResultsWithUnittest9xyojlxo/test_unprintable_exception.py", line 13, in runTest\n raise UnprintableError\ntest_unprintable_exception.UnprintableError: \n\n\n----------------------------------------------------------------------\nRan 1 test in 0.000s\n\nFAILED (errors=1)\n' ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError ___________________ TestMatchersInterface.test_matches_match ___________________ self = def test_matches_match(self): > matcher = self.matches_matcher E AttributeError: 'TestMatchersInterface' object has no attribute 'matches_matcher' testtools/tests/matchers/helpers.py:11: AttributeError ______________________ TestMatchersInterface.test__str__ _______________________ self = def test__str__(self): # [(expected, object to __str__)]. from testtools.matchers._doctest import DocTestMatches > examples = self.str_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'str_examples' testtools/tests/matchers/helpers.py:24: AttributeError ________________ TestMatchersInterface.test_describe_difference ________________ self = def test_describe_difference(self): # [(expected, matchee, matcher), ...] > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:30: AttributeError _________________ TestMatchersInterface.test_mismatch_details __________________ self = def test_mismatch_details(self): # The mismatch object must provide get_details, which must return a # dictionary mapping names to Content objects. > examples = self.describe_examples E AttributeError: 'TestMatchersInterface' object has no attribute 'describe_examples' testtools/tests/matchers/helpers.py:38: AttributeError =============================== warnings summary =============================== testtools/tests/test_monkey.py:11 /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/tests/test_monkey.py:11: PytestCollectionWarning: cannot collect test class 'TestObj' because it has a __init__ constructor (from: testtools/tests/test_monkey.py) class TestObj: ../../../../../usr/lib64/python3.8/unittest/suite.py:92 /usr/lib64/python3.8/unittest/suite.py:92: PytestCollectionWarning: cannot collect test class 'TestSuite' because it has a __init__ constructor (from: testtools/tests/test_run.py) class TestSuite(BaseTestSuite): testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/test_runtest.py) class TestResult(unittest.TestResult): ../../../../../usr/lib64/python3.8/unittest/case.py:26 /usr/lib64/python3.8/unittest/case.py:26: PytestCollectionWarning: cannot collect test class 'SkipTest' because it has a __init__ constructor (from: testtools/tests/test_testcase.py) class SkipTest(Exception): ../../../../../usr/lib64/python3.8/unittest/suite.py:92 /usr/lib64/python3.8/unittest/suite.py:92: PytestCollectionWarning: cannot collect test class 'TestSuite' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestSuite(BaseTestSuite): testtools/testresult/real.py:1030 /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testresult/real.py:1030: PytestCollectionWarning: cannot collect test class 'TestControl' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestControl: testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestResult(unittest.TestResult): testtools/testresult/real.py:1860 /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testresult/real.py:1860: PytestCollectionWarning: cannot collect test class 'TestResultDecorator' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestResultDecorator: testtools/testresult/real.py:1947 /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testresult/real.py:1947: PytestCollectionWarning: cannot collect test class 'TestByTestResult' because it has a __init__ constructor (from: testtools/tests/test_testresult.py) class TestByTestResult(TestResult): testtools/testresult/real.py:1947 /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testresult/real.py:1947: PytestCollectionWarning: cannot collect test class 'TestByTestResult' because it has a __init__ constructor (from: testtools/tests/test_testsuite.py) class TestByTestResult(TestResult): testtools/testresult/real.py:65 /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/testresult/real.py:65: PytestCollectionWarning: cannot collect test class 'TestResult' because it has a __init__ constructor (from: testtools/tests/twistedsupport/test_runtest.py) class TestResult(unittest.TestResult): testtools/tests/test_assert_that.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_assert_that.py::test_suite returned , , , , , ]>, , , , , , ]>, ]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_compat.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_compat.py::test_suite returned , ]>, , , , , , , , , , ]>, , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_content.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_content.py::test_suite returned , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , ]>, , , , ]>, , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_content_type.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_content_type.py::test_suite returned , ]>, , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_fixturesupport.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_fixturesupport.py::test_suite returned , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_helpers.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_helpers.py::test_suite returned , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_monkey.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_monkey.py::test_suite returned , , , , , , , , , , ]>, , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_run.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_run.py::test_suite returned , , , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_runtest.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_runtest.py::test_suite returned , , , , , , , , , , , , , , , , ]>, , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_tags.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_tags.py::test_suite returned , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_testcase.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_testcase.py::test_suite returned , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , ]>, , , ]>, , , , ]>, , , , , , , , , , , ]>, , ]>, , , , , , , , , ]>, , , , , , ]>, , , , ]>, , , ]>, , , , , , ]>, , , , , , , , , , , , , , , , , ]>, ]>, ]>, ]>, , , , ]>, , , , , , , , , , , , , , , , , , , , , ]>, , ]>, , , , , , ]>, ]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_testresult.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_testresult.py::test_suite returned , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , ]>, , , , , , , , , , , , , , , ]>, , , , ]>, , , ]>, , , , , , , , ]>, , , ]>, , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , ]>, , , , , , , ]>, , , , , , , ]>, , , , , , , , ]>, , , , , , ]>, , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , ]>, , ]>, , , ]>, , , ]>, , , , ]>, , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , ]>, , , , , , ]>, , , , , , , , , , , , , , ]>, , , , , ]>, , , ]>, , , , , , , ]>, , , ]>, , , , , , , , , , , , , ]>, , , ]>, , , , , , , , , ]>, , , ]>, , ]>, , , ]>, , , , , , ]>, , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , ]>, , , ]>, , , ]>, ]>, , ]>, , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , , , , , , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_testsuite.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_testsuite.py::test_suite returned , ]>, , , , , ]>, , , ]>, , ]>, , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/test_with_with.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/test_with_with.py::test_suite returned , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_basic.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_basic.py::test_suite returned , , ]>, , , ]>, , , , , , , ]>, , , , , , , ]>, , , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_const.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_const.py::test_suite returned , , , ]>, , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_datastructures.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_datastructures.py::test_suite returned , , , , ]>, ]>, , , , , , , , , , ]>, , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_dict.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_dict.py::test_suite returned , , , , ]>, , , , ]>, , , , ]>, , , , , ]>, , , , , ]>, , , , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_doctest.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_doctest.py::test_suite returned , , , , ]>, , , , ]>, , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_exception.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_exception.py::test_suite returned , , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , ]>, , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_filesystem.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_filesystem.py::test_suite returned , , , , , , , ]>, , , ]>, , , , , , ]>, , , ]>, ]>, , ]>, , , ]>, , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_higherorder.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_higherorder.py::test_suite returned , , , ]>, , , , ]>, , , , , , ]>, ]>, , , , ]>, , , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_impl.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_impl.py::test_suite returned , , ]>, , , ]>, , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/matchers/test_warnings.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/matchers/test_warnings.py::test_suite returned , ]>, ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_deferred.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_deferred.py::test_suite returned , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_matchers.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_matchers.py::test_suite returned , , , ]>, , , , , , ]>, , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_runtest.py::TestRunWithLogObservers::test_restores_observers /home/tkloczko/rpmbuild/BUILD/testtools-2.7.0/testtools/tests/twistedsupport/test_runtest.py:884: DeprecationWarning: run_with_log_observers is deprecated since 1.8.2. run_with_log_observers([], lambda: None) testtools/tests/twistedsupport/test_runtest.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_runtest.py::test_suite returned , , , , , ]>, , , , , , , , , , , , , , , , , , , , , , , , , , ]>, ]>, , ]>, , , ]>, ]>, , , ]>, ]>, , , , , , , , , , , , , , , , , , , , , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( testtools/tests/twistedsupport/test_spinner.py::test_suite /usr/lib/python3.8/site-packages/_pytest/python.py:203: PytestReturnNotNoneWarning: Expected None, but testtools/tests/twistedsupport/test_spinner.py::test_suite returned , , ]>, , , , , , , , , , , , , , , , , , , , , , ]>, , ]>]>, which will be an error in a future version of pytest. Did you mean to use `assert` instead of `return`? warnings.warn( -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ SKIPPED [1] testtools/tests/test_testresult.py:1567: Disabled per bug 1188420 SKIPPED [2] testtools/tests/test_testresult.py:2575: Could not find a sample text for encoding: 'ascii' SKIPPED [2] testtools/tests/test_testresult.py:2581: Could not find a sample text for encoding: 'ascii' SKIPPED [2] testtools/tests/test_testresult.py:2624: Could not find a sample text for encoding: 'unicode_internal' XFAIL testtools/tests/test_testresult.py::TestNonAsciiResults::test_control_characters_in_failure_string - reason: XFAIL testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_control_characters_in_failure_string - reason: FAILED testtools/tests/test_testcase.py::TestRunTwiceNondeterministic::test_runTwice FAILED testtools/tests/test_testresult.py::TestControlContract::test_initially_not_shouldStop FAILED testtools/tests/test_testresult.py::TestControlContract::test_stop_sets_shouldStop FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_startTestRun FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_files FAILED testtools/tests/test_testresult.py::TestStreamResultContract::test_test_status FAILED testtools/tests/test_testresult.py::TestNonAsciiResults::test_unprintable_exception FAILED testtools/tests/test_testresult.py::TestNonAsciiResultsWithUnittest::test_unprintable_exception FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_basic.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_const.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_datastructures.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_dict.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_doctest.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_exception.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_higherorder.py::TestMatchersInterface::test_mismatch_details FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test_matches_match FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test__str__ FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test_describe_difference FAILED testtools/tests/matchers/test_warnings.py::TestMatchersInterface::test_mismatch_details ====== 40 failed, 1326 passed, 7 skipped, 2 xfailed, 40 warnings in 3.16s ====== ```