#53 Failed in the test suite (33 tests failed)
Closed: Fixed by mcepl. Opened by mcepl.

When building package for openSUSE I get this rather unpersuasive result (when using Python 3.6 and 3.8):

[   23s] Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.vN89YJ
[   23s] + umask 022
[   23s] + cd /home/abuild/rpmbuild/BUILD
[   23s] + cd python-daemon-2.2.4
[   23s] ++ '[' -f _current_flavor ']'
[   23s] ++ cat _current_flavor
[   23s] + last_flavor=python38
[   23s] + '[' -z python38 ']'
[   23s] + '[' python38 '!=' python36 ']'
[   23s] + '[' -d build ']'
[   23s] + mv build _build.python38
[   23s] + '[' -d _build.python36 ']'
[   23s] + mv _build.python36 build
[   23s] + echo python36
[   23s] + python_flavor=python36
[   23s] + python3.6 -m pytest -k 'not test_returns_standard_stream_file_descriptors and not test_returns_expected_result'
[   24s] ============================= test session starts ==============================
[   24s] platform linux -- Python 3.6.12, pytest-6.1.2, py-1.9.0, pluggy-0.13.1
[   24s] rootdir: /home/abuild/rpmbuild/BUILD/python-daemon-2.2.4
[   24s] collected 245 items / 7 deselected / 238 selected
[   24s] 
[   24s] test_version.py FEFEFEFEFFEFEFEFE......FEFEFEFEFFEFFF..............FE... [ 17%]
[   24s] ...........                                                              [ 22%]
[   25s] test/test_daemon.py FEFE................................................ [ 43%]
[   25s] .................................................FEFEFE................. [ 72%]
[   25s] ........                                                                 [ 75%]
[   25s] test/test_metadata.py FEFEFEFE....FEFEFE                                 [ 80%]
[   25s] test/test_pidfile.py ......                                              [ 82%]
[   26s] test/test_runner.py FEFE.......................................          [100%]
[   26s] 
[   26s] ==================================== ERRORS ====================================
[   26s] _ ERROR at teardown of ensure_class_bases_begin_with_TestCase.test_calls_metaclass_with_expected_bases _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 134, in test_calls_metaclass_with_expected_bases
[   26s]     self.test_module_namespace, self.class_name, self.base_class)
[   26s] AttributeError: 'ensure_class_bases_begin_with_TestCase' object has no attribute 'test_module_namespace'
[   26s] 
[   26s] _ ERROR at teardown of ensure_class_bases_begin_with_TestCase.test_calls_metaclass_with_expected_class_name _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 126, in test_calls_metaclass_with_expected_class_name
[   26s]     self.test_module_namespace, self.class_name, self.base_class)
[   26s] AttributeError: 'ensure_class_bases_begin_with_TestCase' object has no attribute 'test_module_namespace'
[   26s] 
[   26s] _ ERROR at teardown of ensure_class_bases_begin_with_TestCase.test_calls_metaclass_with_expected_namespace _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 144, in test_calls_metaclass_with_expected_namespace
[   26s]     self.test_module_namespace, self.class_name, self.base_class)
[   26s] AttributeError: 'ensure_class_bases_begin_with_TestCase' object has no attribute 'test_module_namespace'
[   26s] 
[   26s] _ ERROR at teardown of ensure_class_bases_begin_with_TestCase.test_module_namespace_contains_new_class _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 120, in test_module_namespace_contains_new_class
[   26s]     self.test_module_namespace, self.class_name, self.base_class)
[   26s] AttributeError: 'ensure_class_bases_begin_with_TestCase' object has no attribute 'test_module_namespace'
[   26s] 
[   26s] _ ERROR at teardown of InvalidFormatError_TestCase.test_has_specified_message __
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 253, in test_has_specified_message
[   26s]     test_instance = version.InvalidFormatError(**self.test_kwargs)
[   26s] AttributeError: 'InvalidFormatError_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] ___ ERROR at teardown of InvalidFormatError_TestCase.test_has_specified_node ___
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 247, in test_has_specified_node
[   26s]     test_instance = version.InvalidFormatError(**self.test_kwargs)
[   26s] AttributeError: 'InvalidFormatError_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] _ ERROR at teardown of InvalidFormatError_TestCase.test_str_contains_expected_message_text _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 258, in test_str_contains_expected_message_text
[   26s]     test_instance = version.InvalidFormatError(**self.test_kwargs)
[   26s] AttributeError: 'InvalidFormatError_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] _ ERROR at teardown of InvalidFormatError_TestCase.test_str_contains_expected_node_text _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 264, in test_str_contains_expected_node_text
[   26s]     test_instance = version.InvalidFormatError(**self.test_kwargs)
[   26s] AttributeError: 'InvalidFormatError_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] _ ERROR at teardown of ChangeLogEntry_release_date_TestCase.test_has_expected_release_date _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 430, in test_has_expected_release_date
[   26s]     instance = version.ChangeLogEntry(**self.test_args)
[   26s] AttributeError: 'ChangeLogEntry_release_date_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] _ ERROR at teardown of ChangeLogEntry_version_TestCase.test_has_expected_version _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 493, in test_has_expected_version
[   26s]     instance = version.ChangeLogEntry(**self.test_args)
[   26s] AttributeError: 'ChangeLogEntry_version_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] _ ERROR at teardown of ChangeLogEntry_maintainer_TestCase.test_has_expected_maintainer _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 519, in test_has_expected_maintainer
[   26s]     instance = version.ChangeLogEntry(**self.test_args)
[   26s] AttributeError: 'ChangeLogEntry_maintainer_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] ___ ERROR at teardown of ChangeLogEntry_body_TestCase.test_has_expected_body ___
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 540, in test_has_expected_body
[   26s]     instance = version.ChangeLogEntry(**self.test_args)
[   26s] AttributeError: 'ChangeLogEntry_body_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] _ ERROR at teardown of changelog_to_version_info_collection_TestCase.test_returns_expected_version_info _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 867, in test_returns_expected_version_info
[   26s]     infile = io.StringIO(self.test_input)
[   26s] AttributeError: 'changelog_to_version_info_collection_TestCase' object has no attribute 'test_input'
[   26s] 
[   26s] _ ERROR at teardown of has_changelog_TestCase.test_gets_changelog_path_from_distribution _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 1391, in test_gets_changelog_path_from_distribution
[   26s]     version.has_changelog(self.test_command)
[   26s] AttributeError: 'has_changelog_TestCase' object has no attribute 'test_command'
[   26s] 
[   26s] ____ ERROR at teardown of ModuleExceptions_TestCase.test_exception_instance ____
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/scaffold.py", line 265, in test_exception_instance
[   26s]     self.assertIsNot(self.instance, None)
[   26s] AttributeError: 'ModuleExceptions_TestCase' object has no attribute 'instance'
[   26s] 
[   26s] _____ ERROR at teardown of ModuleExceptions_TestCase.test_exception_types ______
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/scaffold.py", line 269, in test_exception_types
[   26s]     for match_type in self.types:
[   26s] AttributeError: 'ModuleExceptions_TestCase' object has no attribute 'types'
[   26s] 
[   26s] _ ERROR at teardown of _get_candidate_file_descriptors_TestCase.test_returns_expected_file_descriptors _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_daemon.py", line 1485, in test_returns_expected_file_descriptors
[   26s]     with make_get_maximum_file_descriptors_patch(self, self.fake_maxfd):
[   26s] AttributeError: '_get_candidate_file_descriptors_TestCase' object has no attribute 'fake_maxfd'
[   26s] 
[   26s] _ ERROR at teardown of _get_candidate_file_descriptor_ranges_TestCase.test_returns_expected_file_descriptors _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_daemon.py", line 1582, in test_returns_expected_file_descriptors
[   26s]     with make_get_maximum_file_descriptors_patch(self, self.fake_maxfd):
[   26s] AttributeError: '_get_candidate_file_descriptor_ranges_TestCase' object has no attribute 'fake_maxfd'
[   26s] 
[   26s] _ ERROR at teardown of _close_file_descriptor_ranges_TestCase.test_calls_os_closerange_with_expected_ranges _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_daemon.py", line 1622, in test_calls_os_closerange_with_expected_ranges
[   26s]     daemon.daemon._close_file_descriptor_ranges(**self.test_kwargs)
[   26s] AttributeError: '_close_file_descriptor_ranges_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] _ ERROR at teardown of metadata_value_TestCase.test_module_attribute_has_duck_type _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 97, in test_module_attribute_has_duck_type
[   26s]     if self.ducktype_attribute_name == NotImplemented:
[   26s] AttributeError: 'metadata_value_TestCase' object has no attribute 'ducktype_attribute_name'
[   26s] 
[   26s] ____ ERROR at teardown of metadata_value_TestCase.test_module_has_attribute ____
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 93, in test_module_has_attribute
[   26s]     metadata, HasAttribute(self.attribute_name))
[   26s] AttributeError: 'metadata_value_TestCase' object has no attribute 'attribute_name'
[   26s] 
[   26s] _ ERROR at teardown of YearRange_TestCase.test_text_representation_as_expected _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 134, in test_text_representation_as_expected
[   26s]     result = unicode(self.test_instance)
[   26s] AttributeError: 'YearRange_TestCase' object has no attribute 'test_instance'
[   26s] 
[   26s] _ ERROR at teardown of make_year_range_TestCase.test_result_matches_expected_range _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 175, in test_result_matches_expected_range
[   26s]     result = metadata.make_year_range(self.begin_year, self.end_date)
[   26s] AttributeError: 'make_year_range_TestCase' object has no attribute 'begin_year'
[   26s] 
[   26s] _ ERROR at teardown of get_distribution_version_info_TestCase.test_requests_installed_distribution _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 335, in test_requests_installed_distribution
[   26s]     metadata.get_distribution_version_info(**self.test_args)
[   26s] AttributeError: 'get_distribution_version_info_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] _ ERROR at teardown of get_distribution_version_info_TestCase.test_requests_specified_filename _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 343, in test_requests_specified_filename
[   26s]     metadata.get_distribution_version_info(**self.test_args)
[   26s] AttributeError: 'get_distribution_version_info_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] _ ERROR at teardown of get_distribution_version_info_TestCase.test_result_matches_expected_items _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 349, in test_result_matches_expected_items
[   26s]     version_info = metadata.get_distribution_version_info(**self.test_args)
[   26s] AttributeError: 'get_distribution_version_info_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] ____ ERROR at teardown of ModuleExceptions_TestCase.test_exception_instance ____
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/scaffold.py", line 265, in test_exception_instance
[   26s]     self.assertIsNot(self.instance, None)
[   26s] AttributeError: 'ModuleExceptions_TestCase' object has no attribute 'instance'
[   26s] 
[   26s] _____ ERROR at teardown of ModuleExceptions_TestCase.test_exception_types ______
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/scaffold.py", line 269, in test_exception_types
[   26s]     for match_type in self.types:
[   26s] AttributeError: 'ModuleExceptions_TestCase' object has no attribute 'types'
[   26s] 
[   26s] =================================== FAILURES ===================================
[   26s] _ ensure_class_bases_begin_with_TestCase.test_calls_metaclass_with_expected_bases _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 134, in test_calls_metaclass_with_expected_bases
[   26s]     self.test_module_namespace, self.class_name, self.base_class)
[   26s] AttributeError: 'ensure_class_bases_begin_with_TestCase' object has no attribute 'test_module_namespace'
[   26s] 
[   26s] _ ensure_class_bases_begin_with_TestCase.test_calls_metaclass_with_expected_class_name _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 126, in test_calls_metaclass_with_expected_class_name
[   26s]     self.test_module_namespace, self.class_name, self.base_class)
[   26s] AttributeError: 'ensure_class_bases_begin_with_TestCase' object has no attribute 'test_module_namespace'
[   26s] 
[   26s] _ ensure_class_bases_begin_with_TestCase.test_calls_metaclass_with_expected_namespace _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 144, in test_calls_metaclass_with_expected_namespace
[   26s]     self.test_module_namespace, self.class_name, self.base_class)
[   26s] AttributeError: 'ensure_class_bases_begin_with_TestCase' object has no attribute 'test_module_namespace'
[   26s] 
[   26s] _ ensure_class_bases_begin_with_TestCase.test_module_namespace_contains_new_class _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 120, in test_module_namespace_contains_new_class
[   26s]     self.test_module_namespace, self.class_name, self.base_class)
[   26s] AttributeError: 'ensure_class_bases_begin_with_TestCase' object has no attribute 'test_module_namespace'
[   26s] 
[   26s] _ ensure_class_bases_begin_with_AlreadyHasBase_TestCase.test_metaclass_not_called _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 186, in test_metaclass_not_called
[   26s]     self.test_module_namespace, self.class_name, self.base_class)
[   26s] AttributeError: 'ensure_class_bases_begin_with_AlreadyHasBase_TestC' object has no attribute 'test_module_namespace'
[   26s] 
[   26s] ____________ InvalidFormatError_TestCase.test_has_specified_message ____________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 253, in test_has_specified_message
[   26s]     test_instance = version.InvalidFormatError(**self.test_kwargs)
[   26s] AttributeError: 'InvalidFormatError_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] _____________ InvalidFormatError_TestCase.test_has_specified_node ______________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 247, in test_has_specified_node
[   26s]     test_instance = version.InvalidFormatError(**self.test_kwargs)
[   26s] AttributeError: 'InvalidFormatError_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] _____ InvalidFormatError_TestCase.test_str_contains_expected_message_text ______
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 258, in test_str_contains_expected_message_text
[   26s]     test_instance = version.InvalidFormatError(**self.test_kwargs)
[   26s] AttributeError: 'InvalidFormatError_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] _______ InvalidFormatError_TestCase.test_str_contains_expected_node_text _______
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 264, in test_str_contains_expected_node_text
[   26s]     test_instance = version.InvalidFormatError(**self.test_kwargs)
[   26s] AttributeError: 'InvalidFormatError_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] _____ ChangeLogEntry_release_date_TestCase.test_has_expected_release_date ______
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 430, in test_has_expected_release_date
[   26s]     instance = version.ChangeLogEntry(**self.test_args)
[   26s] AttributeError: 'ChangeLogEntry_release_date_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] __________ ChangeLogEntry_version_TestCase.test_has_expected_version ___________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 493, in test_has_expected_version
[   26s]     instance = version.ChangeLogEntry(**self.test_args)
[   26s] AttributeError: 'ChangeLogEntry_version_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] _______ ChangeLogEntry_maintainer_TestCase.test_has_expected_maintainer ________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 519, in test_has_expected_maintainer
[   26s]     instance = version.ChangeLogEntry(**self.test_args)
[   26s] AttributeError: 'ChangeLogEntry_maintainer_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] _____________ ChangeLogEntry_body_TestCase.test_has_expected_body ______________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 540, in test_has_expected_body
[   26s]     instance = version.ChangeLogEntry(**self.test_args)
[   26s] AttributeError: 'ChangeLogEntry_body_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] ______ ChangeLogEntry_as_version_info_entry_TestCase.test_returns_result _______
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 570, in test_returns_result
[   26s]     result = self.test_instance.as_version_info_entry()
[   26s] AttributeError: 'ChangeLogEntry_as_version_info_entry_TestCase' object has no attribute 'test_instance'
[   26s] 
[   26s] _ changelog_to_version_info_collection_TestCase.test_returns_expected_version_info _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 867, in test_returns_expected_version_info
[   26s]     infile = io.StringIO(self.test_input)
[   26s] AttributeError: 'changelog_to_version_info_collection_TestCase' object has no attribute 'test_input'
[   26s] 
[   26s] _ generate_version_info_from_changelog_TestCase.test_opens_file_with_expected_encoding _
[   26s] 
[   26s] self = <testtools.runtest.RunTest object at 0x7f4cf940b0b8>
[   26s] fn = <bound method TestCase._run_test_method of <test_version.generate_version_info_from_changelog_TestCase.test_opens_file_with_expected_encoding(simple) id=0x7f4cf940b080>>
[   26s] args = (<ExtendedToOriginalDecorator <TestCaseFunction test_opens_file_with_expected_encoding>>,)
[   26s] kwargs = {}
[   26s] 
[   26s]     def _run_user(self, fn, *args, **kwargs):
[   26s]         """Run a user supplied function.
[   26s]     
[   26s]         Exceptions are processed by `_got_user_exception`.
[   26s]     
[   26s]         :return: Either whatever 'fn' returns or ``exception_caught`` if
[   26s]             'fn' raised an exception.
[   26s]         """
[   26s]         try:
[   26s] >           return fn(*args, **kwargs)
[   26s] 
[   26s] /usr/lib/python3.6/site-packages/testtools/runtest.py:191: 
[   26s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   26s] 
[   26s] self = <test_version.generate_version_info_from_changelog_TestCase.test_opens_file_with_expected_encoding(simple) id=0x7f4cf940b080>
[   26s] result = <ExtendedToOriginalDecorator <TestCaseFunction test_opens_file_with_expected_encoding>>
[   26s] 
[   26s]     def _run_test_method(self, result):
[   26s]         """Run the test method for this test.
[   26s]     
[   26s]         :param result: A testtools.TestResult to report activity to.
[   26s]         :return: None.
[   26s]         """
[   26s] >       return self._get_test_method()()
[   26s] 
[   26s] /usr/lib/python3.6/site-packages/testtools/testcase.py:723: 
[   26s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   26s] 
[   26s] args = (<test_version.generate_version_info_from_changelog_TestCase.test_opens_file_with_expected_encoding id=0x7f4cf947add8>,)
[   26s] keywargs = {}
[   26s] newargs = (<test_version.generate_version_info_from_changelog_TestCase.test_opens_file_with_expected_encoding id=0x7f4cf947add8>, <MagicMock name='get_latest_version' id='139968576031096'>)
[   26s] newkeywargs = {}
[   26s] 
[   26s]     @wraps(func)
[   26s]     def patched(*args, **keywargs):
[   26s]         with self.decoration_helper(patched,
[   26s]                                     args,
[   26s]                                     keywargs) as (newargs, newkeywargs):
[   26s] >           return func(*newargs, **newkeywargs)
[   26s] 
[   26s] /usr/lib/python3.6/site-packages/mock/mock.py:1346: 
[   26s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   26s] 
[   26s] self = <test_version.generate_version_info_from_changelog_TestCase.test_opens_file_with_expected_encoding id=0x7f4cf947add8>
[   26s] mock_func_get_latest_version = <MagicMock name='get_latest_version' id='139968576031096'>
[   26s] 
[   26s]     def test_opens_file_with_expected_encoding(
[   26s]             self,
[   26s]             mock_func_get_latest_version):
[   26s]         """ Should open changelog file in text mode with expected encoding. """
[   26s]         version.generate_version_info_from_changelog(
[   26s] >               self.fake_changelog_file_path)
[   26s] E       AttributeError: 'generate_version_info_from_changelog_TestCase' object has no attribute 'fake_changelog_file_path'
[   26s] 
[   26s] test_version.py:966: AttributeError
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] /usr/lib/python3.6/site-packages/testscenarios/testcase.py:62: in run
[   26s]     test.run(result)
[   26s] /usr/lib/python3.6/site-packages/testscenarios/testcase.py:65: in run
[   26s]     return super(WithScenarios, self).run(result)
[   26s] /usr/lib/python3.6/site-packages/testtools/content.py:205: in __init__
[   26s]     limit=limit, capture_locals=capture_locals).format())
[   26s] /usr/lib/python3.6/site-packages/traceback2/__init__.py:475: in __init__
[   26s]     capture_locals=capture_locals)
[   26s] /usr/lib/python3.6/site-packages/traceback2/__init__.py:366: in extract
[   26s]     f.line
[   26s] /usr/lib/python3.6/site-packages/traceback2/__init__.py:295: in line
[   26s]     self._line = linecache.getline(self.filename, self.lineno).strip()
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:17: in getline
[   26s]     lines = getlines(filename, module_globals)
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:45: in getlines
[   26s]     return updatecache(filename, module_globals)
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:134: in updatecache
[   26s]     with _tokenize_open(fullname) as fp:
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:190: in _tokenize_open
[   26s]     encoding, lines = _detect_encoding(buffer.readline)
[   26s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   26s] 
[   26s] readline = <built-in method readline of _io.StringIO object at 0x7f4cf9635708>
[   26s] 
[   26s]     def _detect_encoding(readline):
[   26s]         """
[   26s]         The detect_encoding() function is used to detect the encoding that should
[   26s]         be used to decode a Python source file.  It requires one argument, readline,
[   26s]         in the same way as the tokenize() generator.
[   26s]     
[   26s]         It will call readline a maximum of twice, and return the encoding used
[   26s]         (as a string) and a list of any lines (left as bytes) it has read in.
[   26s]     
[   26s]         It detects the encoding from the presence of a utf-8 bom or an encoding
[   26s]         cookie as specified in pep-0263.  If both a bom and a cookie are present,
[   26s]         but disagree, a SyntaxError will be raised.  If the encoding cookie is an
[   26s]         invalid charset, raise a SyntaxError.  Note that if a utf-8 bom is found,
[   26s]         'utf-8-sig' is returned.
[   26s]     
[   26s]         If no encoding is specified, then the default of 'utf-8' will be returned.
[   26s]         """
[   26s]         try:
[   26s]             filename = readline.__self__.name
[   26s]         except AttributeError:
[   26s]             filename = None
[   26s]         bom_found = False
[   26s]         encoding = None
[   26s]         default = 'utf-8'
[   26s]         def read_or_stop():
[   26s]             try:
[   26s]                 return readline()
[   26s]             except StopIteration:
[   26s]                 return b''
[   26s]     
[   26s]         def find_cookie(line):
[   26s]             try:
[   26s]                 # Decode as UTF-8. Either the line is an encoding declaration,
[   26s]                 # in which case it should be pure ASCII, or it must be UTF-8
[   26s]                 # per default encoding.
[   26s]                 line_string = line.decode('utf-8')
[   26s]             except UnicodeDecodeError:
[   26s]                 msg = "invalid or missing encoding declaration"
[   26s]                 if filename is not None:
[   26s]                     msg = '{0} for {1!r}'.format(msg, filename)
[   26s]                 raise SyntaxError(msg)
[   26s]     
[   26s]             match = cookie_re.match(line)
[   26s]             if not match:
[   26s]                 return None
[   26s]             encoding = _get_normal_name(match.group(1).decode('utf-8'))
[   26s]             try:
[   26s]                 codec = lookup(encoding)
[   26s]             except LookupError:
[   26s]                 # This behaviour mimics the Python interpreter
[   26s]                 if filename is None:
[   26s]                     msg = "unknown encoding: " + encoding
[   26s]                 else:
[   26s]                     msg = "unknown encoding for {!r}: {}".format(filename,
[   26s]                             encoding)
[   26s]                 raise SyntaxError(msg)
[   26s]     
[   26s]             if bom_found:
[   26s]                 if encoding != 'utf-8':
[   26s]                     # This behaviour mimics the Python interpreter
[   26s]                     if filename is None:
[   26s]                         msg = 'encoding problem: utf-8'
[   26s]                     else:
[   26s]                         msg = 'encoding problem for {!r}: utf-8'.format(filename)
[   26s]                     raise SyntaxError(msg)
[   26s]                 encoding += '-sig'
[   26s]             return encoding
[   26s]     
[   26s]         first = read_or_stop()
[   26s] >       if first.startswith(BOM_UTF8):
[   26s] E       TypeError: startswith first arg must be str or a tuple of str, not bytes
[   26s] 
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:278: TypeError
[   26s] _ generate_version_info_from_changelog_TestCase.test_returns_empty_collection_on_read_error _
[   26s] 
[   26s] self = <testtools.runtest.RunTest object at 0x7f4cf958dc88>
[   26s] fn = <bound method TestCase._run_test_method of <test_version.generate_version_info_from_changelog_TestCase.test_returns_empty_collection_on_read_error(simple) id=0x7f4cf958dcf8>>
[   26s] args = (<ExtendedToOriginalDecorator <TestCaseFunction test_returns_empty_collection_on_read_error>>,)
[   26s] kwargs = {}
[   26s] 
[   26s]     def _run_user(self, fn, *args, **kwargs):
[   26s]         """Run a user supplied function.
[   26s]     
[   26s]         Exceptions are processed by `_got_user_exception`.
[   26s]     
[   26s]         :return: Either whatever 'fn' returns or ``exception_caught`` if
[   26s]             'fn' raised an exception.
[   26s]         """
[   26s]         try:
[   26s] >           return fn(*args, **kwargs)
[   26s] 
[   26s] /usr/lib/python3.6/site-packages/testtools/runtest.py:191: 
[   26s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   26s] 
[   26s] self = <test_version.generate_version_info_from_changelog_TestCase.test_returns_empty_collection_on_read_error(simple) id=0x7f4cf958dcf8>
[   26s] result = <ExtendedToOriginalDecorator <TestCaseFunction test_returns_empty_collection_on_read_error>>
[   26s] 
[   26s]     def _run_test_method(self, result):
[   26s]         """Run the test method for this test.
[   26s]     
[   26s]         :param result: A testtools.TestResult to report activity to.
[   26s]         :return: None.
[   26s]         """
[   26s] >       return self._get_test_method()()
[   26s] 
[   26s] /usr/lib/python3.6/site-packages/testtools/testcase.py:723: 
[   26s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   26s] 
[   26s] args = (<test_version.generate_version_info_from_changelog_TestCase.test_returns_empty_collection_on_read_error id=0x7f4cf958d080>,)
[   26s] keywargs = {}
[   26s] newargs = (<test_version.generate_version_info_from_changelog_TestCase.test_returns_empty_collection_on_read_error id=0x7f4cf958d080>, <MagicMock name='get_latest_version' id='139968576557240'>)
[   26s] newkeywargs = {}
[   26s] 
[   26s]     @wraps(func)
[   26s]     def patched(*args, **keywargs):
[   26s]         with self.decoration_helper(patched,
[   26s]                                     args,
[   26s]                                     keywargs) as (newargs, newkeywargs):
[   26s] >           return func(*newargs, **newkeywargs)
[   26s] 
[   26s] /usr/lib/python3.6/site-packages/mock/mock.py:1346: 
[   26s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   26s] 
[   26s] self = <test_version.generate_version_info_from_changelog_TestCase.test_returns_empty_collection_on_read_error id=0x7f4cf958d080>
[   26s] mock_func_get_latest_version = <MagicMock name='get_latest_version' id='139968576557240'>
[   26s] 
[   26s]     def test_returns_empty_collection_on_read_error(
[   26s]             self,
[   26s]             mock_func_get_latest_version):
[   26s]         """ Should return empty collection on error reading changelog. """
[   26s]         test_error = PermissionError("Not for you")
[   26s]         version.changelog_to_version_info_collection.side_effect = test_error
[   26s]         result = version.generate_version_info_from_changelog(
[   26s] >               self.fake_changelog_file_path)
[   26s] E       AttributeError: 'generate_version_info_from_changelog_TestCase' object has no attribute 'fake_changelog_file_path'
[   26s] 
[   26s] test_version.py:957: AttributeError
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] /usr/lib/python3.6/site-packages/testscenarios/testcase.py:62: in run
[   26s]     test.run(result)
[   26s] /usr/lib/python3.6/site-packages/testscenarios/testcase.py:65: in run
[   26s]     return super(WithScenarios, self).run(result)
[   26s] /usr/lib/python3.6/site-packages/testtools/content.py:205: in __init__
[   26s]     limit=limit, capture_locals=capture_locals).format())
[   26s] /usr/lib/python3.6/site-packages/traceback2/__init__.py:475: in __init__
[   26s]     capture_locals=capture_locals)
[   26s] /usr/lib/python3.6/site-packages/traceback2/__init__.py:366: in extract
[   26s]     f.line
[   26s] /usr/lib/python3.6/site-packages/traceback2/__init__.py:295: in line
[   26s]     self._line = linecache.getline(self.filename, self.lineno).strip()
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:17: in getline
[   26s]     lines = getlines(filename, module_globals)
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:45: in getlines
[   26s]     return updatecache(filename, module_globals)
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:134: in updatecache
[   26s]     with _tokenize_open(fullname) as fp:
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:190: in _tokenize_open
[   26s]     encoding, lines = _detect_encoding(buffer.readline)
[   26s] _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
[   26s] 
[   26s] readline = <built-in method readline of _io.StringIO object at 0x7f4cf9635ca8>
[   26s] 
[   26s]     def _detect_encoding(readline):
[   26s]         """
[   26s]         The detect_encoding() function is used to detect the encoding that should
[   26s]         be used to decode a Python source file.  It requires one argument, readline,
[   26s]         in the same way as the tokenize() generator.
[   26s]     
[   26s]         It will call readline a maximum of twice, and return the encoding used
[   26s]         (as a string) and a list of any lines (left as bytes) it has read in.
[   26s]     
[   26s]         It detects the encoding from the presence of a utf-8 bom or an encoding
[   26s]         cookie as specified in pep-0263.  If both a bom and a cookie are present,
[   26s]         but disagree, a SyntaxError will be raised.  If the encoding cookie is an
[   26s]         invalid charset, raise a SyntaxError.  Note that if a utf-8 bom is found,
[   26s]         'utf-8-sig' is returned.
[   26s]     
[   26s]         If no encoding is specified, then the default of 'utf-8' will be returned.
[   26s]         """
[   26s]         try:
[   26s]             filename = readline.__self__.name
[   26s]         except AttributeError:
[   26s]             filename = None
[   26s]         bom_found = False
[   26s]         encoding = None
[   26s]         default = 'utf-8'
[   26s]         def read_or_stop():
[   26s]             try:
[   26s]                 return readline()
[   26s]             except StopIteration:
[   26s]                 return b''
[   26s]     
[   26s]         def find_cookie(line):
[   26s]             try:
[   26s]                 # Decode as UTF-8. Either the line is an encoding declaration,
[   26s]                 # in which case it should be pure ASCII, or it must be UTF-8
[   26s]                 # per default encoding.
[   26s]                 line_string = line.decode('utf-8')
[   26s]             except UnicodeDecodeError:
[   26s]                 msg = "invalid or missing encoding declaration"
[   26s]                 if filename is not None:
[   26s]                     msg = '{0} for {1!r}'.format(msg, filename)
[   26s]                 raise SyntaxError(msg)
[   26s]     
[   26s]             match = cookie_re.match(line)
[   26s]             if not match:
[   26s]                 return None
[   26s]             encoding = _get_normal_name(match.group(1).decode('utf-8'))
[   26s]             try:
[   26s]                 codec = lookup(encoding)
[   26s]             except LookupError:
[   26s]                 # This behaviour mimics the Python interpreter
[   26s]                 if filename is None:
[   26s]                     msg = "unknown encoding: " + encoding
[   26s]                 else:
[   26s]                     msg = "unknown encoding for {!r}: {}".format(filename,
[   26s]                             encoding)
[   26s]                 raise SyntaxError(msg)
[   26s]     
[   26s]             if bom_found:
[   26s]                 if encoding != 'utf-8':
[   26s]                     # This behaviour mimics the Python interpreter
[   26s]                     if filename is None:
[   26s]                         msg = 'encoding problem: utf-8'
[   26s]                     else:
[   26s]                         msg = 'encoding problem for {!r}: utf-8'.format(filename)
[   26s]                     raise SyntaxError(msg)
[   26s]                 encoding += '-sig'
[   26s]             return encoding
[   26s]     
[   26s]         first = read_or_stop()
[   26s] >       if first.startswith(BOM_UTF8):
[   26s] E       TypeError: startswith first arg must be str or a tuple of str, not bytes
[   26s] 
[   26s] /usr/lib/python3.6/site-packages/linecache2/__init__.py:278: TypeError
[   26s] __ serialise_version_info_from_mapping_TestCase.test_passes_specified_object ___
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 1049, in test_passes_specified_object
[   26s]     self.test_version_info)
[   26s] AttributeError: 'serialise_version_info_from_mapping_TestCase' object has no attribute 'test_version_info'
[   26s] 
[   26s] ______ has_changelog_TestCase.test_gets_changelog_path_from_distribution _______
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test_version.py", line 1391, in test_gets_changelog_path_from_distribution
[   26s]     version.has_changelog(self.test_command)
[   26s] AttributeError: 'has_changelog_TestCase' object has no attribute 'test_command'
[   26s] 
[   26s] ______________ ModuleExceptions_TestCase.test_exception_instance _______________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/scaffold.py", line 265, in test_exception_instance
[   26s]     self.assertIsNot(self.instance, None)
[   26s] AttributeError: 'ModuleExceptions_TestCase' object has no attribute 'instance'
[   26s] 
[   26s] ________________ ModuleExceptions_TestCase.test_exception_types ________________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/scaffold.py", line 269, in test_exception_types
[   26s]     for match_type in self.types:
[   26s] AttributeError: 'ModuleExceptions_TestCase' object has no attribute 'types'
[   26s] 
[   26s] _ _get_candidate_file_descriptors_TestCase.test_returns_expected_file_descriptors _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_daemon.py", line 1485, in test_returns_expected_file_descriptors
[   26s]     with make_get_maximum_file_descriptors_patch(self, self.fake_maxfd):
[   26s] AttributeError: '_get_candidate_file_descriptors_TestCase' object has no attribute 'fake_maxfd'
[   26s] 
[   26s] _ _get_candidate_file_descriptor_ranges_TestCase.test_returns_expected_file_descriptors _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_daemon.py", line 1582, in test_returns_expected_file_descriptors
[   26s]     with make_get_maximum_file_descriptors_patch(self, self.fake_maxfd):
[   26s] AttributeError: '_get_candidate_file_descriptor_ranges_TestCase' object has no attribute 'fake_maxfd'
[   26s] 
[   26s] _ _close_file_descriptor_ranges_TestCase.test_calls_os_closerange_with_expected_ranges _
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_daemon.py", line 1622, in test_calls_os_closerange_with_expected_ranges
[   26s]     daemon.daemon._close_file_descriptor_ranges(**self.test_kwargs)
[   26s] AttributeError: '_close_file_descriptor_ranges_TestCase' object has no attribute 'test_kwargs'
[   26s] 
[   26s] _________ metadata_value_TestCase.test_module_attribute_has_duck_type __________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 97, in test_module_attribute_has_duck_type
[   26s]     if self.ducktype_attribute_name == NotImplemented:
[   26s] AttributeError: 'metadata_value_TestCase' object has no attribute 'ducktype_attribute_name'
[   26s] 
[   26s] ______________ metadata_value_TestCase.test_module_has_attribute _______________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 93, in test_module_has_attribute
[   26s]     metadata, HasAttribute(self.attribute_name))
[   26s] AttributeError: 'metadata_value_TestCase' object has no attribute 'attribute_name'
[   26s] 
[   26s] ___________ YearRange_TestCase.test_text_representation_as_expected ____________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 134, in test_text_representation_as_expected
[   26s]     result = unicode(self.test_instance)
[   26s] AttributeError: 'YearRange_TestCase' object has no attribute 'test_instance'
[   26s] 
[   26s] _________ make_year_range_TestCase.test_result_matches_expected_range __________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 175, in test_result_matches_expected_range
[   26s]     result = metadata.make_year_range(self.begin_year, self.end_date)
[   26s] AttributeError: 'make_year_range_TestCase' object has no attribute 'begin_year'
[   26s] 
[   26s] _ get_distribution_version_info_TestCase.test_requests_installed_distribution __
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 335, in test_requests_installed_distribution
[   26s]     metadata.get_distribution_version_info(**self.test_args)
[   26s] AttributeError: 'get_distribution_version_info_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] ___ get_distribution_version_info_TestCase.test_requests_specified_filename ____
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 343, in test_requests_specified_filename
[   26s]     metadata.get_distribution_version_info(**self.test_args)
[   26s] AttributeError: 'get_distribution_version_info_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] __ get_distribution_version_info_TestCase.test_result_matches_expected_items ___
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/usr/lib/python3.6/site-packages/mock/mock.py", line 1346, in patched
[   26s]     return func(*newargs, **newkeywargs)
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/test_metadata.py", line 349, in test_result_matches_expected_items
[   26s]     version_info = metadata.get_distribution_version_info(**self.test_args)
[   26s] AttributeError: 'get_distribution_version_info_TestCase' object has no attribute 'test_args'
[   26s] 
[   26s] ______________ ModuleExceptions_TestCase.test_exception_instance _______________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/scaffold.py", line 265, in test_exception_instance
[   26s]     self.assertIsNot(self.instance, None)
[   26s] AttributeError: 'ModuleExceptions_TestCase' object has no attribute 'instance'
[   26s] 
[   26s] ________________ ModuleExceptions_TestCase.test_exception_types ________________
[   26s] 'NoneType' object is not iterable
[   26s] 
[   26s] During handling of the above exception, another exception occurred:
[   26s] NOTE: Incompatible Exception Representation, displaying natively:
[   26s] 
[   26s] testtools.testresult.real._StringException: Traceback (most recent call last):
[   26s]   File "/home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/test/scaffold.py", line 269, in test_exception_types
[   26s]     for match_type in self.types:
[   26s] AttributeError: 'ModuleExceptions_TestCase' object has no attribute 'types'
[   26s] 
[   26s] =============================== warnings summary ===============================
[   26s] ../../../../../usr/lib/python3.6/site-packages/packaging/version.py:130: 326 warnings
[   26s]   /usr/lib/python3.6/site-packages/packaging/version.py:130: DeprecationWarning: Creating a LegacyVersion has been deprecated and will be removed in the next major release
[   26s]     DeprecationWarning,
[   26s] 
[   26s] daemon/runner.py:44
[   26s]   /home/abuild/rpmbuild/BUILD/python-daemon-2.2.4/daemon/runner.py:44: DeprecationWarning: The runner module is not a supported API for this library.
[   26s]     DeprecationWarning)
[   26s] 
[   26s] -- Docs: https://docs.pytest.org/en/stable/warnings.html
[   26s] =========================== short test summary info ============================
[   26s] FAILED test_version.py::ensure_class_bases_begin_with_TestCase::test_calls_metaclass_with_expected_bases
[   26s] FAILED test_version.py::ensure_class_bases_begin_with_TestCase::test_calls_metaclass_with_expected_class_name
[   26s] FAILED test_version.py::ensure_class_bases_begin_with_TestCase::test_calls_metaclass_with_expected_namespace
[   26s] FAILED test_version.py::ensure_class_bases_begin_with_TestCase::test_module_namespace_contains_new_class
[   26s] FAILED test_version.py::ensure_class_bases_begin_with_AlreadyHasBase_TestCase::test_metaclass_not_called
[   26s] FAILED test_version.py::InvalidFormatError_TestCase::test_has_specified_message
[   26s] FAILED test_version.py::InvalidFormatError_TestCase::test_has_specified_node
[   26s] FAILED test_version.py::InvalidFormatError_TestCase::test_str_contains_expected_message_text
[   26s] FAILED test_version.py::InvalidFormatError_TestCase::test_str_contains_expected_node_text
[   26s] FAILED test_version.py::ChangeLogEntry_release_date_TestCase::test_has_expected_release_date
[   26s] FAILED test_version.py::ChangeLogEntry_version_TestCase::test_has_expected_version
[   26s] FAILED test_version.py::ChangeLogEntry_maintainer_TestCase::test_has_expected_maintainer
[   26s] FAILED test_version.py::ChangeLogEntry_body_TestCase::test_has_expected_body
[   26s] FAILED test_version.py::ChangeLogEntry_as_version_info_entry_TestCase::test_returns_result
[   26s] FAILED test_version.py::changelog_to_version_info_collection_TestCase::test_returns_expected_version_info
[   26s] FAILED test_version.py::generate_version_info_from_changelog_TestCase::test_opens_file_with_expected_encoding
[   26s] FAILED test_version.py::generate_version_info_from_changelog_TestCase::test_returns_empty_collection_on_read_error
[   26s] FAILED test_version.py::serialise_version_info_from_mapping_TestCase::test_passes_specified_object
[   26s] FAILED test_version.py::has_changelog_TestCase::test_gets_changelog_path_from_distribution
[   26s] FAILED test/test_daemon.py::ModuleExceptions_TestCase::test_exception_instance
[   26s] FAILED test/test_daemon.py::ModuleExceptions_TestCase::test_exception_types
[   26s] FAILED test/test_daemon.py::_get_candidate_file_descriptors_TestCase::test_returns_expected_file_descriptors
[   26s] FAILED test/test_daemon.py::_get_candidate_file_descriptor_ranges_TestCase::test_returns_expected_file_descriptors
[   26s] FAILED test/test_daemon.py::_close_file_descriptor_ranges_TestCase::test_calls_os_closerange_with_expected_ranges
[   26s] FAILED test/test_metadata.py::metadata_value_TestCase::test_module_attribute_has_duck_type
[   26s] FAILED test/test_metadata.py::metadata_value_TestCase::test_module_has_attribute
[   26s] FAILED test/test_metadata.py::YearRange_TestCase::test_text_representation_as_expected
[   26s] FAILED test/test_metadata.py::make_year_range_TestCase::test_result_matches_expected_range
[   26s] FAILED test/test_metadata.py::get_distribution_version_info_TestCase::test_requests_installed_distribution
[   26s] FAILED test/test_metadata.py::get_distribution_version_info_TestCase::test_requests_specified_filename
[   26s] FAILED test/test_metadata.py::get_distribution_version_info_TestCase::test_result_matches_expected_items
[   26s] FAILED test/test_runner.py::ModuleExceptions_TestCase::test_exception_instance
[   26s] FAILED test/test_runner.py::ModuleExceptions_TestCase::test_exception_types
[   26s] ERROR test_version.py::ensure_class_bases_begin_with_TestCase::test_calls_metaclass_with_expected_bases
[   26s] ERROR test_version.py::ensure_class_bases_begin_with_TestCase::test_calls_metaclass_with_expected_class_name
[   26s] ERROR test_version.py::ensure_class_bases_begin_with_TestCase::test_calls_metaclass_with_expected_namespace
[   26s] ERROR test_version.py::ensure_class_bases_begin_with_TestCase::test_module_namespace_contains_new_class
[   26s] ERROR test_version.py::InvalidFormatError_TestCase::test_has_specified_message
[   26s] ERROR test_version.py::InvalidFormatError_TestCase::test_has_specified_node
[   26s] ERROR test_version.py::InvalidFormatError_TestCase::test_str_contains_expected_message_text
[   26s] ERROR test_version.py::InvalidFormatError_TestCase::test_str_contains_expected_node_text
[   26s] ERROR test_version.py::ChangeLogEntry_release_date_TestCase::test_has_expected_release_date
[   26s] ERROR test_version.py::ChangeLogEntry_version_TestCase::test_has_expected_version
[   26s] ERROR test_version.py::ChangeLogEntry_maintainer_TestCase::test_has_expected_maintainer
[   26s] ERROR test_version.py::ChangeLogEntry_body_TestCase::test_has_expected_body
[   26s] ERROR test_version.py::changelog_to_version_info_collection_TestCase::test_returns_expected_version_info
[   26s] ERROR test_version.py::has_changelog_TestCase::test_gets_changelog_path_from_distribution
[   26s] ERROR test/test_daemon.py::ModuleExceptions_TestCase::test_exception_instance
[   26s] ERROR test/test_daemon.py::ModuleExceptions_TestCase::test_exception_types
[   26s] ERROR test/test_daemon.py::_get_candidate_file_descriptors_TestCase::test_returns_expected_file_descriptors
[   26s] ERROR test/test_daemon.py::_get_candidate_file_descriptor_ranges_TestCase::test_returns_expected_file_descriptors
[   26s] ERROR test/test_daemon.py::_close_file_descriptor_ranges_TestCase::test_calls_os_closerange_with_expected_ranges
[   26s] ERROR test/test_metadata.py::metadata_value_TestCase::test_module_attribute_has_duck_type
[   26s] ERROR test/test_metadata.py::metadata_value_TestCase::test_module_has_attribute
[   26s] ERROR test/test_metadata.py::YearRange_TestCase::test_text_representation_as_expected
[   26s] ERROR test/test_metadata.py::make_year_range_TestCase::test_result_matches_expected_range
[   26s] ERROR test/test_metadata.py::get_distribution_version_info_TestCase::test_requests_installed_distribution
[   26s] ERROR test/test_metadata.py::get_distribution_version_info_TestCase::test_requests_specified_filename
[   26s] ERROR test/test_metadata.py::get_distribution_version_info_TestCase::test_result_matches_expected_items
[   26s] ERROR test/test_runner.py::ModuleExceptions_TestCase::test_exception_instance
[   26s] ERROR test/test_runner.py::ModuleExceptions_TestCase::test_exception_types
[   26s] ==== 33 failed, 205 passed, 7 deselected, 327 warnings, 28 errors in 2.80s =====

Metadata Update from @bignose:
- Issue tagged with: more-info

Thanks for the report. Looking at the error output, I see many of them complaining the test case object is missing an expected attribute.

Those attributes are set in the instance setUp method for the test case. That will automatically be run, provided normal Python class MRO is being followed.

The normal Python unittest runner will do this correctly. But I see from the output that you're running the tests within several layers of some kind of wrappers I don't much recognise.

Can you please run the test suite using the standard python3 -m unittest discover command in an installed instance of the code base, and see whether the same errors occur? If that runs the suite successfully, it indicates the problem is elsewhere.

But I see from the output that you're running the tests within several layers of some kind of wrappers I don't much recognise.

In the output above is pytest used to run the tests. I guess because it's required to exclude failing tests (e.g., -k 'not test_returns_standard_stream_file_descriptors and not...).

On Python 3.10 the tests don't pass with python3 -m unittest discover or pytest for me as well.

@mcepl, perhaps the Fedora patches (https://src.fedoraproject.org/rpms/python-daemon/tree/rawhide) could help with the RPM. For me the patches are reducing the failures to one.

running install tests
.................................................F................................................................................................s........s..................s...............................................................................................................................................................................................
======================================================================
FAIL: test_detaches_process_context (test.test_daemon.DaemonContext_open_TestCase)
test.test_daemon.DaemonContext_open_TestCase.test_detaches_process_context
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call last):
  File "/build/python-daemon-2.3.0/test/test_daemon.py", line 503, in test_detaches_process_context
    self.mock_module_daemon.detach_process_context.assert_called_with()
  File "/nix/store/b798fp24zf2fdafmyyc4sxfr48ly5yy9-python3-3.10.1/lib/python3.10/unittest/mock.py", line 910, in assert_called_with
    raise AssertionError(error_message)
AssertionError: expected call not found.
Expected: detach_process_context()
Actual: not called.
----------------------------------------------------------------------
Ran 366 tests in 1.557s

Actually when running with python3 -munittest discovery and after application
of https://pagure.io/python-daemon/c/bacc1774e8ff and https://pagure.io/python-daemon/c/0c67a3c6407f the test suite passes.

Metadata Update from @mcepl:
- Issue close_status updated to: Fixed
- Issue status updated to: Closed (was: Open)

Metadata