Victor Stinner [Wed, 25 Jun 2014 21:32:25 +0000 (23:32 +0200)]
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
Senthil Kumaran [Wed, 25 Jun 2014 09:58:15 +0000 (02:58 -0700)]
issue20753 - robotparser tests should not rely upon external resource when not required.
Specifically, it was relying a URL which gave HTTP 403 and used it to assert
it's methods, this changes undoes that and provides a local http server with
similar properties.
Victor Stinner [Tue, 24 Jun 2014 20:57:14 +0000 (22:57 +0200)]
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.
Victor Stinner [Sun, 22 Jun 2014 23:02:37 +0000 (01:02 +0200)]
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.
Victor Stinner [Sun, 22 Jun 2014 22:03:43 +0000 (00:03 +0200)]
asyncio: BaseEventLoop._assert_is_current_event_loop() now only raises an
exception if the current loop is not None.
Guido van Rossum wrote:
"The behavior that you can set the loop to None (and keep track of it
explicitly) is part of the spec, and this should still be supported even in
debug mode. The behavior that we raise an error if you are caught having
multiple active loops per thread is just a debugging heuristic, and it
shouldn't break code that follows the spec."
Victor Stinner [Thu, 19 Jun 2014 10:59:15 +0000 (12:59 +0200)]
Closes #21595: asyncio.BaseSelectorEventLoop._read_from_self() now reads all
available bytes from the "self pipe", not only a single byte. This change
reduces the risk of having the pipe full and so getting the innocuous
"BlockingIOError: [Errno 11] Resource temporarily unavailable" message.
Victor Stinner [Tue, 17 Jun 2014 23:22:15 +0000 (01:22 +0200)]
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.
Victor Stinner [Tue, 17 Jun 2014 23:14:59 +0000 (01:14 +0200)]
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
Terry Jan Reedy [Mon, 16 Jun 2014 23:01:01 +0000 (19:01 -0400)]
Issue #21686: add unittest for idlelib.HyperParser. Original patch by Saimadhav
Heblikar. Correct a minor 3.x bug in HyperParser discovered by testing.
Victor Stinner [Mon, 16 Jun 2014 15:11:05 +0000 (17:11 +0200)]
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.
Gregory P. Smith [Mon, 16 Jun 2014 00:51:04 +0000 (17:51 -0700)]
Isolate the subprocess test_close_fds_when_max_fd_is_lowered test so
that the rlimit calls happens in a child process rather than the
TestCase process to attempt to fix the gentoo buildbot's "Too many
open files" error.
Zachary Ware [Fri, 13 Jun 2014 18:44:39 +0000 (13:44 -0500)]
Issue #19493: Refactor ctypes test package.
Skipped tests are now marked as skipped, formerly commented-out or
renamed-so-it-doesn't-look-like-a-test tests are uncommented, properly named,
and unconditionally skipped, some tests that simply didn't run before
are now able to run, and a few are split into multiple methods instead of
skipping via 'return' in the middle of a method. Also, a couple of unused
files are removed completely.
Victor Stinner [Thu, 12 Jun 2014 16:39:26 +0000 (18:39 +0200)]
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.