diff options
author | Tim Burke <tim.burke@gmail.com> | 2021-10-08 03:18:04 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-08 13:18:04 +0300 |
commit | 15d3c2477510229e1b49c60fccfde5ffe94b2a76 (patch) | |
tree | 5b77b8bdc8518221e5bd043199b6d27ae3f72212 /tests | |
parent | 690464aee772b62a54eedf5275843dce30318597 (diff) | |
download | eventlet-15d3c2477510229e1b49c60fccfde5ffe94b2a76.tar.gz |
Python 3.10 partial support
Everything below is specific to changes in Python 3.10.
https://github.com/eventlet/eventlet/pull/715
- Only wrap socket.timeout on Python < 3.10
socket.timeout is TimeoutError, which our is_timeout() helper func already knows.
fixes https://github.com/eventlet/eventlet/issues/687
- Working greenio._open
_pyio.open is now a staticmethod, so we've got to go down to
_pyio.open.__wrapped__ to get to the python function object.
- Test using eventlet.is_timeout rather than requiring an is_timeout attribute on errors.
TimeoutErrors (which are covered by is_timeout) can't necessarily have attributes added to them.
- Fix backdoor tests
Skip build info line at interpreter startup. Also, start printing the banner as we read it to aid in future debugging.
- Tolerate __builtins__ being a dict (rather than module) in is_timeout
(@tipabu) still not sure how this happens, but somehow it does in socket_test.test_error_is_timeout.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/__init__.py | 2 | ||||
-rw-r--r-- | tests/backdoor_test.py | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/tests/__init__.py b/tests/__init__.py index c0b64fd..1883667 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -383,7 +383,7 @@ def run_isolated(path, prefix='tests/isolated/', **kwargs): def check_is_timeout(obj): value_text = getattr(obj, 'is_timeout', '(missing)') - assert obj.is_timeout, 'type={0} str={1} .is_timeout={2}'.format(type(obj), str(obj), value_text) + assert eventlet.is_timeout(obj), 'type={0} str={1} .is_timeout={2}'.format(type(obj), str(obj), value_text) @contextlib.contextmanager diff --git a/tests/backdoor_test.py b/tests/backdoor_test.py index 03a5692..1e09f09 100644 --- a/tests/backdoor_test.py +++ b/tests/backdoor_test.py @@ -1,5 +1,6 @@ import os import os.path +import sys import eventlet @@ -22,7 +23,9 @@ class BackdoorTest(tests.LimitedTestCase): def _run_test_on_client_and_server(self, client, server_thread): f = client.makefile('rw') assert 'Python' in f.readline() - f.readline() # build info + if sys.version_info < (3, 10): + # Starting in py310, build info is included in version line + f.readline() # build info f.readline() # help info assert 'InteractiveConsole' in f.readline() self.assertEqual('>>> ', f.read(4)) |