diff options
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/support/__init__.py | 19 | ||||
-rw-r--r-- | Lib/test/test_logging.py | 8 |
2 files changed, 7 insertions, 20 deletions
diff --git a/Lib/test/support/__init__.py b/Lib/test/support/__init__.py index f0e15078d6..22868d4ba1 100644 --- a/Lib/test/support/__init__.py +++ b/Lib/test/support/__init__.py @@ -87,8 +87,7 @@ __all__ = [ "bigmemtest", "bigaddrspacetest", "cpython_only", "get_attribute", "requires_IEEE_754", "skip_unless_xattr", "requires_zlib", "anticipate_failure", "load_package_tests", "detect_api_mismatch", - "check__all__", "requires_multiprocessing_queue", - "skip_unless_bind_unix_socket", + "check__all__", "skip_unless_bind_unix_socket", # sys "is_jython", "is_android", "check_impl_detail", "unix_shell", "setswitchinterval", @@ -1791,22 +1790,6 @@ def impl_detail(msg=None, **guards): msg = msg.format(' or '.join(guardnames)) return unittest.skip(msg) -_have_mp_queue = None -def requires_multiprocessing_queue(test): - """Skip decorator for tests that use multiprocessing.Queue.""" - global _have_mp_queue - if _have_mp_queue is None: - import multiprocessing - # Without a functioning shared semaphore implementation attempts to - # instantiate a Queue will result in an ImportError (issue #3770). - try: - multiprocessing.Queue() - _have_mp_queue = True - except ImportError: - _have_mp_queue = False - msg = "requires a functioning shared semaphore implementation" - return test if _have_mp_queue else unittest.skip(msg)(test) - def _parse_guards(guards): # Returns a tuple ({platform_name: run_me}, default_value) if not guards: diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 1968b4253c..7101e3b157 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -3211,9 +3211,11 @@ if hasattr(logging.handlers, 'QueueListener'): self.assertEqual(mock_handle.call_count, 5 * self.repeat, 'correct number of handled log messages') - @support.requires_multiprocessing_queue @patch.object(logging.handlers.QueueListener, 'handle') def test_handle_called_with_mp_queue(self, mock_handle): + # Issue 28668: The multiprocessing (mp) module is not functional + # when the mp.synchronize module cannot be imported. + support.import_module('multiprocessing.synchronize') for i in range(self.repeat): log_queue = multiprocessing.Queue() self.setup_and_log(log_queue, '%s_%s' % (self.id(), i)) @@ -3230,7 +3232,6 @@ if hasattr(logging.handlers, 'QueueListener'): except queue.Empty: return [] - @support.requires_multiprocessing_queue def test_no_messages_in_queue_after_stop(self): """ Five messages are logged then the QueueListener is stopped. This @@ -3238,6 +3239,9 @@ if hasattr(logging.handlers, 'QueueListener'): indicates that messages were not registered on the queue until _after_ the QueueListener stopped. """ + # Issue 28668: The multiprocessing (mp) module is not functional + # when the mp.synchronize module cannot be imported. + support.import_module('multiprocessing.synchronize') for i in range(self.repeat): queue = multiprocessing.Queue() self.setup_and_log(queue, '%s_%s' %(self.id(), i)) |