8000 Python by itsmekarthikreddy · Pull Request #500 · python/asyncio · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Nov 23, 2017. It is now read-only.

Python #500

Open
wants to merge 1,537 commits into
base: redirect
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
1537 commits
Select commit Hold shift + click to select a range
de9990e
Fix BaseSubprocessTransport._kill_wait()
vstinner Jan 14, 2015
233af8c
cleanup BaseSelectorEventLoop
vstinner Jan 14, 2015
ed21baf
TestLoop.close() now calls the close() method of the parent class (Ba…
vstinner Jan 14, 2015
158f621
Fix BaseSubprocessTransport.close()
vstinner Jan 14, 2015
8000
d5cc030
_ProactorBasePipeTransport now sets _sock to None when the transport …
vstinner Jan 14, 2015
f2e08a0
Fix BaseEventLoop._create_connection_transport()
vstinner Jan 14, 2015
58d27b7
Fix test_events on Python older than 3.5
vstinner Jan 14, 2015
20a103c
PipeHandle now uses None instead of -1 for a closed handle
vstinner Jan 14, 2015
47152d6
StreamWriter: close() now clears the reference to the transport
vstinner Jan 15, 2015
1da6e1d
Python issue #22560: Fix SSLProtocol._on_handshake_complete()
vstinner Jan 15, 2015
3ce21be
Python issue #23242: SubprocessStreamProtocol now closes the subprocess
vstinner Jan 15, 2015
8addd76
SSLProtocol: set the _transport attribute in the constructor
vstinner Jan 15, 2015
693fa4b
Python issue #23243: Fix _UnixWritePipeTransport.close()
vstinner Jan 15, 2015
ae6f24c
Python issue #23243: Close explicitly event loops in tests
vstinner Jan 15, 2015
eba6a46
Python issue #23243: Close explicitly transports in tests
vstinner Jan 15, 2015
d9de03a
Fix _ProactorBasePipeTransport.__repr__()
vstinner Jan 15, 2015
873bc97
Fix _ProactorBasePipeTransport.close()
vstinner Jan 15, 2015
f9c91e5
Close the transport on subprocess creation failure
vstinner Jan 15, 2015
cf01d42
Close transports in tests
vstinner Jan 15, 2015
408fbab
Python issue #23219: cancelling wait_for() now cancels the task
vstinner Jan 15, 2015
416f59d
Backout changeset 3a06020af8cf
vstinner Jan 15, 2015
e87e26f
Issue #22685: Fix test_pause_reading() of test_subprocess
vstinner Jan 15, 2015
21192c4
Cleanup BaseEventLoop._create_connection_transport()
vstinner Jan 16, 2015
777da23
tox.ini: fix comment
vstinner Jan 16, 2015
346737d
runtests.py: rephrase the message mentionning randomization of tests
vstinner Jan 16, 2015
ad1724a
release.py: fix typo
vstinner Jan 16, 2015
2b5becd
tests: Remove unused function; inline another function
vstinner Jan 16, 2015
3c0eabf
Enhance BaseProactorEventLoop._loop_self_reading()
vstinner Jan 16, 2015
c3a18fd
pyflakes: remove unused import
vstinner Jan 16, 2015
f1fbd1e
test_selectors: use asyncio.test_support if test.support is missing
vstinner Jan 20, 2015
5500000
Python issue #23095: Rewrite _WaitHandleFuture.cancel()
vstinner Jan 21, 2015
0bb6858
BaseEventLoop._create_connection_transport() catchs any exception, no…
vstinner Jan 21, 2015
ae97759
Python issue #23095: IocpProactor.close() must not cancel pending
vstinner Jan 21, 2015
2fe68a3
IocpProactor.close(): don't cancel futures which are already cancelled
vstinner Jan 22, 2015
bb31eae
release.py: Fix help
vstinner Jan 22, 2015
8f386cd
Python issue #23293: Rewrite IocpProactor.connect_pipe()
vstinner Jan 22, 2015
8b4b4f1
Tulip issue #204: Fix IocpProactor.accept_pipe()
vstinner Jan 22, 2015
995e2c1
Close transports on error
vstinner Jan 22, 2015
adc9c3e
Python issue #23293: Cleanup IocpProactor.close()
vstinner Jan 23, 2015
86bbe9e
Tulip issue #219: Fix comments in simple_tcp_server.py example
vstinner Jan 23, 2015
a4aa7c1
Tulip issue #220: Merge JoinableQueue with Queue.
ajdavis Jan 24, 2015
dc19c32
Docstring for Queue.join shouldn't mention threads.
ajdavis Jan 24, 2015
684f3be
Python issue #23208: Add BaseEventLoop._current_handle
vstinner Jan 26, 2015
febe4cb
Fix ProactorEventLoop.start_serving_pipe()
vstinner Jan 26, 2015
4945c1a
PipeHandle.fileno() now raises an exception if the pipe is closed
vstinner Jan 26, 2015
34214f4
Python issue #23293: Rewrite IocpProactor.connect_pipe() as a coroutine
8000 vstinner Jan 26, 2015
09f7de1
Python issue #23095: Fix _WaitHandleFuture.cancel()
vstinner Jan 26, 2015
29487bb
Tulip issue #204: Fix IocpProactor.recv()
vstinner Jan 26, 2015
54faf33
_overlapped.ConnectPipe(): release the GIL
vstinner Jan 26, 2015
f1774fc
Python issue #23208: Don't use the traceback of the current handle if we
vstinner Jan 26, 2015
8343733
test_sslproto: skip test if ssl module is missing
vstinner Jan 27, 2015
fdd3d9b
Remove unused SSLProtocol._closing attribute
vstinner Jan 27, 2015
63d8fc1
Fix SSLProtocol.eof_received()
vstinner Jan 28, 2015
aed248b
SSL transports now clear their reference to the waiter
vstinner Jan 28, 2015
c560003
Fix _SelectorSocketTransport constructor
vstinner Jan 28, 2015
74a3c25
BaseSubprocessTransport._kill_wait() now also call close()
vstinner Jan 29, 2015
2c89c71
Fix _SelectorDatagramTransport constructor
vstinner Jan 29, 2015
1162bf2
_SelectorTransport constructor: extra parameter is now optional
vstinner Jan 29, 2015
7a46eda
Fix _SelectorSslTransport.close()
vstinner Jan 29, 2015
c662822
Cleanup gather(): use cancelled() method instead of using private Future
vstinner Jan 29, 2015
5fe382d
Fix _UnixReadPipeTransport and _UnixWritePipeTransport
vstinner Jan 29, 2015
59fcee2
Fix BaseSelectorEventLoop._accept_connection()
vstinner Jan 29, 2015
93a4cf4
Document Protocol state machine
vstinner Jan 29, 2015
2b0f274
Python issue #23243: test_sslproto: Close explicitly transports
vstinner Jan 29, 2015
241c710
Python issue #23243: On Python 3.4 and newer, emit a ResourceWarning …
vstinner Jan 29, 2015
c92da15
Python issue #23347: Refactor creation of subprocess transports
vstinner Jan 29, 2015
2e187bb
Python issue #23347: send_signal(), kill() and terminate() methods of
vstinner Jan 29, 2015
cffe67d
tox.ini: enable ResourceWarning warnings
vstinner Jan 29, 2015
787b494
Fix ResourceWarning in test_subprocess.test_proc_exit()
vstinner Jan 29, 2015
d37a906
Python issue #23347: Make BaseSubprocessTransport.wait() private
vstinner Jan 29, 2015
6c7490e
Python issue #23347: send_signal(), terminate(), kill() don't check i…
vstinner Jan 30, 2015
ab5d83c
Fix a ResourceWarning in the shell example
vstinner Jan 30, 2015
eec5196
Fix subprocess_attach_write_pipe example
vstinner Jan 30, 2015
aeb1824
Workaround CPython bug #23353
vstinner Feb 2, 2015
b9d3799
Tulip issue #221: Fix docstring of QueueEmpty and QueueFull
vstinner Feb 3, 2015
d3dbdf8
BaseSelectorEventLoop uses directly the private _debug attribute
vstinner Feb 4, 2015
0105a8f
Only call _check_resolved_address() in debug mode
vstinner Feb 4, 2015
7b2d8ab
BaseEventLoop: rename _owner to _thread_id
vstinner Feb 4, 2015
d496a7e
BaseSubprocessTransport.close() doesn't try to kill the process if it…
vstinner Feb 10, 2015
10a91fe
BaseSubprocessTransport: repr() mentions when the child process is ru…
vstinner Feb 12, 2015
d9c50eb
Tulip issue #220: Restore JoinableQueue as a deprecated alias for Queue.
ajdavis Feb 14, 2015
716ef6c
Merge branch remove-joinable-queue.
ajdavis Feb 14, 2015
b60bad4
tests: Use os.devnull instead of hardcoded '/dev/null'.
vstinner Feb 17, 2015
c18c4d0
Python issue #23475: Fix test_close_kill_running()
vstinner Feb 17, 2015
e147802
Fix warning in test_close_kill_running()
vstinner Feb 17, 2015
8049625
Python issue #23537: Remove 2 unused private methods of BaseSubproces…
vstinner Feb 27, 2015
22a9854
Added tag 3.4.3 for changeset 122233297cfd
vstinner Mar 10, 2015
f04f680
Set version to 3.4.4
vstinner Mar 10, 2015
e0bf949
Write Tulip 3.4.3 changelog
vstinner Mar 10, 2015
26c6fed
Fix repr(BaseSubprocessTransport) if it didn't start yet
vstinner Mar 10, 2015
16b3121
Python issue #23456: Add missing @coroutine decorators
vstinner Mar 18, 2015
15a569d
Fix _SelectorTransport.__repr__() if the event loop is closed
vstinner Mar 27, 2015
b26e6ae
Python issue #23879: SelectorEventLoop.sock_connect() must not call c…
vstinner Apr 7, 2015
bf4b2ce
Rename README file to have rst render on Github
ludovic-gasc Apr 11, 2015
1888b1d
Switch hgignore and hgeol to git equivalents
asvetlov Apr 11, 2015
3582e11
Merge pull request #224 from Eyepea/readme_improvement
asvetlov Apr 11, 2015
30f4788
add in .gitignore pyvenv and Pycharm files
ludovic-gasc Apr 11, 2015
4f9099e
Merge pull request #225 from Eyepea/add_pycharm_in_gitignore
asvetlov Apr 11, 2015
173ff86
Update README.rst
asvetlov Apr 13, 2015
b08ee40
Fix @coroutine for functions without __name__
vstinner Apr 14, 2015
7718675
#230: Change official URL from tulip to asyncio in README.rst
ludovic-gasc Apr 14, 2015
a943b49
Test LifoQueue's and PriorityQueue's put() and task_done().
ajdavis Apr 20, 2015
e496c7c
Fix LifoQueue's and PriorityQueue's put() and task_done().
ajdavis Apr 20, 2015
bcb7ec4
Merge pull request #236 from ajdavis/queue-join-fix
gvanrossum Apr 20, 2015
70d8856
Fix queue join tests for CPython's test runner.
ajdavis Apr 20, 2015
cd10ff2
Merge pull request #237 from ajdavis/update-queue-join-tests
gvanrossum Apr 20, 2015
b516e80
Merge pull request #231 from haypo/issue_222
gvanrossum Apr 23, 2015
2798fb4
Rename the function arg to run_in_executor() to "func" to avoid confu…
May 5, 2015
71f7c24
Add new loop APIs: set_task_factory() and get_task_factory()
1st1 May 11, 2015
0f50393
Sync script_helper import with CPython
1st1 May 11, 2015
2659599
Make sure that CPython 3.4 and older will import script_helper
1st1 May 11, 2015
1181bc1
Fix script_helper imports for 3.4
1st1 May 11, 2015
53edb85
Deprecate async() function in favour of ensure_future()
1st1 May 11, 2015
6c6a5e4
Use DeprecationWarning for async()
1st1 May 11, 2015
e3216b8
Enable Travis-CI integration
1st1 May 11, 2015
36e7141
Support PEP 492 native coroutines.
1st1 May 12, 2015
f24ba38
Make sure sys.set_coroutine_wrapper is called *only* when loop is run…
1st1 May 12, 2015
6ac55b2
Enable 'async for' for StreamReader, 'async with' for locks in 3.5.
1st1 May 13, 2015
3a09a93
Use collections.abc.Coroutine for asyncio.iscoroutine() when available.
1st1 May 12, 2015
fed8618
tasks: Drop useless code.
1st1 May 28, 2015
755806f
Support Awaitables (pep 492) in @coroutine decorator
1st1 May 31, 2015
7baef9d
coroutines: Fix CoroWrapper to support native coroutines
1st1 Jun 1, 2015
eff4672
Sync with CPython.
1st1 Jun 24, 2015
83ac3b8
Fix CoroWrapper for 'async def' coroutines
1st1 Jun 24, 2015
32a303e
Fix regression in 83ac3b8 (failed unittests in debug mode)
1st1 Jun 24, 2015
e802f17
coroutines: Proxy cr_await and gi_yieldfrom in CoroWrapper
1st1 Jul 3, 2015
728a912
Rerite README
vstinner Jul 6, 2015
1975461
rename asyncio/ directory to trollius/
vstinner Jul 6, 2015
ccafbc0
Replace asyncio with trollius in code and config
vstinner Jul 6, 2015
a01f3f4
Add compatibility files from old trollius project
vstinner Jul 6, 2015
a474950
Port asyncio to Python 2, trollius/ directory
vstinner Jul 7, 2015
6d516e5
Port asyncio to Python 2, tests/ directory
vstinner Jul 7, 2015
d8b296d
Add documentation
vstinner Jul 7, 2015
26a3183
add test_asyncio.py
vstinner Jul 7, 2015
603a58e
Port asyncio to Python 2, examples/ directory
vstinner Jul 7, 2015
22df34e
Add interop_asyncio.py example
vstinner Jul 7, 2015
962dea8
copy files from trollius
vstinner Jul 7, 2015
3d64966
replace update_stdlib with update-tulip
vstinner Jul 7, 2015
f09e57b
Port overlapped.c
vstinner Jul 7, 2015
2fd3bf4
Port remaining files
vstinner Jul 7, 2015
fa09379
Add TODO.rst from Trollius
vstinner Jul 7, 2015
e6e6e0a
use releaser
vstinner Jul 7, 2015
3590610
remove asyncio changelog
vstinner Jul 7, 2015
7104694
Fix Python 3.4 issues
vstinner Jul 8, 2015
14d618e
Python 2.7 fixes
vstinner Jul 8, 2015
352b8ce
Fixes for Python 2.6
vstinner Jul 8, 2015
94fa7e2
tox.ini: fix py2_release
vstinner Jul 9, 2015
03a4d4d
pick README from trollius
vstinner Jul 9, 2015
6f52fbf
README: replace Tulip with asyncio
vstinner Jul 9, 2015
fe673cc
replace Tulip with asyncio
vstinner Jul 9, 2015
c335bfe
queues.py: import coroutine from .coroutines
vstinner Jul 9, 2015
f5ae096
Replace Tulip with asyncio in test comments
vstinner Jul 9, 2015
46c187a
replace tulip with asyncio
vstinner Jul 9, 2015
30f5c84
Merge branch 'master' into trollius
vstinner Jul 9, 2015
67bf1da
update doc for unittest2
vstinner Jul 9, 2015
4c6a4e1
Fix import on windows
vstinner Jul 9, 2015
d15529b
get unittest from trollius.test_utils
vstinner Jul 9, 2015
d735bba
fix import
vstinner Jul 9, 2015
e752c82
getaddrinfo() doesn't support keywords on Python 2
vstinner Jul 9, 2015
170c465
subprocess.Popen doesn't support context manager on Python 2
vstinner Jul 9, 2015
f751a25
Fix PipeHandle.__del__ on Python 2
vstinner Jul 9, 2015
3acc9d0
fix test_events on python 3.4.0 and 3.4.1
vstinner Jul 9, 2015
3b6a64a
Add asyncio.compat module
vstinner Jul 9, 2015
a3bce3b
Merge pull request #254 from haypo/compat
vstinner Jul 10, 2015
1f85dc7
Issue #234: Drop JoinableQueue on Python 3.5+
vstinner Jul 10, 2015
53a8e99
port update-tulip-step1.sh to git+github
vstinner Jul 11, 2015
05e99d6
rename update-tulip...sh scripts to update-asyncio-...sh
vstinner Jul 11, 2015
cfcc3c0
update scripts to git
vstinner Jul 11, 2015
fe8894a
rename compat.py to be able to merge asyncio
vstinner Jul 11, 2015
61199a4
enhance git merge
vstinner Jul 11, 2015
16b46b3
Merge asyncio into trollius
vstinner Jul 11, 2015
53bf283
don't commit in update-asyncio-step3.sh
vstinner Jul 11, 2015 8000
2173eee
fix 2.6 compat
vstinner Jul 11, 2015
e82d8c6
Fix Python 3.2 compat
vstinner Jul 11, 2015
1ade799
Test without ssl or without concurrent
vstinner Jul 11, 2015
b5e33de
Enable warnings to see ResourceWarning on Python 3
vstinner Jul 11, 2015
05ecc3c
update doc
vstinner Jul 11, 2015
b4f24c2
cleanup changelog
vstinner Jul 11, 2015
14bdbc0
changelog: summary
vstinner Jul 13, 2015
242222f
Fix sslproto when ssl is not available
vstinner Jul 13, 2015
4a3cad7
Fix TestCase.tearDown() for skipped tests
vstinner Jul 13, 2015
5d4fcb5
prepare release 2.0
vstinner Jul 13, 2015
5e9854d
update release procedure
vstinner Jul 13, 2015
306b7b2
post-release: set version to 2.0.1
vstinner Jul 13, 2015
9414da1
test_utils.py: remove assertRaisesRegex
vstinner Jul 13, 2015
a0bad46
update TODO list
vstinner Jul 13, 2015
d444158
Use the six module
vstinner Jul 13, 2015
ce3ad81
Return True from StreamReader.eof_received() to fix
Jul 14, 2015
d9d8881
setup.py: don't use bdist_wheel
vstinner Jul 17, 2015
d1630dc
doc: add libraries
vstinner Jul 18, 2015
b13b14a
fix test_utils: add missing "import six"
vstinner Jul 18, 2015
f25cb29
fix windows_utils: add missing "import six"
vstinner Jul 18, 2015
9bb6743
remove unused imports
vstinner Jul 18, 2015
ce41fba
Fix ResourceWarning warnings in test_streams
vstinner Jul 24, 2015
5eac181
Fix ResourceWarning in BaseSubprocessTransport
vstinner Jul 31, 2015
4f45ac7
Use compat.PY34
vstinner Jul 31, 2015
4851618
tasks: Fix code style
1st1 Aug 2, 2015
51a3206
Revert "tasks: Fix code style"
1st1 Aug 2, 2015
27f3499
Use '==' operator instead of 'is'
1st1 Aug 4, 2015
5d71b68
Run asyncio with python nightly builds too on travis
1st1 Aug 5, 2015
1dd213e
Merge PR #256: fix issue23812 of queues loosing items on cancellation
1st1 Aug 5, 2015
f57cfc6
Make sure BaseException is re-raised in SSLProtocol
1st1 Aug 5, 2015
f411181
queues: Fix getter-cancellation with many pending getters code path
1st1 Aug 6, 2015
f3ed6c3
Fix asyncio tests on windows
1st1 Aug 9, 2015
8d79c57
Fix Task.get_stask() for 'async def' coroutines
1st1 Aug 14, 2015
0727ad2
Merge asyncio into trollius
vstinner Sep 8, 2015
f285592
better exception traceback
Nov 13, 2015
5388ec1
Merge pull request #5 from imkin/trollius
vstinner Nov 13, 2015
056a394
fix test on py2 win32
mindw Nov 13, 2015
b335213
ignore inline built extensions
mindw Nov 13, 2015
e22a30b
Fix Future on Python 3.5
vstinner Feb 5, 2016
e1a4ed9
document change on exception
vstinner Feb 5, 2016
a8b8ad4
Drop support of Python 2.6 and 3.2
vstinner Feb 5, 2016
9fb2a3d
Ugly hack to support Python 3.5 with the PEP 479
vstinner Feb 5, 2016
f7a315a
8000 Fix CoroWrapper.throw()
vstinner Feb 5, 2016
985e789
Merge pull request #6 from mindw/fix_win32_test
vstinner Feb 5, 2016
5641f31
document the win32 fix
vstinner Feb 5, 2016
2c7f6ac
set version to 2.1
vstinner Feb 5, 2016
98ba7f8
Deprecate Trollius
vstinner Feb 5, 2016
dc11b97
post-release: set version to 2.2
vstinner Feb 19, 2016
907fac4
From(proc.wait()) instead of form proc.wait()
pavan123k Feb 24, 2016
20544a6
Convert readthedocs link for their .org -> .io migration for hosted p…
Jun 2, 2016
a72d9fe
Merge pull request #9 from pavan123k/patch-1
vstinner Dec 5, 2016
0ce9dcb
Merge pull request #11 from adamchainz/readthedocs.io
vstinner Dec 5, 2016
3d8e1db
Update GitHub URL
vstinner Nov 20, 2017
b4bacc0
trollius.readthedocs.io has been removed
vstinner Nov 22, 2017
c6c8641
Remove aiotest tests
vstinner Mar 9, 2018
97c56f0
Add "No Maintenance Intended" badge
vstinner Mar 9, 2018
fa13a1c
Prepare 2.2 release
vstinner Mar 9, 2018
30d9760
post release: set version to 2.3
vstinner Mar 9, 2018
479788f
README: add deprecation warning
vstinner Mar 9, 2018
6d0a877
Add appveyor.yml from https://github.com/vstinner/trollius/pull/13/files
jamadden Jul 29, 2019
cd16267
Metadata updates.
jamadden Jul 29, 2019
439637d
Copy logic from gevent to install pypy.
jamadden Jul 29, 2019
1a76339
Use right executable for pypy
jamadden Jul 29, 2019
85e055d
No really.
jamadden Jul 29, 2019
6b843ec
Nope, drop PyPy: It does not actually build.
jamadden Jul 29, 2019
a692f5a
Tweaking versions.
jamadden Jul 29, 2019
65e0c60
add missing metadata.
jamadden Jul 29, 2019
44ce7ec
Preparing release 2.2.post1
jamadden Jul 29, 2019
2585726
Back to development: 2.2.post2
jamadden Jul 29, 2019
2aeeb23
Add Development Status :: 7 - Inactive classifier.
jamadden Jul 29, 2019
a74449a
Make socket.error with errno EBADF get raised as OSError.
jamadden Apr 28, 2021
c6af107
Merge pull request #18 from jamadden/issue17
jamadden Apr 28, 2021
e60f33a
Update changelog.
jamadden Apr 28, 2021
284b318
Preparing release 2.2.1
jamadden Apr 28, 2021
007602e
Back to development: 2.2.2
jamadden Apr 28, 2021
41951a2
Merge branch '2.2' into trollius
jamadden Apr 28, 2021
5f541ea
Temporarily playing with tags to get appveyor wheels.
jamadden Apr 28, 2021
2df073c
Revert.
jamadden Apr 28, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Make socket.error with errno EBADF get raised as OSError.
Fixes #17
  • Loading branch information
jamadden committed Apr 28, 2021
commit a74449ad5e7de34ca6cadedd062d9ee4307db911
8 changes: 8 additions & 0 deletions CHANGES.rst
9E88
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
=========
Changes
=========

2.2.1 (unreleased)
==================

- Properly reraise socket.error with an errno of EBADF as an OSError.
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ include examples/*.py

include tests/*.crt tests/*.pem tests/*.key
include tests/*.py

include *.rst
4 changes: 2 additions & 2 deletions runtests.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ def randomize_tests(tests, seed):
random.shuffle(tests._tests)


class TestsFinder:
class TestsFinder(object):

def __init__(self, testsdir, includes=(), excludes=()):
self._testsdir = testsdir
Expand All @@ -167,7 +167,7 @@ def find_available_tests(self):
mods = [mod for mod, _ in load_modules(self._testsdir)]
for mod in mods:
for name in set(dir(mod)):
if name.endswith('Tests'):
if name.endswith('Tests') or name.startswith('Test'):
self._test_factories.append(getattr(mod, name))

def load_tests(self):
Expand Down
5 changes: 4 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@
with open("README.rst") as fp:
long_description = fp.read()

with open('CHANGES.rst') as fp:
long_description += '\n\n' + fp.read()

extensions = []
if os.name == 'nt':
ext = Extension(
Expand All @@ -18,7 +21,7 @@

setup(
name="trollius",
version="2.2.post1",
version="2.2.1",
license="Apache License 2.0",
author='Victor Stinner',
author_email='victor.stinner@gmail.com',
Expand Down
35 changes: 35 additions & 0 deletions tests/test_py33_exceptions.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# -*- coding: utf-8 -*-
"""
Tests for py33_exceptions.

"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function


import unittest
from trollius import py33_exceptions

class TestWrapErrors(unittest.TestCase):

def test_ebadf_wrapped_to_OSError(self):
# https://github.com/jamadden/trollius/issues/17
import socket
import os
import errno
s = socket.socket()
os.close(s.fileno())

with self.assertRaises(socket.error) as exc:
s.send(b'abc')

self.assertEqual(exc.exception.errno, errno.EBADF)

with self.assertRaises(OSError) as exc:
py33_exceptions.wrap_error(s.send, b'abc')

self.assertEqual(exc.exception.errno, errno.EBADF)

if __name__ == '__main__':
unittest.main()
3 changes: 3 additions & 0 deletions trollius/py33_exceptions.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,9 @@ class ProcessLookupError(OSError):
errno.ESRCH: ProcessLookupError,
}

if hasattr(errno, 'EBADF') and errno.EBADF not in _MAP_ERRNO:
_MAP_ERRNO[errno.EBADF] = OSError

if sys.platform == 'win32':
from trollius import _overlapped
_MAP_ERRNO.update({
Expand Down
0