I want to package the Python 3 version of tornado 4.5.3 (the latest 4.x release) for Debian unstable, because salt does not work with tornado 5 yet. See https://github.com/saltstack/salt-jenkins/issues/995 for details.
I updated the test certificate and tweaked the source code to work with Python 3.7:
- https://salsa.debian.org/python-team/modules/python-tornado/commit/2c6f99ca6c18d5934a97fb9e6d5d4fa9030efe42
- https://salsa.debian.org/python-team/modules/python-tornado/commit/19e541067a64b451ee31b7a3400c48ef61ec082d
Sadly the a few test cases still fail on Debian unstable (they succeed on Ubuntu 18.04):
======================================================================
ERROR: test_inline_read_error (tornado.test.iostream_test.TestIOStreamSSL)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/building/package/tornado/test/iostream_test.py", line 556, in test_inline_read_error
server.read_bytes(1, lambda data: None)
File "/usr/lib/python3.7/unittest/case.py", line 203, in __exit__
self._raiseFailure("{} not raised".format(exc_name))
File "/usr/lib/python3.7/unittest/case.py", line 135, in _raiseFailure
raise self.test_case.failureException(msg)
AssertionError: OSError not raised
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/tmp/building/package/tornado/testing.py", line 136, in __call__
result = self.orig_method(*args, **kwargs)
File "/tmp/building/package/tornado/test/iostream_test.py", line 558, in test_inline_read_error
server.close()
File "/tmp/building/package/tornado/iostream.py", line 444, in close
self.close_fd()
File "/tmp/building/package/tornado/iostream.py", line 1042, in close_fd
self.socket.close()
File "/usr/lib/python3.7/socket.py", line 420, in close
self._real_close()
File "/usr/lib/python3.7/ssl.py", line 1108, in _real_close
super()._real_close()
File "/usr/lib/python3.7/socket.py", line 414, in _real_close
_ss.close(self)
OSError: [Errno 9] Bad file descriptor
======================================================================
ERROR: test_inline_read_error (tornado.test.iostream_test.TestIOStreamSSLContext)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/building/package/tornado/test/iostream_test.py", line 556, in test_inline_read_error
server.read_bytes(1, lambda data: None)
File "/usr/lib/python3.7/unittest/case.py", line 203, in __exit__
self._raiseFailure("{} not raised".format(exc_name))
File "/usr/lib/python3.7/unittest/case.py", line 135, in _raiseFailure
raise self.test_case.failureException(msg)
AssertionError: OSError not raised
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/tmp/building/package/tornado/testing.py", line 136, in __call__
result = self.orig_method(*args, **kwargs)
File "/tmp/building/package/tornado/test/iostream_test.py", line 558, in test_inline_read_error
server.close()
File "/tmp/building/package/tornado/iostream.py", line 444, in close
self.close_fd()
File "/tmp/building/package/tornado/iostream.py", line 1042, in close_fd
self.socket.close()
File "/usr/lib/python3.7/socket.py", line 420, in close
self._real_close()
File "/usr/lib/python3.7/ssl.py", line 1108, in _real_close
super()._real_close()
File "/usr/lib/python3.7/socket.py", line 414, in _real_close
_ss.close(self)
OSError: [Errno 9] Bad file descriptor
======================================================================
FAIL: test_read_until_close_after_close (tornado.test.iostream_test.TestIOStreamSSL)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/building/package/tornado/testing.py", line 136, in __call__
result = self.orig_method(*args, **kwargs)
File "/tmp/building/package/tornado/test/iostream_test.py", line 451, in test_read_until_close_after_close
data = self.wait()
File "/tmp/building/package/tornado/testing.py", line 336, in wait
self.__rethrow()
File "/tmp/building/package/tornado/testing.py", line 272, in __rethrow
raise_exc_info(failure)
File "<string>", line 4, in raise_exc_info
File "/tmp/building/package/tornado/testing.py", line 320, in timeout_func
timeout)
AssertionError: Async operation timed out after 5 seconds
======================================================================
FAIL: test_streaming_read_until_close_after_close (tornado.test.iostream_test.TestIOStreamSSL)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/building/package/tornado/testing.py", line 136, in __call__
result = self.orig_method(*args, **kwargs)
File "/tmp/building/package/tornado/test/iostream_test.py", line 481, in test_streaming_read_until_close_after_close
data = self.wait()
File "/tmp/building/package/tornado/testing.py", line 336, in wait
self.__rethrow()
File "/tmp/building/package/tornado/testing.py", line 272, in __rethrow
raise_exc_info(failure)
File "<string>", line 4, in raise_exc_info
File "/tmp/building/package/tornado/testing.py", line 320, in timeout_func
timeout)
AssertionError: Async operation timed out after 5 seconds
======================================================================
FAIL: test_write_zero_bytes (tornado.test.iostream_test.TestIOStreamSSL)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/building/package/tornado/testing.py", line 136, in __call__
result = self.orig_method(*args, **kwargs)
File "/tmp/building/package/tornado/test/iostream_test.py", line 220, in test_write_zero_bytes
self.wait()
File "/tmp/building/package/tornado/testing.py", line 336, in wait
self.__rethrow()
File "/tmp/building/package/tornado/testing.py", line 272, in __rethrow
raise_exc_info(failure)
File "<string>", line 4, in raise_exc_info
File "/tmp/building/package/tornado/testing.py", line 320, in timeout_func
timeout)
AssertionError: Async operation timed out after 5 seconds
======================================================================
FAIL: test_read_until_close_after_close (tornado.test.iostream_test.TestIOStreamSSLContext)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/building/package/tornado/testing.py", line 136, in __call__
result = self.orig_method(*args, **kwargs)
File "/tmp/building/package/tornado/test/iostream_test.py", line 451, in test_read_until_close_after_close
data = self.wait()
File "/tmp/building/package/tornado/testing.py", line 336, in wait
self.__rethrow()
File "/tmp/building/package/tornado/testing.py", line 272, in __rethrow
raise_exc_info(failure)
File "<string>", line 4, in raise_exc_info
File "/tmp/building/package/tornado/testing.py", line 320, in timeout_func
timeout)
AssertionError: Async operation timed out after 5 seconds
======================================================================
FAIL: test_streaming_read_until_close_after_close (tornado.test.iostream_test.TestIOStreamSSLContext)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/building/package/tornado/testing.py", line 136, in __call__
result = self.orig_method(*args, **kwargs)
File "/tmp/building/package/tornado/test/iostream_test.py", line 481, in test_streaming_read_until_close_after_close
data = self.wait()
File "/tmp/building/package/tornado/testing.py", line 336, in wait
self.__rethrow()
File "/tmp/building/package/tornado/testing.py", line 272, in __rethrow
raise_exc_info(failure)
File "<string>", line 4, in raise_exc_info
File "/tmp/building/package/tornado/testing.py", line 320, in timeout_func
timeout)
AssertionError: Async operation timed out after 5 seconds
======================================================================
FAIL: test_write_zero_bytes (tornado.test.iostream_test.TestIOStreamSSLContext)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/tmp/building/package/tornado/testing.py", line 136, in __call__
result = self.orig_method(*args, **kwargs)
File "/tmp/building/package/tornado/test/iostream_test.py", line 220, in test_write_zero_bytes
self.wait()
File "/tmp/building/package/tornado/testing.py", line 336, in wait
self.__rethrow()
File "/tmp/building/package/tornado/testing.py", line 272, in __rethrow
raise_exc_info(failure)
File "<string>", line 4, in raise_exc_info
File "/tmp/building/package/tornado/testing.py", line 320, in timeout_func
timeout)
AssertionError: Async operation timed out after 5 seconds
You can see the full build and test long here: https://salsa.debian.org/python-team/modules/python-tornado/-/jobs/77766 (you can ignore the test cases that fail with "Cannot assign requested address")
iostream