Victor Stinner [Fri, 27 Jun 2014 21:57:19 +0000 (23:57 +0200)]
(Merge 3.4) Issue #11453: asyncore: emit a ResourceWarning when an unclosed
file_wrapper object is destroyed. The destructor now closes the file if needed.
The close() method can now be called twice: the second call does nothing.
Victor Stinner [Fri, 27 Jun 2014 21:52:03 +0000 (23:52 +0200)]
Issue #11453: asyncore: emit a ResourceWarning when an unclosed file_wrapper
object is destroyed. The destructor now closes the file if needed. The close()
method can now be called twice: the second call does nothing.
Victor Stinner [Fri, 27 Jun 2014 11:55:28 +0000 (13:55 +0200)]
(Merge 3.4) 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.
Victor Stinner [Fri, 27 Jun 2014 11:52:20 +0000 (13:52 +0200)]
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.
Victor Stinner [Fri, 27 Jun 2014 10:29:30 +0000 (12:29 +0200)]
(Merge 3.4) asyncio, Tulip issue 137: In debug mode, add the traceback where
the coroutine object was created to the "coroutine ... was never yield from"
log
Victor Stinner [Wed, 25 Jun 2014 21:33:02 +0000 (23:33 +0200)]
(Merge 3.4) 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
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:53 +0000 (02:58 -0700)]
merge from 3.4
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.
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:58:23 +0000 (22:58 +0200)]
(Merge 3.4) 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 [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:03:13 +0000 (01:03 +0200)]
(Merge 3.4) 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 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.