Victor Stinner
fe5649c7b7
Python issue #21645 , Tulip issue 192: Rewrite signal handling
...
Since Python 3.3, the C signal handler writes the signal number into the wakeup
file descriptor and then schedules the Python call using Py_AddPendingCall().
asyncio uses the wakeup file descriptor to wake up the event loop, and relies
on Py_AddPendingCall() to schedule the final callback with call_soon().
If the C signal handler is called in a thread different than the thread of the
event loop, the loop is awaken but Py_AddPendingCall() was not called yet. In
this case, the event loop has nothing to do and go to sleep again.
Py_AddPendingCall() is called while the event loop is sleeping again and so the
final callback is not scheduled immediatly.
This patch changes how asyncio handles signals. Instead of relying on
Py_AddPendingCall() and the wakeup file descriptor, asyncio now only relies on
the wakeup file descriptor. asyncio reads signal numbers from the wakeup file
descriptor to call its signal handler.
2014-07-17 22:43:40 +02:00
Victor Stinner
ddc8c8db1c
asyncio: Fix test_stdin_broken_pipe(), drain() can also raise
...
ConnectionResetError
2014-07-17 14:01:14 +02:00
Victor Stinner
cc996b5789
asyncio, tulip issue 190: Process.communicate() must ignore BrokenPipeError
...
If you want to handle the BrokenPipeError, you can easily reimplement
communicate().
Add also a unit test to ensure that stdin.write() + stdin.drain() raises
BrokenPipeError.
2014-07-17 12:25:27 +02:00
Victor Stinner
accef5ce36
asyncio: test_as_completed(): disable "slow callback" warning
2014-07-16 18:54:13 +02:00
Victor Stinner
e931f7b768
Issue #21163 : Fix "destroy pending task" warning in test_wait_errors()
2014-07-16 18:50:39 +02:00
Victor Stinner
1314f06293
asyncio: test_selector_events: remove duplicate call to _on_handshake() method
...
The _SelectorSslTransport constructor already calls it.
2014-07-16 18:02:10 +02:00
Victor Stinner
1cae9ec966
asyncio tests: make quiet the logs of SSL handshake failures when running tests
...
in debug mode
2014-07-14 22:26:34 +02:00
Victor Stinner
acdb782a83
asyncio: sync with Tulip
...
* Tulip issue #184 : Log subprocess events in debug mode
- Log stdin, stdout and stderr transports and protocols
- Log process identifier (pid)
- Log connection of pipes
- Log process exit
- Log Process.communicate() tasks: feed stdin, read stdout and stderr
- Add __repr__() method to many classes related to subprocesses
* Add BaseSubprocessTransport._pid attribute. Store the pid so it is still
accessible after the process exited. It's more convinient for debug.
* create_connection(): add the socket in the "connected to" debug log
* Clean up some docstrings and comments. Remove unused unimplemented
_read_from_self().
2014-07-14 18:33:40 +02:00
Victor Stinner
e912e652f8
asyncio: sync with Tulip
...
* Tulip issue #183 : log socket events in debug mode
- Log most important socket events: socket connected, new client, connection
reset or closed by peer (EOF), etc.
- Log time elapsed in DNS resolution (getaddrinfo)
- Log pause/resume reading
- Log time of SSL handshake
- Log SSL handshake errors
- Add a __repr__() method to many classes
* Fix ProactorEventLoop() in debug mode. ProactorEventLoop._make_self_pipe()
doesn't call call_soon() directly because it checks for the current loop
which fails, because the method is called to build the event loop.
* Cleanup _ProactorReadPipeTransport constructor. Not need to set again
_read_fut attribute to None, it is already done in the base class.
2014-07-12 03:11:53 +02:00
Victor Stinner
770e48d017
asyncio: sync with Tulip
...
* Tulip issue #182 : Improve logs of BaseEventLoop._run_once()
- Don't log non-blocking poll
- Only log polling with a timeout if it gets events or if it timed out after
more than 1 second.
* Fix some pyflakes warnings: remove unused imports
2014-07-11 11:58:33 +02:00
Victor Stinner
737c34fa85
asyncio: sync with Tulip
...
- CoroWrapper.__del__() now reuses repr(CoroWrapper) to log the "... was never
yielded from" warning
- Improve CoroWrapper: copy also the qualified name on Python 3.4, not only on
Python 3.5+
2014-07-11 01:04:16 +02:00
Victor Stinner
c39ba7d611
asyncio: sync with Tulip
...
- repr(Task) and repr(CoroWrapper) now also includes where these objects were
created. If the coroutine is not a generator (don't use "yield from"), use
the location of the function, not the location of the coro() wrapper.
- Fix create_task(): truncate the traceback to hide the call to create_task().
2014-07-11 00:21:27 +02:00
Victor Stinner
f68bd88aa6
asyncio: sync with Tulip
...
- Issues #21936 , #21163 : Fix sporadic failures of
test_future_exception_never_retrieved()
- Handle.cancel() now clears references to callback and args
- In debug mode, repr(Handle) now contains the location where the Handle was
created.
2014-07-10 22:32:58 +02:00
Victor Stinner
bfff45d611
asyncion, Tulip issue 181: BaseEventLoop.create_datagram_endpoint() now waits
...
until protocol.connection_made() has been called. Document also why transport
constructors use a waiter.
2014-07-08 23:57:31 +02:00
Victor Stinner
896a25ab30
asyncio: sync with Tulip
...
- Tulip issue 185: Add a create_task() method to event loops. The create_task()
method can be overriden in custom event loop to implement their own task
class. For example, greenio and Pulsar projects use their own task class. The
create_task() method is now preferred over creating directly task using the
Task class.
- tests: fix a warning
- fix typo in the name of a test function
- Update AbstractEventLoop: add new event loop methods; update also the unit test
2014-07-08 11:29:25 +02:00
Victor Stinner
a9acbe82e7
Closes #21886 , #21447 : Fix a race condition in asyncio when setting the result
...
of a Future with call_soon(). Add an helper, a private method, to set the
result only if the future was not cancelled.
2014-07-05 15:29:41 +02:00
Victor Stinner
2dba23af71
asyncio: sync with Tulip
...
* _UnixSubprocessTransport: fix file mode of stdin. Open stdin in write mode,
not in read mode
* Examples: close the event loop at exit
* More reliable CoroWrapper.__del__. If the constructor is interrupted by
KeyboardInterrupt or the coroutine objet is destroyed lately, some the
_source_traceback attribute doesn't exist anymore.
* repr(Task): include also the future the task is waiting for
2014-07-03 00:59:00 +02:00
Victor Stinner
1690ed397a
asyncio: Fix test_sleep_cancel(): call_later() mock has no self parameter
2014-07-01 12:38:51 +02:00
Victor Stinner
b75380f333
asyncio: sync with Tulip
...
- Sort imports
- Simplify/optimize iscoroutine(). Inline inspect.isgenerator(obj): replace it
with isinstance(obj, types.GeneratorType)
- CoroWrapper: check at runtime if Python has the yield-from bug #21209 . If
Python has the bug, check if CoroWrapper.send() was called by yield-from to
decide if parameters must be unpacked or not.
- Fix "Task was destroyed but it is pending!" warning in
test_task_source_traceback()
2014-06-30 14:39:11 +02:00
Victor Stinner
f951d28ac8
asyncio: sync with Tulip, add a new asyncio.coroutines module
2014-06-29 00:46:45 +02:00
Victor Stinner
09e7590801
asyncio: Fix two "Coroutine xxx was never yielded from" messages in tests
2014-06-28 01:19:11 +02:00
Victor Stinner
b9a301a348
asyncio: Fix unit tests on Windows, escape filenames in regex
2014-06-28 00:12:02 +02:00
Victor Stinner
80f53aa9a0
asyncio, Tulip issue 137: In debug mode, save traceback where Future, Task and
...
Handle objects are created. Pass the traceback to call_exception_handler() in
the 'source_traceback' key.
The traceback is truncated to hide internal calls in asyncio, show only the
traceback from user code.
Add tests for the new source_traceback, and a test for the 'Future/Task
exception was never retrieved' log.
2014-06-27 13:52:20 +02:00
Victor Stinner
bbd96c6f47
asyncio, Tulip issue 137: In debug mode, add the traceback where the coroutine
...
object was created to the "coroutine ... was never yield from" log
2014-06-27 12:28:41 +02:00
Victor Stinner
c4cca45baf
asyncio: Oops, restore a removed test
2014-06-27 12:23:41 +02:00
Victor Stinner
72502c12a7
Issue #21163 : Fix one more "Task was destroyed but it is pending!" log in tests
2014-06-25 23:57:50 +02:00
Victor Stinner
7ba4061098
asyncio: sync with Tulip
...
- Python issue 21163: Fix more "Task was destroyed but it is pending!" logs in
tests
- Add test to check that run_until_complete() checks the loop of the future
2014-06-25 23:32:25 +02:00
Victor Stinner
87f16f892c
Issue #21163 , asyncio: Fix some "Task was destroyed but it is pending!" logs in tests
2014-06-25 23:11:21 +02:00
Victor Stinner
975735f729
asyncio, Tulip issue 177: Rewite repr() of Future, Task, Handle and TimerHandle
...
- Uniformize repr() output to format "<Class ...>"
- On Python 3.5+, repr(Task) uses the qualified name instead of the short name
of the coroutine
2014-06-25 21:41:58 +02:00
Victor Stinner
df29c4a83d
asyncio: repr(Task) now also contains the line number even if the coroutine is
...
done: use the first line number of the code object instead of the current line
number of the generator frame.
The name of the coroutine is not enough because many coroutines may have the
same name. It's a common case in asyncio tests for example.
2014-06-24 22:57:14 +02:00
Victor Stinner
a02f81ff17
asyncio: Log an error if a Task is destroyed while it is still pending
2014-06-24 22:37:53 +02:00
Victor Stinner
f328c7dc69
asyncio, Tulip issue 171: BaseEventLoop.close() now raises an exception if the
...
event loop is running. You must first stop the event loop and then wait until
it stopped, before closing it.
2014-06-23 01:02:37 +02:00
Victor Stinner
1580fe3fce
asyncio, Tulip issue 172: only log selector timing in debug mode
2014-06-23 00:31:08 +02:00
Victor Stinner
c082ee692b
asyncio: Add an unit test to check that setting the PYTHONASYNCIODEBUG env var
...
enables debug mode of the event loop.
2014-06-23 00:19:33 +02:00
Victor Stinner
7b7120e159
asyncio: Enable the debug mode of event loops when the PYTHONASYNCIODEBUG
...
environment variable is set
2014-06-23 00:12:14 +02:00
Victor Stinner
0e6f52a211
asyncio, Tulip issue 105: in debug mode, log callbacks taking more than 100 ms
...
to be executed.
2014-06-20 17:34:15 +02:00
Victor Stinner
64d750b36b
asyncio: Fix pyflakes errors
...
- Add a missing import
- Remove an unused import
- Remove unused variables
2014-06-18 03:25:23 +02:00
Victor Stinner
c73701de72
asyncio: Refactor tests: add a base TestCase class
2014-06-18 01:36:32 +02:00
Victor Stinner
d6f02fc649
asyncio: Refactor test__run_once_logging() to not rely on the exact number of
...
calls to time.monotonic(). Use a "fast select" and a "slow select" instead.
2014-06-18 01:22:15 +02:00
Victor Stinner
8d3e02ef5a
asyncio: Set __qualname__ attribute of CoroWrapper in @coroutine decorator on
...
Python 3.5
- Drop __slots__ optimization of CoroWrapper to be able to set the __qualname__
attribute.
- Add tests on __name__, __qualname__ and __module__ of a coroutine function
and coroutine object.
- Fix test_tasks when run in debug mode (PYTHONASYNCIODEBUG env var set) on
Python 3.3 or 3.4
2014-06-18 01:14:59 +02:00
Victor Stinner
66dc6b0f53
Issue #21723 : asyncio.Queue: support any type of number (ex: float) for the
...
maximum size. Patch written by Vajrasky Kok.
2014-06-17 23:36:21 +02:00
Victor Stinner
4802c6ee55
Sync asyncio with Tulip: Fix test_tasks for Python 3.5
...
On Python 3.5, generator now gets their name from the function, no more from
the code. So we get the expected "notmuch" name instead of the generic "coro"
name.
2014-06-16 17:11:05 +02:00
Victor Stinner
307bccc6ff
asyncio: Tulip issue 173: Enhance repr(Handle) and repr(Task)
...
repr(Handle) is shorter for function: "foo" instead of "<function foo at
0x...>". It now also includes the source of the callback, filename and line
number where it was defined, if available.
repr(Task) now also includes the current position in the code, filename and
line number, if available. If the coroutine (generator) is done, the line
number is omitted and "done" is added.
2014-06-12 18:39:26 +02:00
Victor Stinner
bb2fc5b2a5
Issue #21326 : Add a new is_closed() method to asyncio.BaseEventLoop
...
Add BaseEventLoop._closed attribute and use it to check if the event loop was
closed or not, instead of checking different attributes in each subclass of
BaseEventLoop.
run_forever() and run_until_complete() methods now raise a RuntimeError('Event loop is
closed') exception if the event loop was closed.
BaseProactorEventLoop.close() now also cancels "accept futures".
2014-06-10 10:23:10 +02:00
Victor Stinner
3f9535b7f8
Fix asyncio tests on Windows: wait for the subprocess exit
...
Before, regrtest failed to remove the temporary test directory because the
process was still running in this directory.
2014-06-04 00:42:04 +02:00
Victor Stinner
27d411255a
Issue #21651 : Fix ResourceWarning when running asyncio tests on Windows.
...
Patch written by Claudiu Popa.
2014-06-04 00:23:26 +02:00
Victor Stinner
8551e0f3e0
cleanup test_asyncio/test_base_events.py: cm variable was unused
2014-06-04 00:18:41 +02:00
Victor Stinner
a9fa2664ab
Issue #21119 : asyncio: Make sure that socketpair() close sockets on error
...
Close the listening socket if sock.bind() raises an exception.
2014-06-04 00:12:28 +02:00
Victor Stinner
223a624158
Issue #21119 : asyncio now closes sockets on errors
...
Fix ResourceWarning: create_connection(), create_datagram_endpoint() and
create_unix_server() methods of event loop now close the newly created socket
on error.
2014-06-04 00:11:52 +02:00
Andrew Svetlov
3207a03035
Fix for raising exception not derived from BaseException in _SelectorSslTransport.resume_reading
2014-05-27 21:24:43 +03:00
Victor Stinner
93668f4459
asyncio: test_base_events: use mock.Mock instead of unittest.mock.Mock to
...
simplify the synchronization with Trollius
2014-05-20 15:57:08 +02:00
Guido van Rossum
7664eb0297
Fix test-order-dependend asyncio test failure caused by rev 909ea8cc86bbab92dbb6231668f403b7360f30fa.
2014-05-13 09:19:39 -07:00
Guido van Rossum
bf88ffba5e
asyncio: Fix upstream issue 168: StreamReader.read(-1) from pipe may hang if data exceeds buffer limit.
2014-05-12 10:04:37 -07:00
Guido van Rossum
3d139d8ed6
asyncio: Fix the second half of issue #21447 : race in _write_to_self().
2014-05-06 14:42:40 -07:00
Guido van Rossum
94ba146d11
asyncio: Add __weakref__ slots to Handle and CoroWrapper. Upstream issue #166 .
2014-04-27 10:44:22 -07:00
Guido van Rossum
0cbc76880f
asyncio: Add gi_{frame,running,code} properties to CoroWrapper (upstream #163 ).
2014-04-15 12:06:34 -07:00
Benjamin Peterson
fa873f66c6
remove superfluous and useless line
2014-04-16 16:16:37 -04:00
Yury Selivanov
09cc169a03
asyncio.tasks: Make sure CoroWrapper.send proxies one argument correctly
...
Issue #21209 .
2014-04-15 12:01:16 -04:00
Yury Selivanov
f15f7484bb
asyncio.tasks: Fix CoroWrapper to workaround yield-from bug in CPython < 3.4.1
...
Closes issue #21209 .
2014-04-14 22:21:52 -04:00
Victor Stinner
1fd03a4a22
Issue #21155 : asyncio.EventLoop.create_unix_server() now raises a ValueError if
...
path and sock are specified at the same time.
2014-04-07 11:18:54 +02:00
Victor Stinner
d2403a21e4
Issue #20668 : Remove tests.txt of test_asyncio
...
It's useless, tests are now discovered automatically.
2014-03-31 17:40:06 +02:00
Yury Selivanov
00abf385ac
asyncio.tests: Autodiscover asyncio tests. Patch by Vajrasky Kok. Closes #20668
2014-03-27 12:21:20 -04:00
Victor Stinner
93569c2b3d
asyncio: Ensure call_soon(), call_later() and call_at() are invoked on current
...
loop in debug mode. Raise a RuntimeError if the event loop of the current
thread is different. The check should help to debug thread-safetly issue.
Patch written by David Foster.
2014-03-21 10:00:52 +01:00
Victor Stinner
e6a537976e
asyncio, Tulip issue 157: Improve test_events.py, avoid run_briefly() which is
...
not reliable
2014-03-06 01:00:36 +01:00
Victor Stinner
eeeebcd816
asyncio: Synchronize with Tulip
...
* Issue #159 : Fix windows_utils.socketpair()
- Use "127.0.0.1" (IPv4) or "::1" (IPv6) host instead of "localhost", because
"localhost" may be a different IP address
- Reject also invalid arguments: only AF_INET/AF_INET6 with SOCK_STREAM (and
proto=0) are supported
* Reject add/remove reader/writer when event loop is closed.
* Fix ResourceWarning warnings
2014-03-06 00:52:53 +01:00
Victor Stinner
658103f84e
asyncio: simplify test_events.py, don't use non local variables and don't call
...
assert methods in coroutines.
It also simplify merges from Tulip to Trollius (Python 2 does not support non
local variables).
2014-02-26 11:31:55 +01:00
Victor Stinner
f5e37037cc
asyncio: Fix pyflakes warnings: remove unused variables and imports
2014-02-26 11:07:42 +01:00
Victor Stinner
24ba203504
asyncio: Replace "unittest.mock" with "mock" in unit tests
...
Use "from unittest import mock". It should simplify my work to merge new tests
in Trollius, because Trollius uses "mock" backport for Python 2.
2014-02-26 10:25:02 +01:00
Victor Stinner
a90e8edaea
asyncio: _check_resolved_address() must also accept IPv6 without flow_info and
...
scope_id: (host, port).
2014-02-20 21:59:38 +01:00
Victor Stinner
0211ed3e89
asyncio: ops, and now fix also the unit test for IPv6 address:
...
test_sock_connect_address()
2014-02-20 17:01:11 +01:00
Victor Stinner
7ef60cd8c2
asyncio, Tulip issue #136 : Add get/set_debug() methods to BaseEventLoopTests.
...
Add also a PYTHONASYNCIODEBUG environment variable to debug coroutines since
Python startup, to be able to debug coroutines defined directly in the asyncio
module.
2014-02-19 23:15:02 +01:00
Victor Stinner
4ac30f1792
Issue #20682 : Oops, fix test_create_connection() of test_asyncio (fix my previous commit)
2014-02-19 18:32:03 +01:00
Victor Stinner
8c33ffd9b6
Close #20682 : Fix UNIX sockets tests of test_asyncio on Mac OS X Tiger
...
On Mac OS X Tiger (and older), getsockname() returns a zero-length address for
UNIX socket, and so 'sockname' extra info is None.
2014-02-19 18:10:32 +01:00
Yury Selivanov
2d01c0a080
asyncio: WriteTransport.set_write_buffer_size to call _maybe_pause_protocol
2014-02-19 11:10:52 -05:00
Yury Selivanov
b41a42e316
asyncio: pep8-ify the code.
2014-02-18 22:56:15 -05:00
Yury Selivanov
b0b0e628ee
asyncio: Fix spelling and typos.
...
Thanks to Vajrasky Kok for discovering some of them.
2014-02-18 22:27:48 -05:00
Victor Stinner
8abac348a9
Issue #20682 : test_asyncio, _basetest_create_connection() checks also the
...
sockname, as _basetest_create_ssl_connection().
2014-02-19 02:21:08 +01:00
Victor Stinner
884e40b982
asyncio, Tulip issue 143: UNIX domain methods, fix ResourceWarning and
...
DeprecationWarning warnings. create_unix_server() closes the socket on any
error, not only on OSError.
2014-02-19 01:45:59 +01:00
Victor Stinner
065ca25aae
asyncio, Tulip issue 139: Improve error messages on "fatal errors"
...
Mention if the error was caused by a read or a write, and be more specific on
the object (ex: "pipe transport" instead of "transport").
2014-02-19 01:40:41 +01:00
Yury Selivanov
ff827f08ac
asyncio: New error handling API. Issue #20681 .
2014-02-18 18:02:19 -05:00
Yury Selivanov
88a5bf0b2e
asyncio: Add support for UNIX Domain Sockets.
2014-02-18 12:15:06 -05:00
Victor Stinner
9141bff144
Issue #20667 : KqueueEventLoopTests.test_read_pty_output() hangs also on OpenBSD 5.5.
2014-02-18 09:13:47 +01:00
Victor Stinner
5afffeab73
Issue #20667 : test_asyncio: Skip KqueueEventLoopTests.test_read_pty_output() on
...
OpenBSD older than 5.5
2014-02-18 01:30:03 +01:00
Victor Stinner
740eedb826
Issue #20655 : Fix test_asyncio, run also subprocess tests. Patch written by
...
Vajrasky Kok.
2014-02-18 00:11:21 +01:00
Victor Stinner
1ff0ee0be2
Fix test_asyncio/test_events.py: skip IPv6 if IPv6 is disabled on the host
2014-02-13 10:46:05 +01:00
Victor Stinner
28773465e6
ayncio, Tulip issue 129: BaseEventLoop.sock_connect() now raises an error if
...
the address is not resolved (hostname instead of an IP address) for AF_INET and
AF_INET6 address families.
2014-02-13 09:24:37 +01:00
Guido van Rossum
b58f053e48
asyncio: Change as_completed() to use a Queue, to avoid O(N**2) behavior. Fixes issue #20566 .
2014-02-12 17:58:19 -08:00
Victor Stinner
13b493e8a7
Issue #20495 : Skip test_read_pty_output() of test_asyncio on FreeBSD older than
...
FreeBSD 8
2014-02-11 18:40:56 +01:00
Victor Stinner
eb74876e99
asyncio, Tulip issue 131: as_completed() and wait() now raises a TypeError if
...
the list of futures is not a list but a Future, Task or coroutine object
2014-02-11 11:54:08 +01:00
Victor Stinner
4e8d2f25e2
asyncio, Tulip issue 130: Add more checks on subprocess_exec/subprocess_shell
...
parameters
2014-02-11 11:44:56 +01:00
Victor Stinner
a125497ea3
asyncio, Tulip issue 126: call_soon(), call_soon_threadsafe(), call_later(),
...
call_at() and run_in_executor() now raise a TypeError if the callback is a
coroutine function.
2014-02-11 11:34:30 +01:00
Victor Stinner
6cf5c96630
Issue #20505 : BaseEventLoop uses again the resolution of the clock to decide if
...
scheduled tasks should be executed or not.
2014-02-10 23:42:32 +01:00
Victor Stinner
cf736f4e98
Issue #20505 : Use even shorter sleep in test_timeout_rounding() to make the
...
test more reliable (= fail more often on Windows with HPET enabled).
2014-02-10 19:17:46 +01:00
Victor Stinner
1c143b19c8
Issue #20505 : Add debug info to analyze sporaric failures of
...
test_timeout_rounding() on Windows XP buildbots.
2014-02-10 11:47:50 +01:00
Victor Stinner
dc62b7e261
asyncio: Tulip issue 112: Inline make_handle() into Handle constructor
2014-02-10 00:45:44 +01:00
Victor Stinner
0c3949c963
asyncio: Remove Process.subprocess attribute; it's too easy to get inconsistent
...
Process and Popen objects
2014-02-09 02:51:40 +01:00
Guido van Rossum
313f829ce8
asyncio: Test fix.
2014-02-08 17:35:09 -08:00
Victor Stinner
87bf2772be
asyncio tests: Remove scories of resolution/granularity
2014-02-09 01:25:52 +01:00
Victor Stinner
85310a50a9
Issue #20505 : Remove resolution and _granularity from selectors and asyncio
...
* Remove selectors.BaseSelector.resolution attribute
* Remove asyncio.BaseEventLoop._granularity attribute
2014-02-07 23:34:58 +01:00
Yury Selivanov
622be340fd
asyncio.tasks: Fix as_completed, gather & wait to work with duplicate coroutines
2014-02-06 22:06:16 -05:00
Yury Selivanov
f0020f5d77
asyncio.streams.StreamReader: Add 'at_eof()' method
2014-02-06 00:14:30 -05:00
Yury Selivanov
e694c9745f
asyncio.streams: Use bytebuffer in StreamReader; Add assertion in feed_data
2014-02-05 18:11:13 -05:00
Guido van Rossum
3b55f0c622
asyncio: Cosmetic improvement to test__run_once_logging() mock argument.
2014-02-04 14:27:14 -08:00
Victor Stinner
1703bbbf89
Oops, undo unwanted changes in test_asyncio: mistakes of my the last sync with
...
Tulip (changeset d7ac90c0463a)
2014-02-03 23:59:52 +01:00
Victor Stinner
b79eb0502c
asyncio.subprocess: Replace Process.get_subprocess() method with a
...
Process.subprocess read-only property
2014-02-03 23:08:14 +01:00
Victor Stinner
9dd39f524d
Issue #20472 : test_asyncio: skip PTY tests on Mac OS X older than 10.6
2014-02-03 00:32:13 +01:00
Victor Stinner
915bcb0111
Issue #20400 : Merge Tulip into Python: add the new asyncio.subprocess module
...
* Add a new asyncio.subprocess module
* Add new create_subprocess_exec() and create_subprocess_shell() functions
* The new asyncio.subprocess.SubprocessStreamProtocol creates stream readers
for stdout and stderr and a stream writer for stdin.
* The new asyncio.subprocess.Process class offers an API close to the
subprocess.Popen class:
- pid, returncode, stdin, stdout and stderr attributes
- communicate(), wait(), send_signal(), terminate() and kill() methods
* Remove STDIN (0), STDOUT (1) and STDERR (2) constants from base_subprocess
and unix_events, to not be confused with the symbols with the same name of
subprocess and asyncio.subprocess modules
* _ProactorBasePipeTransport.get_write_buffer_size() now counts also the size
of the pending write
* _ProactorBaseWritePipeTransport._loop_writing() may now pause the protocol if
the write buffer size is greater than the high water mark (64 KB by default)
2014-02-01 22:49:59 +01:00
Victor Stinner
a0aa88ce89
test_asyncio: relax timing, the "AMD64 Windows Server 2008 [SB] 3.x" buildbot
...
looks to be slow
2014-02-01 04:11:16 +01:00
Victor Stinner
55effc6dd0
Issue #20452 : Fix test_time_and_call_at() of test_asyncio on Windows
...
Use the granularity to check the minimum time delta, instead of arbitrary
value.
2014-02-01 02:18:52 +01:00
Victor Stinner
1144214639
Issue #20452 : test_asyncio checks also the granularity
2014-02-01 02:17:54 +01:00
Victor Stinner
62510dced9
Issue #20452 : test_asyncio: Add more info if the test fails
2014-01-31 16:39:10 +01:00
Victor Stinner
1506df2655
Issue #20455 : Add a resolution attribute to IocpProactor (1 ms)
2014-01-31 16:26:38 +01:00
Victor Stinner
49d0f4e428
Issue #20452 : Remove debug code, no more needed
2014-01-31 12:59:43 +01:00
Victor Stinner
dcd9740ad2
Issue #20452 : select and selectors round (again) timeout away from zero for
...
poll and epoll
Improve also debug info to analyze the issue
2014-01-31 12:12:53 +01:00
Victor Stinner
31f65044a9
Issue #20452 : Oops, fix debug code :-/
...
Add also event more debug info
2014-01-31 10:55:55 +01:00
Victor Stinner
0278032110
Issue #20452 : add more info in case of test_asyncio failure to try to debug the
...
failure on buildbot "x86 Ubuntu Shared 3.x"
2014-01-31 09:29:35 +01:00
Guido van Rossum
a849be9c64
asyncio: Fix misc whitespace issues.
2014-01-30 16:05:28 -08:00
Victor Stinner
9572898282
asyncio: Future.set_exception(exc) should instantiate exc if it is a class.
2014-01-30 16:01:54 -08:00
Victor Stinner
e623a12297
asyncio: subprocess_shell() and subprocess_exec() now raise ValueError instead of assert.
...
Moreover, bufsize different than 0 is now considered as an error.
2014-01-29 14:35:15 -08:00
Guido van Rossum
48c66c3dd8
asyncio: wait_for() now accepts None as timeout (Victor Stinner).
2014-01-29 14:30:38 -08:00
Guido van Rossum
fef7098ef9
asyncio: Rename {Empty,Full} to {QueueEmpty,QueueFull} and no longer get them from queue.py.
2014-01-25 17:24:51 -08:00
Guido van Rossum
ab3c88983b
asyncio: Locks refactor: use a separate context manager; remove Semaphore._locked.
2014-01-25 16:51:57 -08:00
Victor Stinner
669eeaf933
Merge latest Tulip into asyncio
...
- Make the new granularity attribute private
- Simplify BaseEventLoop._run_once(): avoid math.ceil(), use simple arithmetic
instead
2014-01-26 00:02:31 +01:00
Victor Stinner
128ee220e2
asyncio: Don't export BaseEventLoop, BaseSelectorEventLoop nor
...
BaseProactorEventLoop
Import them from submodules if you really need them.
2014-01-25 22:22:18 +01:00
Victor Stinner
8dffc456d7
Update asyncio from the Tulip project
...
Major changes:
- StreamReader.readexactly() now raises an IncompleteReadError if the
end of stream is reached before we received enough bytes, instead of
returning less bytes than requested.
- Unit tests use the main asyncio module instead of submodules like events
- _UnixWritePipeTransport now also supports character devices, as
_UnixReadPipeTransport. Patch written by Jonathan Slenders.
- Export more symbols: BaseEventLoop, BaseProactorEventLoop,
BaseSelectorEventLoop, Queue and Queue sublasses, Empty, Full
2014-01-25 15:32:06 +01:00
Victor Stinner
f67255ab94
Issue #20311 : asyncio: Add a granularity attribute to BaseEventLoop: maximum
...
between the resolution of the BaseEventLoop.time() method and the resolution of
the selector. The granuarility is used in the scheduler to round time and
deadline.
2014-01-25 15:01:33 +01:00
Victor Stinner
421e49b5c1
asyncio: wait_for() now cancels the future on timeout. Patch written by Gustavo
...
Carneiro.
2014-01-23 17:40:59 +01:00
Victor Stinner
8ce6e1100e
Close #20365 : Skip test_asyncio.test_events.test_read_pty_output() on Mac OS X
...
older than 10.9 (Maverick). kqueue doesn't support character devices (PTY) on
Mac OS X older than 10.9.
2014-01-23 17:26:06 +01:00
Victor Stinner
5e42354263
Fix ResourceWarning in test_asyncio.test_windows_events:
...
close the write end of the socket pair
2014-01-11 00:16:50 +01:00
Guido van Rossum
02757ea7e9
asyncio: Minimal pty support in UNIX read pipe, by Jonathan Slenders.
2014-01-10 13:30:04 -08:00
Guido van Rossum
9ba75db3c5
asyncio: Clean up formatting.
2013-12-19 13:49:32 -08:00
Victor Stinner
4c3c699e62
Close #19967 : Thanks to the PEP 442, asyncio.Future can use a destructor in
...
Python 3.4 to log "uncatched" exceptions, instead of the dedicated
_TracebackLogger class.
2013-12-19 22:42:40 +01:00
Guido van Rossum
994bf4332f
Shorten lines.
2013-12-19 12:47:38 -08:00
Christian Heimes
a5f0eda91a
Skip some tests that require server name indication (SNI)
2013-12-15 17:02:36 +01:00
Victor Stinner
24bd028092
Issue #19952 : test_asyncio: relax timings of Windows events, buildbots are
...
sometimes busy
2013-12-13 02:45:18 +01:00
Zachary Ware
101d9e7250
Issue 19572: More silently skipped tests explicitly skipped.
2013-12-08 00:44:27 -06:00
Christian Heimes
cd6f61137a
copy 'n paste typo (thx Antoine)
2013-12-07 00:14:55 +01:00
Christian Heimes
b82c915fa2
Skip new SSL tests with IocpEventLoop
2013-12-07 00:09:45 +01:00
Guido van Rossum
1a605ed5a3
asyncio: Add Task.current_task() class method.
2013-12-06 12:57:40 -08:00
Christian Heimes
6d8c1abb00
Issue #19509 : Finish implementation of check_hostname
...
The new asyncio package now supports the new feature and comes with additional tests for SSL.
2013-12-06 00:23:13 +01:00
Guido van Rossum
ebb8e58f0a
asyncio: Write flow control for proactor event loop.
2013-12-04 12:12:07 -08:00
Guido van Rossum
f10345e102
asyncio: Improve default writelines().
2013-12-02 18:36:30 -08:00
Guido van Rossum
a5062c5d81
asyncio: Change write buffer use to avoid O(N**2). Make write()/sendto() accept bytearray/memoryview too. Change some asserts with proper exceptions.
2013-11-27 14:12:48 -08:00
Guido van Rossum
cced076218
asyncio: Fix get_event_loop() to call set_event_loop() when setting the loop. By Anthony Baire.
2013-11-27 10:37:13 -08:00
Guido van Rossum
27bfe468cc
asyncio: Hopeful fix for issue 19765.
2013-11-25 10:06:34 -08:00
Guido van Rossum
14c3e14053
asyncio: Change mock pipe to mock socket. Hope to fix issue 19750.
2013-11-25 09:43:52 -08:00
Guido van Rossum
085869bfee
asyncio: Change bounded semaphore into a subclass, like threading.[Bounded]Semaphore.
2013-11-23 15:09:16 -08:00
Guido van Rossum
d41c343f28
asyncio: Use socketpair() from test_utils in tests (Saúl Ibarra Corretgé).
2013-11-23 11:51:53 -08:00
Guido van Rossum
94097b02c2
Relax timing even more, hopefully again fixes issue 19579.
2013-11-23 09:20:12 -08:00
Guido van Rossum
7a465647e4
asyncio: Pass cancellation from wrapping Future to wrapped Future. By Saúl Ibarra Corretgé (mostly).
2013-11-22 11:47:22 -08:00
Guido van Rossum
9c55a58a1d
asyncio: Make Semaphore(0) work properly.
2013-11-21 11:07:45 -08:00
Guido van Rossum
1540b16ff4
asyncio: Add streams.start_server(), by Gustavo Carneiro.
2013-11-19 11:43:38 -08:00
Victor Stinner
e3010fd740
Relax timing on test_asyncio for busy (slow) Windows buildbots
...
http://buildbot.python.org/all/builders/AMD64%20Windows%20Server%202008%20%5BSB%5D%203.x/builds/1649/steps/test/logs/stdio
======================================================================
FAIL: test_wait_for_handle (test.test_asyncio.test_windows_events.ProactorTests)
----------------------------------------------------------------------
Traceback (most recent call last):
File "E:\home\cpython\buildslave\x64\3.x.snakebite-win2k8r2sp1-amd64\build\lib\test\test_asyncio\test_windows_events.py", line 112, in test_wait_for_handle
self.assertTrue(0.18 < elapsed < 0.22, elapsed)
AssertionError: False is not true : 0.25
2013-11-18 11:05:22 +01:00
Guido van Rossum
3287905335
Skip test_asyncio if concurrent.futures can't be imported. Hopeful fix for issue 19645.
2013-11-17 17:00:21 -08:00
Guido van Rossum
2335de7a20
asyncio: Replace connection_refused() with error_received().
2013-11-15 16:51:48 -08:00
Guido van Rossum
39ecf2ed13
asyncio: Longer timeout in Windows test_popen. Fixes issue 19598.
2013-11-15 07:41:10 -08:00
Guido van Rossum
91d2c5674a
asyncio: Refactor waitpid mocks. Patch by Anthony Baire.
2013-11-14 16:16:29 -08:00
Serhiy Storchaka
e048addedc
Issue #19589 : Use specific asserts in asyncio tests.
2013-11-14 23:10:51 +02:00
Guido van Rossum
f38f7f3c7b
asyncio: Avoid ResourceWarning. Fix issue 19580 by Vajrasky Kok.
2013-11-14 10:06:18 -08:00
Guido van Rossum
8ff3e8af72
asyncio: Relax timing requirement. Fixes issue 19579.
2013-11-13 20:17:52 -08:00
Guido van Rossum
2bcae708d8
asyncio: Fix from Anthony Baire for CPython issue 19566 (replaces earlier fix).
2013-11-13 15:50:08 -08:00
Guido van Rossum
d0293596b8
Remove redundant test_selectors.py from test_asyncio.
2013-11-07 09:25:36 -08:00
Guido van Rossum
0b69fbc642
asyncio: Add close() back to Unix selector event loop, to remove all signal handlers. Should fix buildbot issues.
2013-11-06 20:25:50 -08:00
Guido van Rossum
0eaa5ac9b5
asyncio: Refactor SIGCHLD handling. By Anthony Baire.
2013-11-04 15:50:46 -08:00
Guido van Rossum
ccea08462b
asyncio: Locks improvements by Arnaud Faure: better repr(), change Conditio\
...
n structure.
2013-11-04 13:18:19 -08:00
Richard Oudkerk
2902b6d17a
Relax test for process return code on Windows.
2013-11-02 16:38:58 +00:00
Guido van Rossum
05c511f1ca
asyncio: Slight rearrangement of tests for server_hostname=...
2013-11-01 14:24:28 -07:00
Guido van Rossum
28dff0d823
asyncio: Better-looking errors when ssl module cannot be imported. In part by Arnaud Faure.
2013-11-01 14:22:30 -07:00
Guido van Rossum
a8d630a6e6
asyncio: Various style nits.
2013-11-01 14:20:55 -07:00
Guido van Rossum
e3f52ef067
asyncio: Document EventLoop.close().
2013-11-01 14:19:04 -07:00
Guido van Rossum
2b57016458
asyncio: Refactor ssl transport ready loop (Nikolay Kim).
2013-11-01 14:18:02 -07:00
Guido van Rossum
21c85a7124
asyncio: Add server_hostname as create_connection() argument, with secure default.
2013-11-01 14:16:54 -07:00
Guido van Rossum
3317a13253
asyncio: Pause accepting whenever accept() returns certain errors. Fixes asyncio issue #78 .
2013-11-01 14:12:50 -07:00
Guido van Rossum
5969128a86
asyncio: Add support for running subprocesses on Windows with the IOCP event loop (Richard Oudkerk).
2013-10-30 14:52:03 -07:00
Guido van Rossum
90fb914b4b
asyncio: Make the IOCP proactor support "waitable" handles (Richard Oudkerk).
2013-10-30 14:44:05 -07:00
Guido van Rossum
b0fb94dda8
Fix asyncio issue #19293 (hangs on AIX).
2013-10-21 21:28:45 -07:00
Guido van Rossum
f75debda94
Unsilence several asyncio AIX tests that no longer hang, and silence a new hang.
2013-10-21 20:57:25 -07:00
Guido van Rossum
934f6ea7fb
Switch subprocess stdin to a socketpair, attempting to fix issue #19293 (AIX hang).
2013-10-21 20:37:14 -07:00
Guido van Rossum
8a0fe85fbe
Avoid test_asyncio hang on AIX.
2013-10-21 20:26:12 -07:00
Guido van Rossum
8da15cc218
asyncio: be more lenient if we don't understand status returned by waitpid().
...
This should have no effect, it's a "shouldn't happe" case.
Also tidied up some comments.
2013-10-21 15:00:44 -07:00
Antoine Pitrou
7d61800489
Skip one asyncio test when IPv6 isn't supported (Windows buildbots)
2013-10-20 21:45:29 +02:00
Antoine Pitrou
cb1fe98f76
Make various asyncio test files individually runnable
2013-10-20 21:02:53 +02:00
Charles-François Natali
bcd76827f4
Issue #19309 : asyncio: make waitpid() wait for all child processes, not only
...
those in the same process group.
2013-10-20 20:31:43 +02:00
Guido van Rossum
d49c47bfb0
Break out of loop on EOF in asyncio echo test programs.
2013-10-19 21:26:34 -07:00
Antoine Pitrou
92945c574b
Un-backout e3ec6b17260c - the test fix was actually also necessary
2013-10-20 02:16:40 +02:00
Antoine Pitrou
c1b78419e6
Backout e3ec6b17260c after Guido's fix
2013-10-20 02:09:08 +02:00
Antoine Pitrou
d20afad7d4
Issue #19305 : try to fix sporadic test_asyncio failure on FreeBSD 10.0
2013-10-20 01:51:25 +02:00
Antoine Pitrou
0d9eefda34
Try to fix test_asyncio dual stack test when creating an IPv6 socket fails
2013-10-20 01:10:52 +02:00
Guido van Rossum
3743711a96
Disable some subprocess tests that hang on AIX.
...
See http://bugs.python.org/issue19293
2013-10-19 09:10:13 -07:00
Guido van Rossum
7058dad0bd
Skip the asyncio tests when threads are not available.
...
See http://bugs.python.org/issue19295
2013-10-19 08:47:26 -07:00
Guido van Rossum
355491dc47
Write flow control for asyncio (includes asyncio.streams overhaul).
2013-10-18 15:17:11 -07:00
Guido van Rossum
051a331488
Relax some asyncio test timeouts ( http://bugs.python.org/issue19285 ).
2013-10-18 15:15:56 -07:00
Guido van Rossum
57497ad181
Rename Transport.pause/resume to pause_reading/pause_writing. Also relax timeout in test_call_later().
2013-10-18 07:58:20 -07:00
Guido van Rossum
fc29e0f37e
Rename the logger to plain "logger".
2013-10-17 15:39:45 -07:00
Guido van Rossum
5ea7f93dcd
Make asyncio tests run on Windows.
2013-10-17 14:23:17 -07:00
Guido van Rossum
27b7c7ebf1
Initial checkin of asyncio package (== Tulip, == PEP 3156).
2013-10-17 13:40:50 -07:00