Skip to content

bpo-35712: Make using NotImplemented in a boolean context issue a dep… #13195

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Mar 3, 2020

Conversation

MojoVampire
Copy link
Contributor

@MojoVampire MojoVampire commented May 8, 2019

…recation warning

A few tests and standard library functions were using it in boolean context (the standard library usage was technically correct, but obscure to the point of code smell, and easy to fix) while one test was using it on the assumption that it had not defined any methods beyond what object provides (and the change gives it __bool__) so I tweaked them as necessary (making the standard lib code more clear and using other sentinels like Ellipsis or object() for the relevant tests).

https://bugs.python.org/issue35712

Copy link
Member

@serhiy-storchaka serhiy-storchaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Just added few style nits.

@MojoVampire
Copy link
Contributor Author

The Azure Pipelines test failure was due to some unrelated issue with test_httplib and a bad cert. Looks like master fixed this in the past half hour, so I merged and pushed the new code to avoid the automated test failure.

@serhiy-storchaka
Copy link
Member

Could your please update the PR? Resolve conflicts and retarget this change to 3.9. I am going to merge this PR immediately after updating. It is too later for 3.8, but we have a lot of time to test it in 3.9.

@MojoVampire
Copy link
Contributor Author

Could your please update the PR? Resolve conflicts and retarget this change to 3.9. I am going to merge this PR immediately after updating. It is too later for 3.8, but we have a lot of time to test it in 3.9.

Hoping I did it correctly; a merge covering hundreds of commits seemed wrong, so I did a rebase and force push; only conflicts were in the 3.8 What's New (which I removed, before making a new commit adding the same info to the 3.9 What's New), and in object.c (where tp_reserved got renamed to tp_as_async in the comments near where I'd defined tp_as_number for NotImplemented; kept the new name). Otherwise rebased with minimal annoyance.

Copy link
Member

@serhiy-storchaka serhiy-storchaka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please document the unique behavior of NotImplemented in Doc/reference/datamodel.rst and Doc/library/constants.rst.

@@ -146,6 +146,12 @@ Deprecated
of Python. For the majority of use cases users can leverage the Abstract Syntax
Tree (AST) generation and compilation stage, using the :mod:`ast` module.

* Using :data:`NotImplemented` in a boolean context has been deprecated,
as it is almost exclusively the result of incorrect rich comparator
implementations. It will be made a :exc:`TypeError` in a future version
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not sure that it will be a TypeError. It may be a RuntimeWarning.

The programmer can silence a warning programmatically if it is raised in the code which he cannot change, but he cannot silence a TypeError.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I didn't see this comment before pushing my changes to datamodel/constants, so they still reference TypeError.

In any event, is there some reason to stop at RuntimeWarning? I thought DeprecationWarning was supposed to give all the "code you cannot change" (third party packages) time to update themselves so nothing is using the error-prone code path by the time it becomes an actual error?

I can change it, but I'd prefer this to be an error eventually; RuntimeWarning is used in a few places, so the guidelines aren't clear, but in most cases it seems to boil down to either a mostly harmless thing where the warning tells you you asked Python to do something nonsensical/suboptimal (e.g. bad buffering configuration), and it chose to ignore you and do something valid/more optimal instead, or in the case of asyncio, a case that is probably an error (failing to await a coroutine), but the problem can't be detected until an unpredictable time after the problem occurred, so raising an exception isn't feasible at that point (the same way exceptions in del are suppressed). In most of these cases, Python can stumble along and ignoring the warning doesn't leave you doing anything wrong, just possibly suboptimal. In almost all cases, if NotImplemented is used in a boolean context, and there is no clearly valid way for Python to handle it (what should have delegated or raised TypeError becomes a return of True or False), thus my preference for (eventually) making it an error.

@csabella
Copy link
Contributor

csabella commented Feb 6, 2020

@serhiy-storchaka, I believe @MojoVampire made all the requested changes and had an outstanding question for you in the last comment. Hopefully this can be merged soon.

@serhiy-storchaka serhiy-storchaka merged commit 469325c into python:master Mar 3, 2020
@bedevere-bot
Copy link

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot PPC64LE RHEL8 LTO 3.x has failed when building commit 469325c.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/356/builds/78) and take a look at the build logs.
  4. Check if the failure is related to this commit (469325c) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/356/builds/78

Summary of the results of the build (if available):

== Tests result: ENV CHANGED ==

406 tests OK.

10 slowest tests:

  • test_concurrent_futures: 2 min 31 sec
  • test_gdb: 1 min 52 sec
  • test_multiprocessing_spawn: 1 min 37 sec
  • test_multiprocessing_forkserver: 1 min 20 sec
  • test_multiprocessing_fork: 1 min 10 sec
  • test_tokenize: 55.8 sec
  • test_asyncio: 50.5 sec
  • test_signal: 47.1 sec
  • test_io: 40.5 sec
  • test_unparse: 38.1 sec

1 test altered the execution environment:
test_multiprocessing_fork

13 tests skipped:
test_devpoll test_ioctl test_kqueue test_msilib test_ossaudiodev
test_startfile test_tix test_tk test_ttk_guionly test_winconsoleio
test_winreg test_winsound test_zipfile64

Total duration: 4 min 3 sec

Click to see traceback logs
remote: Enumerating objects: 22, done.        
remote: Counting objects:   4% (1/22)        
remote: Counting objects:   9% (2/22)        
remote: Counting objects:  13% (3/22)        
remote: Counting objects:  18% (4/22)        
remote: Counting objects:  22% (5/22)        
remote: Counting objects:  27% (6/22)        
remote: Counting objects:  31% (7/22)        
remote: Counting objects:  36% (8/22)        
remote: Counting objects:  40% (9/22)        
remote: Counting objects:  45% (10/22)        
remote: Counting objects:  50% (11/22)        
remote: Counting objects:  54% (12/22)        
remote: Counting objects:  59% (13/22)        
remote: Counting objects:  63% (14/22)        
remote: Counting objects:  68% (15/22)        
remote: Counting objects:  72% (16/22)        
remote: Counting objects:  77% (17/22)        
remote: Counting objects:  81% (18/22)        
remote: Counting objects:  86% (19/22)        
remote: Counting objects:  90% (20/22)        
remote: Counting objects:  95% (21/22)        
remote: Counting objects: 100% (22/22)        
remote: Counting objects: 100% (22/22), done.        
remote: Compressing objects:  50% (1/2)        
remote: Compressing objects: 100% (2/2)        
remote: Compressing objects: 100% (2/2), done.        
remote: Total 23 (delta 20), reused 20 (delta 20), pack-reused 1        
From https://github.com/python/cpython
 * branch                  master     -> FETCH_HEAD
Reset branch 'master'

/home/buildbot/buildarea/3.x.cstratak-RHEL8-ppc64le.lto/build/Modules/_testcapimodule.c: In function ‘test_buildvalue_issue38913’:
/home/buildbot/buildarea/3.x.cstratak-RHEL8-ppc64le.lto/build/Modules/_testcapimodule.c:6808:15: warning: variable ‘res’ set but not used [-Wunused-but-set-variable]
     PyObject *res;
               ^~~

test_tix skipped -- Tk unavailable due to TclError: no display name and no $DISPLAY environment variab [...]
test_startfile skipped -- object <module 'os' from '/home/buildbot/buildarea/3.x.cstratak-RHEL8-ppc64le.lto/build/Lib/os.py'> has no attribute 'startfile'
test_kqueue skipped -- test works only on BSD
test_ioctl skipped -- Unable to open /dev/tty
test_ttk_guionly skipped -- Tk unavailable due to TclError: no display name and no $DISPLAY environment variab [...]
test_flock (__main__.FNTLEINTRTest) ... ok
test_lockf (__main__.FNTLEINTRTest) ... ok
test_read (__main__.OSEINTRTest) ... ok
test_wait (__main__.OSEINTRTest) ... ok
test_wait3 (__main__.OSEINTRTest) ... ok
test_wait4 (__main__.OSEINTRTest) ... ok
test_waitpid (__main__.OSEINTRTest) ... ok
test_write (__main__.OSEINTRTest) ... ok
test_devpoll (__main__.SelectEINTRTest) ... skipped 'need select.devpoll'
test_epoll (__main__.SelectEINTRTest) ... ok
test_kqueue (__main__.SelectEINTRTest) ... skipped 'need select.kqueue'
test_poll (__main__.SelectEINTRTest) ... ok
test_select (__main__.SelectEINTRTest) ... ok
test_sigtimedwait (__main__.SignalEINTRTest) ... ok
test_sigwaitinfo (__main__.SignalEINTRTest) ... ok
test_accept (__main__.SocketEINTRTest) ... ok
test_open (__main__.SocketEINTRTest) ... ok
test_os_open (__main__.SocketEINTRTest) ... ok
test_recv (__main__.SocketEINTRTest) ... ok
test_recvmsg (__main__.SocketEINTRTest) ... ok
test_send (__main__.SocketEINTRTest) ... ok
test_sendall (__main__.SocketEINTRTest) ... ok
test_sendmsg (__main__.SocketEINTRTest) ... ok
test_sleep (__main__.TimeEINTRTest) ... ok

----------------------------------------------------------------------
Ran 24 tests in 6.476s

OK (skipped=2)
stty: 'standard input': Inappropriate ioctl for device
test_winconsoleio skipped -- test only relevant on win32
test_winreg skipped -- No module named 'winreg'
test_msilib skipped -- No module named '_msi'
test_winsound skipped -- No module named 'winsound'
test__all__ (test.test_multiprocessing_fork.MiscTestCase) ... ok
test_answer_challenge_auth_failure (test.test_multiprocessing_fork.OtherTest) ... ok
test_deliver_challenge_auth_failure (test.test_multiprocessing_fork.OtherTest) ... ok
test_closefd (test.test_multiprocessing_fork.TestCloseFds) ... ok
test_flags (test.test_multiprocessing_fork.TestFlags) ... ok
test_lock (test.test_multiprocessing_fork.TestForkAwareThreadLock) ... ok
test_ignore (test.test_multiprocessing_fork.TestIgnoreEINTR) ... ok
test_ignore_listener (test.test_multiprocessing_fork.TestIgnoreEINTR) ... ok
test_manager_initializer (test.test_multiprocessing_fork.TestInitializers) ... ok
test_pool_initializer (test.test_multiprocessing_fork.TestInitializers) ... ok
test_invalid_family (test.test_multiprocessing_fork.TestInvalidFamily) ... ok
test_invalid_family_win32 (test.test_multiprocessing_fork.TestInvalidFamily) ... skipped 'skipped on non-Windows platforms'
test_invalid_handles (test.test_multiprocessing_fork.TestInvalidHandle) ... ok
test_noforkbomb (test.test_multiprocessing_fork.TestNoForkBomb) ... ok
test_release_unused_processes (test.test_multiprocessing_fork.TestPoolNotLeakOnFailure) ... ok
test_resource_tracker (test.test_multiprocessing_fork.TestResourceTracker) ... ok
test_resource_tracker_reused (test.test_multiprocessing_fork.TestResourceTracker) ... ok
test_resource_tracker_sigint (test.test_multiprocessing_fork.TestResourceTracker) ... ok
test_resource_tracker_sigkill (test.test_multiprocessing_fork.TestResourceTracker) ... ok
test_resource_tracker_sigterm (test.test_multiprocessing_fork.TestResourceTracker) ... ok
test_empty (test.test_multiprocessing_fork.TestSimpleQueue) ... ok
test_context (test.test_multiprocessing_fork.TestStartMethod) ... ok
test_get_all (test.test_multiprocessing_fork.TestStartMethod) ... ok
test_preload_resources (test.test_multiprocessing_fork.TestStartMethod) ... skipped "test only relevant for 'forkserver' method"
test_set_get (test.test_multiprocessing_fork.TestStartMethod) ... ok
test_flushing (test.test_multiprocessing_fork.TestStdinBadfiledescriptor) ... ok
test_pool_in_process (test.test_multiprocessing_fork.TestStdinBadfiledescriptor) ... ok
test_queue_in_process (test.test_multiprocessing_fork.TestStdinBadfiledescriptor) ... ok
test_array (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_barrier (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_bounded_semaphore (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_condition (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_dict (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_event (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_joinable_queue (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_list (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_lock (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_namespace (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_pool (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_queue (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_rlock (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_semaphore (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_value (test.test_multiprocessing_fork.TestSyncManagerTypes) ... ok
test_timeout (test.test_multiprocessing_fork.TestTimeouts) ... ok
test_neg_timeout (test.test_multiprocessing_fork.TestWait) ... ok
test_wait (test.test_multiprocessing_fork.TestWait) ... ok
test_wait_integer (test.test_multiprocessing_fork.TestWait) ... ok
test_wait_slow (test.test_multiprocessing_fork.TestWait) ... ok
test_wait_socket (test.test_multiprocessing_fork.TestWait) ... ok
test_wait_socket_slow (test.test_multiprocessing_fork.TestWait) ... ok
test_wait_timeout (test.test_multiprocessing_fork.TestWait) ... ok
test_abort (test.test_multiprocessing_fork.WithManagerTestBarrier)
Test that an abort will put the barrier in a broken state ... ok
test_abort_and_reset (test.test_multiprocessing_fork.WithManagerTestBarrier)
Test that a barrier can be reset after being broken. ... ok
test_action (test.test_multiprocessing_fork.WithManagerTestBarrier)
Test the 'action' callback ... ok
test_barrier (test.test_multiprocessing_fork.WithManagerTestBarrier)
Test that a barrier is passed in lockstep ... ok
test_barrier_10 (test.test_multiprocessing_fork.WithManagerTestBarrier)
Test that a barrier works for 10 consecutive runs ... ok
test_default_timeout (test.test_multiprocessing_fork.WithManagerTestBarrier)
Test the barrier's default timeout ... ok
test_reset (test.test_multiprocessing_fork.WithManagerTestBarrier)
Test that a 'reset' on a barrier frees the waiting threads ... ok
test_single_thread (test.test_multiprocessing_fork.WithManagerTestBarrier) ... ok
test_thousand (test.test_multiprocessing_fork.WithManagerTestBarrier) ... skipped 'test not appropriate for manager'
test_timeout (test.test_multiprocessing_fork.WithManagerTestBarrier)
Test wait(timeout) ... ok
test_wait_return (test.test_multiprocessing_fork.WithManagerTestBarrier)
test the return value from barrier.wait ... ok
test_notify (test.test_multiprocessing_fork.WithManagerTestCondition) ... ok
test_notify_all (test.test_multiprocessing_fork.WithManagerTestCondition) ... ok
test_notify_n (test.test_multiprocessing_fork.WithManagerTestCondition) ... ok
test_timeout (test.test_multiprocessing_fork.WithManagerTestCondition) ... ok
test_wait_result (test.test_multiprocessing_fork.WithManagerTestCondition) ... ok
test_waitfor (test.test_multiprocessing_fork.WithManagerTestCondition) ... ok
test_waitfor_timeout (test.test_multiprocessing_fork.WithManagerTestCondition) ... ok
test_dict (test.test_multiprocessing_fork.WithManagerTestContainers) ... ok
test_dict_iter (test.test_multiprocessing_fork.WithManagerTestContainers) ... ok
test_dict_proxy_nested (test.test_multiprocessing_fork.WithManagerTestContainers) ... ok
test_list (test.test_multiprocessing_fork.WithManagerTestContainers) ... ok
test_list_iter (test.test_multiprocessing_fork.WithManagerTestContainers) ... ok
test_list_proxy_in_list (test.test_multiprocessing_fork.WithManagerTestContainers) ... ok
test_namespace (test.test_multiprocessing_fork.WithManagerTestContainers) ... ok
test_event (test.test_multiprocessing_fork.WithManagerTestEvent) ... ok
test_lock (test.test_multiprocessing_fork.WithManagerTestLock) ... ok
test_lock_context (test.test_multiprocessing_fork.WithManagerTestLock) ... ok
test_rlock (test.test_multiprocessing_fork.WithManagerTestLock) ... ok
test_rapid_restart (test.test_multiprocessing_fork.WithManagerTestManagerRestart) ... ok
test_mymanager (test.test_multiprocessing_fork.WithManagerTestMyManager) ... ok
test_mymanager_context (test.test_multiprocessing_fork.WithManagerTestMyManager) ... ok
test_mymanager_context_prestarted (test.test_multiprocessing_fork.WithManagerTestMyManager) ... ok
test_apply (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_async (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_async_timeout (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_context (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_empty_iterable (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_enter (test.test_multiprocessing_fork.WithManagerTestPool) ... skipped 'test not applicable to manager'
test_imap (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_imap_handle_iterable_exception (test.test_multiprocessing_fork.WithManagerTestPool) ... skipped 'test not appropriate for manager'
test_imap_unordered (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_imap_unordered_handle_iterable_exception (test.test_multiprocessing_fork.WithManagerTestPool) ... skipped 'test not appropriate for manager'
test_make_pool (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_map (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_map_async (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_map_async_callbacks (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_map_chunksize (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_map_handle_iterable_exception (test.test_multiprocessing_fork.WithManagerTestPool) ... skipped 'test not appropriate for manager'
test_map_no_failfast (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_map_unplicklable (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_release_task_refs (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_resource_warning (test.test_multiprocessing_fork.WithManagerTestPool) ... skipped 'test not applicable to manager'
test_starmap (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_starmap_async (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_terminate (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_traceback (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_wrapped_exception (test.test_multiprocessing_fork.WithManagerTestPool) ... ok
test_closed_queue_put_get_exceptions (test.test_multiprocessing_fork.WithManagerTestQueue) ... ok
test_fork (test.test_multiprocessing_fork.WithManagerTestQueue) ... ok
test_get (test.test_multiprocessing_fork.WithManagerTestQueue) ... ok
test_no_import_lock_contention (test.test_multiprocessing_fork.WithManagerTestQueue) ... ok
test_put (test.test_multiprocessing_fork.WithManagerTestQueue) ... ok
test_qsize (test.test_multiprocessing_fork.WithManagerTestQueue) ... ok
test_queue_feeder_donot_stop_onexc (test.test_multiprocessing_fork.WithManagerTestQueue) ... skipped 'test not appropriate for manager'
test_queue_feeder_on_queue_feeder_error (test.test_multiprocessing_fork.WithManagerTestQueue) ... skipped 'test not appropriate for manager'
test_task_done (test.test_multiprocessing_fork.WithManagerTestQueue) ... ok
test_timeout (test.test_multiprocessing_fork.WithManagerTestQueue) ... ok
test_remote (test.test_multiprocessing_fork.WithManagerTestRemoteManager) ... ok
test_bounded_semaphore (test.test_multiprocessing_fork.WithManagerTestSemaphore) ... ok
test_semaphore (test.test_multiprocessing_fork.WithManagerTestSemaphore) ... ok
test_timeout (test.test_multiprocessing_fork.WithManagerTestSemaphore) ... skipped 'test not appropriate for manager'
test_array (test.test_multiprocessing_fork.WithProcessesTestArray) ... ok
test_array_from_size (test.test_multiprocessing_fork.WithProcessesTestArray) ... ok
test_getobj_getlock_obj (test.test_multiprocessing_fork.WithProcessesTestArray) ... ok
test_rawarray (test.test_multiprocessing_fork.WithProcessesTestArray) ... ok
test_abort (test.test_multiprocessing_fork.WithProcessesTestBarrier)
Test that an abort will put the barrier in a broken state ... ok
test_abort_and_reset (test.test_multiprocessing_fork.WithProcessesTestBarrier)
Test that a barrier can be reset after being broken. ... ok
test_action (test.test_multiprocessing_fork.WithProcessesTestBarrier)
Test the 'action' callback ... ok
test_barrier (test.test_multiprocessing_fork.WithProcessesTestBarrier)
Test that a barrier is passed in lockstep ... ok
test_barrier_10 (test.test_multiprocessing_fork.WithProcessesTestBarrier)
Test that a barrier works for 10 consecutive runs ... ok
test_default_timeout (test.test_multiprocessing_fork.WithProcessesTestBarrier)
Test the barrier's default timeout ... ok
test_reset (test.test_multiprocessing_fork.WithProcessesTestBarrier)
Test that a 'reset' on a barrier frees the waiting threads ... ok
test_single_thread (test.test_multiprocessing_fork.WithProcessesTestBarrier) ... ok
test_thousand (test.test_multiprocessing_fork.WithProcessesTestBarrier) ... ok
test_timeout (test.test_multiprocessing_fork.WithProcessesTestBarrier)
Test wait(timeout) ... ok
test_wait_return (test.test_multiprocessing_fork.WithProcessesTestBarrier)
test the return value from barrier.wait ... ok
test_notify (test.test_multiprocessing_fork.WithProcessesTestCondition) ... ok
test_notify_all (test.test_multiprocessing_fork.WithProcessesTestCondition) ... ok
test_notify_n (test.test_multiprocessing_fork.WithProcessesTestCondition) ... ok
test_timeout (test.test_multiprocessing_fork.WithProcessesTestCondition) ... ok
test_wait_result (test.test_multiprocessing_fork.WithProcessesTestCondition) ... ok
test_waitfor (test.test_multiprocessing_fork.WithProcessesTestCondition) ... ok
test_waitfor_timeout (test.test_multiprocessing_fork.WithProcessesTestCondition) ... ok
test_connection (test.test_multiprocessing_fork.WithProcessesTestConnection) ... ok
test_context (test.test_multiprocessing_fork.WithProcessesTestConnection) ... ok
test_duplex_false (test.test_multiprocessing_fork.WithProcessesTestConnection) ... ok
test_fd_transfer (test.test_multiprocessing_fork.WithProcessesTestConnection) ... ok
test_large_fd_transfer (test.test_multiprocessing_fork.WithProcessesTestConnection) ... ok
test_missing_fd_transfer (test.test_multiprocessing_fork.WithProcessesTestConnection) ... ok
test_sendbytes (test.test_multiprocessing_fork.WithProcessesTestConnection) ... ok
test_spawn_close (test.test_multiprocessing_fork.WithProcessesTestConnection) ... ok
test_event (test.test_multiprocessing_fork.WithProcessesTestEvent) ... ok
test_finalize (test.test_multiprocessing_fork.WithProcessesTestFinalize) ... ok
test_thread_safety (test.test_multiprocessing_fork.WithProcessesTestFinalize) ... ok
test_free_from_gc (test.test_multiprocessing_fork.WithProcessesTestHeap) ... ok
test_heap (test.test_multiprocessing_fork.WithProcessesTestHeap) ... ok
test_context (test.test_multiprocessing_fork.WithProcessesTestListener) ... ok
test_multiple_bind (test.test_multiprocessing_fork.WithProcessesTestListener) ... ok
test_issue14725 (test.test_multiprocessing_fork.WithProcessesTestListenerClient) ... ok
test_issue16955 (test.test_multiprocessing_fork.WithProcessesTestListenerClient) ... ok
test_listener_client (test.test_multiprocessing_fork.WithProcessesTestListenerClient) ... ok
test_lock (test.test_multiprocessing_fork.WithProcessesTestLock) ... ok
test_lock_context (test.test_multiprocessing_fork.WithProcessesTestLock) ... ok
test_rlock (test.test_multiprocessing_fork.WithProcessesTestLock) ... ok
test_enable_logging (test.test_multiprocessing_fork.WithProcessesTestLogging) ... ok
test_level (test.test_multiprocessing_fork.WithProcessesTestLogging) ... ok
test_rapid_restart (test.test_multiprocessing_fork.WithProcessesTestManagerRestart) ... ok
test_access (test.test_multiprocessing_fork.WithProcessesTestPicklingConnections) ... ok
test_pickling (test.test_multiprocessing_fork.WithProcessesTestPicklingConnections) ... ok
test_boundaries (test.test_multiprocessing_fork.WithProcessesTestPoll) ... ok
test_dont_merge (test.test_multiprocessing_fork.WithProcessesTestPoll) ... ok
test_empty_string (test.test_multiprocessing_fork.WithProcessesTestPoll) ... ok
test_strings (test.test_multiprocessing_fork.WithProcessesTestPoll) ... ok
test_poll_eintr (test.test_multiprocessing_fork.WithProcessesTestPollEintr) ... ok
test_apply (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_async (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_async_timeout (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_context (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_empty_iterable (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_enter (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_imap (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_imap_handle_iterable_exception (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_imap_unordered (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_imap_unordered_handle_iterable_exception (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_make_pool (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_map (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_map_async (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_map_async_callbacks (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_map_chunksize (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_map_handle_iterable_exception (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_map_no_failfast (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_map_unplicklable (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_release_task_refs (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_resource_warning (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_starmap (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_starmap_async (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_terminate (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_traceback (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_wrapped_exception (test.test_multiprocessing_fork.WithProcessesTestPool) ... ok
test_async_error_callback (test.test_multiprocessing_fork.WithProcessesTestPoolWorkerErrors) ... ok
test_unpickleable_result (test.test_multiprocessing_fork.WithProcessesTestPoolWorkerErrors) ... ok
test_pool_worker_lifetime (test.test_multiprocessing_fork.WithProcessesTestPoolWorkerLifetime) ... ok
test_pool_worker_lifetime_early_close (test.test_multiprocessing_fork.WithProcessesTestPoolWorkerLifetime) ... ok
test_active_children (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_child_fd_inflation (test.test_multiprocessing_fork.WithProcessesTestProcess) ... skipped 'test not appropriate for fork'
test_close (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_cpu_count (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_current (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_daemon_argument (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_error_on_stdio_flush_1 (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_error_on_stdio_flush_2 (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_forkserver_sigint (test.test_multiprocessing_fork.WithProcessesTestProcess) ... skipped 'test not appropriate for fork'
test_forkserver_sigkill (test.test_multiprocessing_fork.WithProcessesTestProcess) ... skipped 'test not appropriate for fork'
test_kill (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_lose_target_ref (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_many_processes (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_parent_process (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_parent_process_attributes (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_process (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_process_mainthread_native_id (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_recursion (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_sentinel (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_terminate (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_wait_for_threads (test.test_multiprocessing_fork.WithProcessesTestProcess) ... ok
test_closed_queue_put_get_exceptions (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_fork (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_get (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_no_import_lock_contention (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_put (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_qsize (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_queue_feeder_donot_stop_onexc (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_queue_feeder_on_queue_feeder_error (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_task_done (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_timeout (test.test_multiprocessing_fork.WithProcessesTestQueue) ... ok
test_bounded_semaphore (test.test_multiprocessing_fork.WithProcessesTestSemaphore) ... ok
test_semaphore (test.test_multiprocessing_fork.WithProcessesTestSemaphore) ... ok
test_timeout (test.test_multiprocessing_fork.WithProcessesTestSemaphore) ... ok
test_copy (test.test_multiprocessing_fork.WithProcessesTestSharedCTypes) ... ok
test_sharedctypes (test.test_multiprocessing_fork.WithProcessesTestSharedCTypes) ... ok
test_synchronize (test.test_multiprocessing_fork.WithProcessesTestSharedCTypes) ... ok
test_shared_memory_ShareableList_basics (test.test_multiprocessing_fork.WithProcessesTestSharedMemory) ... ok
test_shared_memory_ShareableList_pickling (test.test_multiprocessing_fork.WithProcessesTestSharedMemory) ... ok
test_shared_memory_SharedMemoryManager_basics (test.test_multiprocessing_fork.WithProcessesTestSharedMemory) ... ok
test_shared_memory_SharedMemoryManager_reuses_resource_tracker (test.test_multiprocessing_fork.WithProcessesTestSharedMemory) ... ok
test_shared_memory_SharedMemoryServer_ignores_sigint (test.test_multiprocessing_fork.WithProcessesTestSharedMemory) ... ok
test_shared_memory_across_processes (test.test_multiprocessing_fork.WithProcessesTestSharedMemory) ... ok
test_shared_memory_basics (test.test_multiprocessing_fork.WithProcessesTestSharedMemory) ... ok
test_shared_memory_cleaned_after_process_termination (test.test_multiprocessing_fork.WithProcessesTestSharedMemory) ... ok
test_stderr_flush (test.test_multiprocessing_fork.WithProcessesTestSubclassingProcess) ... ok
test_subclassing (test.test_multiprocessing_fork.WithProcessesTestSubclassingProcess) ... ok
test_sys_exit (test.test_multiprocessing_fork.WithProcessesTestSubclassingProcess) ... ok
test_getobj_getlock (test.test_multiprocessing_fork.WithProcessesTestValue) ... ok
test_rawvalue (test.test_multiprocessing_fork.WithProcessesTestValue) ... ok
test_value (test.test_multiprocessing_fork.WithProcessesTestValue) ... ok
test_abort (test.test_multiprocessing_fork.WithThreadsTestBarrier)
Test that an abort will put the barrier in a broken state ... ok
test_abort_and_reset (test.test_multiprocessing_fork.WithThreadsTestBarrier)
Test that a barrier can be reset after being broken. ... ok
test_action (test.test_multiprocessing_fork.WithThreadsTestBarrier)
Test the 'action' callback ... ok
test_barrier (test.test_multiprocessing_fork.WithThreadsTestBarrier)
Test that a barrier is passed in lockstep ... ok
test_barrier_10 (test.test_multiprocessing_fork.WithThreadsTestBarrier)
Test that a barrier works for 10 consecutive runs ... ok
test_default_timeout (test.test_multiprocessing_fork.WithThreadsTestBarrier)
Test the barrier's default timeout ... ok
test_reset (test.test_multiprocessing_fork.WithThreadsTestBarrier)
Test that a 'reset' on a barrier frees the waiting threads ... ok
test_single_thread (test.test_multiprocessing_fork.WithThreadsTestBarrier) ... ok
test_thousand (test.test_multiprocessing_fork.WithThreadsTestBarrier) ... ok
test_timeout (test.test_multiprocessing_fork.WithThreadsTestBarrier)
Test wait(timeout) ... ok
test_wait_return (test.test_multiprocessing_fork.WithThreadsTestBarrier)
test the return value from barrier.wait ... ok
test_notify (test.test_multiprocessing_fork.WithThreadsTestCondition) ... ok
test_notify_all (test.test_multiprocessing_fork.WithThreadsTestCondition) ... ok
test_notify_n (test.test_multiprocessing_fork.WithThreadsTestCondition) ... ok
test_timeout (test.test_multiprocessing_fork.WithThreadsTestCondition) ... ok
test_wait_result (test.test_multiprocessing_fork.WithThreadsTestCondition) ... ok
test_waitfor (test.test_multiprocessing_fork.WithThreadsTestCondition) ... ok
test_waitfor_timeout (test.test_multiprocessing_fork.WithThreadsTestCondition) ... ok
test_connection (test.test_multiprocessing_fork.WithThreadsTestConnection) ... ok
test_context (test.test_multiprocessing_fork.WithThreadsTestConnection) ... ok
test_duplex_false (test.test_multiprocessing_fork.WithThreadsTestConnection) ... ok
test_fd_transfer (test.test_multiprocessing_fork.WithThreadsTestConnection) ... skipped 'only makes sense with processes'
test_large_fd_transfer (test.test_multiprocessing_fork.WithThreadsTestConnection) ... skipped 'only makes sense with processes'
test_missing_fd_transfer (test.test_multiprocessing_fork.WithThreadsTestConnection) ... skipped 'only makes sense with processes'
test_sendbytes (test.test_multiprocessing_fork.WithThreadsTestConnection) ... skipped 'test not appropriate for threads'
test_spawn_close (test.test_multiprocessing_fork.WithThreadsTestConnection) ... ok
test_event (test.test_multiprocessing_fork.WithThreadsTestEvent) ... ok
test_issue14725 (test.test_multiprocessing_fork.WithThreadsTestListenerClient) ... ok
test_issue16955 (test.test_multiprocessing_fork.WithThreadsTestListenerClient) ... ok
test_listener_client (test.test_multiprocessing_fork.WithThreadsTestListenerClient) ... ok
test_lock (test.test_multiprocessing_fork.WithThreadsTestLock) ... ok
test_lock_context (test.test_multiprocessing_fork.WithThreadsTestLock) ... ok
test_rlock (test.test_multiprocessing_fork.WithThreadsTestLock) ... ok
test_rapid_restart (test.test_multiprocessing_fork.WithThreadsTestManagerRestart) ... ok
test_boundaries (test.test_multiprocessing_fork.WithThreadsTestPoll) ... ok
test_dont_merge (test.test_multiprocessing_fork.WithThreadsTestPoll) ... ok
test_empty_string (test.test_multiprocessing_fork.WithThreadsTestPoll) ... ok
test_strings (test.test_multiprocessing_fork.WithThreadsTestPoll) ... ok
test_apply (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_async (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_async_timeout (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_context (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_empty_iterable (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_enter (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_imap (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_imap_handle_iterable_exception (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_imap_unordered (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_imap_unordered_handle_iterable_exception (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_make_pool (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_map (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_map_async (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_map_async_callbacks (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_map_chunksize (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_map_handle_iterable_exception (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_map_no_failfast (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_map_unplicklable (test.test_multiprocessing_fork.WithThreadsTestPool) ... skipped 'test not appropriate for threads'
test_release_task_refs (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_resource_warning (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_starmap (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_starmap_async (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_terminate (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_traceback (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_wrapped_exception (test.test_multiprocessing_fork.WithThreadsTestPool) ... ok
test_active_children (test.test_multiprocessing_fork.WithThreadsTestProcess) ... ok
test_child_fd_inflation (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_close (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_cpu_count (test.test_multiprocessing_fork.WithThreadsTestProcess) ... ok
test_current (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_daemon_argument (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_error_on_stdio_flush_1 (test.test_multiprocessing_fork.WithThreadsTestProcess) ... ok
test_error_on_stdio_flush_2 (test.test_multiprocessing_fork.WithThreadsTestProcess) ... ok
test_forkserver_sigint (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_forkserver_sigkill (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_kill (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_lose_target_ref (test.test_multiprocessing_fork.WithThreadsTestProcess) ... ok
test_many_processes (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_parent_process (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_parent_process_attributes (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_process (test.test_multiprocessing_fork.WithThreadsTestProcess) ... ok
test_process_mainthread_native_id (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_recursion (test.test_multiprocessing_fork.WithThreadsTestProcess) ... ok
test_sentinel (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_terminate (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_wait_for_threads (test.test_multiprocessing_fork.WithThreadsTestProcess) ... skipped 'test not appropriate for threads'
test_closed_queue_put_get_exceptions (test.test_multiprocessing_fork.WithThreadsTestQueue) ... ok
test_fork (test.test_multiprocessing_fork.WithThreadsTestQueue) ... ok
test_get (test.test_multiprocessing_fork.WithThreadsTestQueue) ... ok
test_no_import_lock_contention (test.test_multiprocessing_fork.WithThreadsTestQueue) ... ok
test_put (test.test_multiprocessing_fork.WithThreadsTestQueue) ... ok
test_qsize (test.test_multiprocessing_fork.WithThreadsTestQueue) ... ok
test_queue_feeder_donot_stop_onexc (test.test_multiprocessing_fork.WithThreadsTestQueue) ... skipped 'test not appropriate for threads'
test_queue_feeder_on_queue_feeder_error (test.test_multiprocessing_fork.WithThreadsTestQueue) ... skipped 'test not appropriate for threads'
test_task_done (test.test_multiprocessing_fork.WithThreadsTestQueue) ... ok
test_timeout (test.test_multiprocessing_fork.WithThreadsTestQueue) ... ok
test_bounded_semaphore (test.test_multiprocessing_fork.WithThreadsTestSemaphore) ... ok
test_semaphore (test.test_multiprocessing_fork.WithThreadsTestSemaphore) ... ok
test_timeout (test.test_multiprocessing_fork.WithThreadsTestSemaphore) ... skipped 'test not appropriate for threads'
test_import (test.test_multiprocessing_fork._TestImportStar) ... ok

----------------------------------------------------------------------

Ran 354 tests in 70.325s

OK (skipped=36)
test_tk skipped -- Tk unavailable due to TclError: no display name and no $DISPLAY environment variab [...]
test_ossaudiodev skipped -- [Errno 2] No such file or directory: '/dev/dsp'
test_zipfile64 skipped -- test requires loads of disk-space bytes and a long time to run
test_devpoll skipped -- test works only on Solaris OS family
make: *** [Makefile:1169: buildbottest] Error 3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants