summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
...
| * Python issue #23243: Close explicitly event loops in testsVictor Stinner2015-01-153-1/+20
| |
| * Python issue #23243: Fix _UnixWritePipeTransport.close()Victor Stinner2015-01-151-0/+3
| | | | | | | | | | Do nothing if the transport is already closed. Before it was not possible to close the transport twice.
| * Fix test_events on Python older than 3.5Victor Stinner2015-01-141-0/+17
| | | | | | | | Skip SSL tests on the ProactorEventLoop if ssl.MemoryIO is missing
| * Tests: explicitly close event loops and transportsVictor Stinner2015-01-145-0/+9
| |
| * Python issue #23197: On SSL handshake failure, check if the waiter is cancelledVictor Stinner2015-01-142-4/+61
| | | | | | | | | | | | before setting its exception. Add unit tests for this case.
| * Python issue #23173: Fix SubprocessStreamProtocol.connection_made() to handleVictor Stinner2015-01-141-0/+36
| | | | | | | | | | | | cancelled waiter. Add unit test cancelling subprocess methods.
| * Python issue #22560: New SSL implementation based on ssl.MemoryBIOVictor Stinner2015-01-142-11/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new SSL implementation is based on the new ssl.MemoryBIO which is only available on Python 3.5. On Python 3.4 and older, the legacy SSL implementation (using SSL_write, SSL_read, etc.) is used. The proactor event loop only supports the new implementation. The new asyncio.sslproto module adds _SSLPipe, SSLProtocol and _SSLProtocolTransport classes. _SSLPipe allows to "wrap" or "unwrap" a socket (switch between cleartext and SSL/TLS). Patch written by Antoine Pitrou. sslproto.py is based on gruvi/ssl.py of the gruvi project written by Geert Jansen. This change adds SSL support to ProactorEventLoop on Python 3.5 and newer! It becomes also possible to implement STARTTTLS: switch a cleartext socket to SSL.
| * Tulip issue 184: Fix test_pipe() on WindowsVictor Stinner2015-01-131-1/+2
| | | | | | | | Pass explicitly the event loop to StreamReaderProtocol.
| * Python issue #23209, #23225: selectors.BaseSelector.get_key() now raises aVictor Stinner2015-01-131-4/+7
| | | | | | | | | | | | RuntimeError if the selector is closed. And selectors.BaseSelector.close() now clears its internal reference to the selector mapping to break a reference cycle. Initial patch written by Martin Richard.
| * Tulip issue #184: FlowControlMixin constructor now get the event loop if theVictor Stinner2015-01-091-0/+19
| | | | | | | | | | | | | | loop parameter is not set Add unit tests to ensure that constructor of StreamReader and StreamReaderProtocol classes get the event loop.
| * Replace test_selectors.py with the file of Python 3.5 adapted for asyncio andVictor Stinner2015-01-091-161/+395
| | | | | | | | | | | | | | | | Python 3.3 * Use time.time if time.monotonic is not available * Get socketpair from asyncio.test_utils * Get selectors from asyncio.selectors
| * Truncate to 80 columnsVictor Stinner2015-01-095-18/+37
| |
| * Python issue #23140: Simplify the unit testVictor Stinner2015-01-061-8/+6
| |
| * Issue #23140: Fix cancellation of Process.wait(). Check the state of the waiterVictor Stinner2015-01-061-0/+28
| | | | | | | | future before setting its result.
| * CPython doesn't have asyncio.test_supportVictor Stinner2014-12-266-24/+46
| |
| * Python issue #22926: In debug mode, call_soon(), call_at() and call_later()Victor Stinner2014-12-263-39/+66
| | | | | | | | | | | | | | | | | | | | methods of BaseEventLoop now use the identifier of the current thread to ensure that they are called from the thread running the event loop. Before, the get_event_loop() method was used to check the thread, and no exception was raised when the thread had no event loop. Now the methods always raise an exception in debug mode when called from the wrong thread. It should help to notice misusage of the API.
| * Fix pyflakes warnings: remove unused imports and variablesVictor Stinner2014-12-193-7/+2
| |
| * asyncio.test_support now uses test.support and test.script_helper if availableVictor Stinner2014-12-196-48/+25
| |
| * IocpProactor.wait_for_handle() test now also checks the result of the futureVictor Stinner2014-12-191-2/+6
| |
| * Copy a subset of test.support from CPython 3.5 to no more depend on the testVictor Stinner2014-12-186-16/+37
| | | | | | | | module to run the asyncio test suite. The test module is rarely installed.
| * Python issue #23074: get_event_loop() now raises an exception if the thread hasVictor Stinner2014-12-181-2/+2
| | | | | | | | no event loop even if assertions are disabled.
| * Add run_aiotest.pyVictor Stinner2014-12-1224-0/+12939
|
* BaseSubprocessTransport.close() doesn't try to kill the process if it alreadyVictor Stinner2015-02-101-0/+55
| | | | finished
* Only call _check_resolved_address() in debug modeVictor Stinner2015-02-041-0/+4
| | | | | | | | | | | | | | | | * _check_resolved_address() is implemented with getaddrinfo() which is slow * If available, use socket.inet_pton() instead of socket.getaddrinfo(), because it is much faster Microbenchmark (timeit) on Fedora 21 (Python 3.4, Linux 3.17, glibc 2.20) to validate the IPV4 address "127.0.0.1" or the IPv6 address "::1": * getaddrinfo() 10.4 usec per loop * inet_pton(): 0.285 usec per loop On glibc older than 2.14, getaddrinfo() always requests the list of all local IP addresses to the kernel (using a NETLINK socket). getaddrinfo() has other known issues, it's better to avoid it when it is possible.
* Python issue #23347: send_signal(), terminate(), kill() don't check if theVictor Stinner2015-01-301-16/+0
| | | | | | | transport was closed. The check broken a Tulip example and this limitation is arbitrary. Check if _proc is None should be enough. Enhance also close(): do nothing when called the second time.
* Fix ResourceWarning in test_subprocess.test_proc_exit()Victor Stinner2015-01-301-0/+2
|
* Python issue #23347: send_signal(), kill() and terminate() methods ofVictor Stinner2015-01-291-0/+65
| | | | | BaseSubprocessTransport now check if the transport was closed and if the process exited.
* Python issue #23347: Refactor creation of subprocess transportsVictor Stinner2015-01-291-17/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | Changes on BaseSubprocessTransport: * Add a wait() method to wait until the child process exit * The constructor now accepts an optional waiter parameter. The _post_init() coroutine must not be called explicitly anymore. It makes subprocess transports closer to other transports, and it gives more freedom if we want later to change completly how subprocess transports are created. * close() now kills the process instead of kindly terminate it: the child process may ignore SIGTERM and continue to run. Call explicitly terminate() and wait() if you want to kindly terminate the child process. * close() now logs a warning in debug mode if the process is still running and needs to be killed * _make_subprocess_transport() is now fully asynchronous again: if the creation of the transport failed, wait asynchronously for the process eixt. Before the wait was synchronous. This change requires close() to *kill*, and not terminate, the child process. * Remove the _kill_wait() method, replaced with a more agressive close() method. It fixes _make_subprocess_transport() on error. BaseSubprocessTransport.close() calls the close() method of pipe transports, whereas _kill_wait() closed directly pipes of the subprocess.Popen object without unregistering file descriptors from the selector (which caused severe bugs). These changes simplifies the code of subprocess.py.
* Python issue #23243: On Python 3.4 and newer, emit a ResourceWarning when anVictor Stinner2015-01-291-1/+5
| | | | event loop or a transport is not explicitly closed
* Python issue #23243: test_sslproto: Close explicitly transportsVictor Stinner2015-01-291-4/+3
|
* Fix BaseSelectorEventLoop._accept_connection()Victor Stinner2015-01-291-13/+24
| | | | | * Close the transport on error * In debug mode, log errors using call_exception_handler()
* Fix _UnixReadPipeTransport and _UnixWritePipeTransportVictor Stinner2015-01-291-18/+11
| | | | Only start reading when connection_made() has been called.
* Fix _SelectorSslTransport.close()Victor Stinner2015-01-291-1/+14
| | | | | | | | Don't call protocol.connection_lost() if protocol.connection_made() was not called yet: if the SSL handshake failed or is still in progress. The close() method can be called if the creation of the connection is cancelled, by a timeout for example.
* Fix _SelectorSocketTransport constructorVictor Stinner2015-01-291-5/+11
| | | | | Only start reading when connection_made() has been called: protocol.data_received() must not be called before protocol.connection_made().
* Fix SSLProtocol.eof_received()Victor Stinner2015-01-281-11/+29
| | | | Wake-up the waiter if it is not done yet.
* test_sslproto: skip test if ssl module is missingVictor Stinner2015-01-271-0/+5
|
* Python issue #23293: Rewrite IocpProactor.connect_pipe() as a coroutineVictor Stinner2015-01-261-0/+13
| | | | | | | Use a coroutine with asyncio.sleep() instead of call_later() to ensure that the schedule call is cancelled. Add also a unit test cancelling connect_pipe().
* Python issue #23208: Add BaseEventLoop._current_handleVictor Stinner2015-01-2625-0/+13464
In debug mode, BaseEventLoop._run_once() now sets the BaseEventLoop._current_handle attribute to the handle currently executed. In release mode or when no handle is executed, the attribute is None. BaseEventLoop.default_exception_handler() displays the traceback of the current handle if available.