Source: python-webob
Version: 1:1.8.6-1
Severity: serious
Justification: FTBFS on amd64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20201027 ftbfs-bullseye
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> # enable network, tests.test_in_wsgiref.test_request_reading needs it
> set -e ; for vers in `py3versions -vr` ; do \
> http_proxy='' PYTHONPATH=.:/<<PKGBUILDDIR>>/src python$vers -m pytest
> tests ; \
> done
> py3versions: no X-Python3-Version in control file, using supported versions
> ============================= test session starts
> ==============================
> platform linux -- Python 3.9.0+, pytest-4.6.11, py-1.9.0, pluggy-0.13.0
> rootdir: /<<PKGBUILDDIR>>, inifile: setup.cfg
> collected 2388 items
>
> tests/test_acceptparse.py .............................................. [
> 1%]
> ........................................................................ [
> 4%]
> ........................................................................ [
> 7%]
> ........................................................................ [
> 10%]
> ........................................................................ [
> 13%]
> ........................................................................ [
> 17%]
> ........................................................................ [
> 20%]
> ........................................................................ [
> 23%]
> ........................................................................ [
> 26%]
> ........................................................................ [
> 29%]
> ........................................................................ [
> 32%]
> ........................................................................ [
> 35%]
> ........................................................................ [
> 38%]
> ........................................................................ [
> 41%]
> ........................................................................ [
> 44%]
> ........................................................................ [
> 47%]
> ........................................................................ [
> 50%]
> ........................................................ [
> 52%]
> tests/test_byterange.py ............... [
> 53%]
> tests/test_cachecontrol.py ............................... [
> 54%]
> tests/test_client.py ............. [
> 54%]
> tests/test_client_functional.py FFFF [
> 55%]
> tests/test_compat.py ........... [
> 55%]
> tests/test_cookies.py .............................................s.s.s [
> 57%]
> ................................................ [
> 59%]
> tests/test_cookies_bw.py . [
> 59%]
> tests/test_datetime_utils.py ...... [
> 60%]
> tests/test_dec.py ......................... [
> 61%]
> tests/test_descriptors.py .............................................. [
> 62%]
> ........................................................................ [
> 65%]
> ......... [
> 66%]
> tests/test_etag.py .......................... [
> 67%]
> tests/test_etag_nose.py ....... [
> 67%]
> tests/test_exc.py ........................................ [
> 69%]
> tests/test_headers.py ................. [
> 70%]
> tests/test_in_wsgiref.py FF [
> 70%]
> tests/test_misc.py ...s.........s. [
> 70%]
> tests/test_multidict.py ................................................ [
> 72%]
> ........................................................................ [
> 75%]
> [
> 75%]
> tests/test_request.py .................................................. [
> 77%]
> ........................................................................ [
> 80%]
> ........................................................................ [
> 84%]
> ...................................................................s.s.s [
> 87%]
> ..............................s......................................... [
> 90%]
> ............................................... [
> 92%]
> tests/test_response.py ................................................. [
> 94%]
> ........x............................................................... [
> 97%]
> ..................................... [
> 98%]
> tests/test_static.py .................... [
> 99%]
> tests/test_transcode.py ...... [
> 99%]
> tests/test_util.py .......
> [100%]
>
> =================================== FAILURES
> ===================================
> _________________________________ test_client
> __________________________________
>
> serve = <function serve.<locals>._serve at 0x7fbedacfa0d0>, client_app = None
>
> @pytest.mark.usefixtures("serve")
> def test_client(serve, client_app=None):
> with serve(simple_app) as server:
> req = Request.blank(server.url, method='POST',
> content_type='application/json',
> json={'test': 1})
> resp = req.send(client_app)
> assert resp.status_code == 200, resp.status
> assert resp.json['headers']['Content-Type'] == 'application/json'
> assert resp.json['method'] == 'POST'
> # Test that these values get filled in:
> del req.environ['SERVER_NAME']
> del req.environ['SERVER_PORT']
> resp = req.send(client_app)
> assert resp.status_code == 200, resp.status
> req = Request.blank(server.url)
> del req.environ['SERVER_NAME']
> del req.environ['SERVER_PORT']
> assert req.send(client_app).status_code == 200
> req.headers['Host'] = server.url.lstrip('http://')
> del req.environ['SERVER_NAME']
> del req.environ['SERVER_PORT']
> resp = req.send(client_app)
> assert resp.status_code == 200, resp.status
> del req.environ['SERVER_NAME']
> del req.environ['SERVER_PORT']
> del req.headers['Host']
> assert req.environ.get('SERVER_NAME') is None
> assert req.environ.get('SERVER_PORT') is None
> assert req.environ.get('HTTP_HOST') is None
> with pytest.raises(ValueError):
> req.send(client_app)
> req = Request.blank(server.url)
> req.environ['CONTENT_LENGTH'] = 'not a number'
> > assert req.send(client_app).status_code == 200
>
> tests/test_client_functional.py:51:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3.9/contextlib.py:124: in __exit__
> next(self.gen)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> app = <wsgify at 140457700217664 wrapping <function simple_app at
> 0x7fbedb32f8b0>>
>
> @contextmanager
> def _serve(app):
> server = _make_test_server(app)
> try:
> worker = threading.Thread(target=server.serve_forever)
> worker.setDaemon(True)
> worker.start()
> server.url = "http://localhost:%d" % server.server_port
> log.debug("server started on %s", server.url)
>
> yield server
> finally:
> log.debug("shutting server down")
> server.shutdown()
> worker.join(1)
> > if worker.isAlive():
> E AttributeError: 'Thread' object has no attribute 'isAlive'
>
> tests/conftest.py:63: AttributeError
> ____________________________ test_no_content_length
> ____________________________
>
> serve = <function serve.<locals>._serve at 0x7fbedacf0700>, client_app = None
>
> @pytest.mark.usefixtures("serve")
> def test_no_content_length(serve, client_app=None):
> with serve(no_length_app) as server:
> req = Request.blank(server.url)
> resp = req.send(client_app)
> > assert resp.status_code == 200, resp.status
>
> tests/test_client_functional.py:64:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3.9/contextlib.py:124: in __exit__
> next(self.gen)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> app = <function no_length_app at 0x7fbedb334940>
>
> @contextmanager
> def _serve(app):
> server = _make_test_server(app)
> try:
> worker = threading.Thread(target=server.serve_forever)
> worker.setDaemon(True)
> worker.start()
> server.url = "http://localhost:%d" % server.server_port
> log.debug("server started on %s", server.url)
>
> yield server
> finally:
> log.debug("shutting server down")
> server.shutdown()
> worker.join(1)
> > if worker.isAlive():
> E AttributeError: 'Thread' object has no attribute 'isAlive'
>
> tests/conftest.py:63: AttributeError
> _____________________________ test_client_cookies
> ______________________________
>
> serve = <function serve.<locals>._serve at 0x7fbedacf0550>, client_app = None
>
> @pytest.mark.usefixtures("serve")
> def test_client_cookies(serve, client_app=None):
> with serve(cookie_app) as server:
> req = Request.blank(server.url + '/?test')
> resp = req.send(client_app)
> assert resp.headers.getall('Set-Cookie') == ['a=b', 'c=d']
> > assert resp.headers['X-Crazy'] == 'value, continuation',
> > repr(resp.headers['X-Crazy'])
>
> tests/test_client_functional.py:82:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3.9/contextlib.py:124: in __exit__
> next(self.gen)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> app = <wsgify at 140457675600944 wrapping <function cookie_app at
> 0x7fbedb334a60>>
>
> @contextmanager
> def _serve(app):
> server = _make_test_server(app)
> try:
> worker = threading.Thread(target=server.serve_forever)
> worker.setDaemon(True)
> worker.start()
> server.url = "http://localhost:%d" % server.server_port
> log.debug("server started on %s", server.url)
>
> yield server
> finally:
> log.debug("shutting server down")
> server.shutdown()
> worker.join(1)
> > if worker.isAlive():
> E AttributeError: 'Thread' object has no attribute 'isAlive'
>
> tests/conftest.py:63: AttributeError
> _______________________________ test_client_slow
> _______________________________
>
> serve = <function serve.<locals>._serve at 0x7fbedacf05e0>
> client_app = <webob.client.SendRequest object at 0x7fbedb4477c0>
>
> @pytest.mark.usefixtures("serve")
> def test_client_slow(serve, client_app=None):
> if client_app is None:
> client_app = SendRequest()
> if not client_app._timeout_supported(client_app.HTTPConnection):
> # timeout isn't supported
> return
> with serve(slow_app) as server:
> req = Request.blank(server.url)
> req.environ['webob.client.timeout'] = 0.1
> resp = req.send(client_app)
> > assert resp.status_code == 504, resp.status
>
> tests/test_client_functional.py:102:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3.9/contextlib.py:124: in __exit__
> next(self.gen)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> app = <wsgify at 140457701719584 wrapping <function slow_app at
> 0x7fbedb334b80>>
>
> @contextmanager
> def _serve(app):
> server = _make_test_server(app)
> try:
> worker = threading.Thread(target=server.serve_forever)
> worker.setDaemon(True)
> worker.start()
> server.url = "http://localhost:%d" % server.server_port
> log.debug("server started on %s", server.url)
>
> yield server
> finally:
> log.debug("shutting server down")
> server.shutdown()
> worker.join(1)
> > if worker.isAlive():
> E AttributeError: 'Thread' object has no attribute 'isAlive'
>
> tests/conftest.py:63: AttributeError
> _____________________________ test_request_reading
> _____________________________
>
> serve = <function serve.<locals>._serve at 0x7fbedacf0af0>
>
> @pytest.mark.usefixtures("serve")
> def test_request_reading(serve):
> """
> Test actual request/response cycle in the presence of
> Request.copy()
> and other methods that can potentially hang.
> """
> with serve(_test_app_req_reading) as server:
> for key in _test_ops_req_read:
> resp = url_open(server.url + key, timeout=3)
> > assert resp.read() == b"ok"
>
> tests/test_in_wsgiref.py:27:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3.9/contextlib.py:124: in __exit__
> next(self.gen)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> app = <function _test_app_req_reading at 0x7fbed9e18dc0>
>
> @contextmanager
> def _serve(app):
> server = _make_test_server(app)
> try:
> worker = threading.Thread(target=server.serve_forever)
> worker.setDaemon(True)
> worker.start()
> server.url = "http://localhost:%d" % server.server_port
> log.debug("server started on %s", server.url)
>
> yield server
> finally:
> log.debug("shutting server down")
> server.shutdown()
> worker.join(1)
> > if worker.isAlive():
> E AttributeError: 'Thread' object has no attribute 'isAlive'
>
> tests/conftest.py:63: AttributeError
> ___________________________ test_interrupted_request
> ___________________________
>
> serve = <function serve.<locals>._serve at 0x7fbedacf0dc0>
>
> @pytest.mark.usefixtures("serve")
> def test_interrupted_request(serve):
> with serve(_test_app_req_interrupt) as server:
> for path in _test_ops_req_interrupt:
> _send_interrupted_req(server, path)
> try:
> res = _global_res.get(timeout=1)
> except Empty:
> raise AssertionError("Error during test %s", path)
> if res is not None:
> print("Error during test:", path)
> > reraise(res)
>
> tests/test_in_wsgiref.py:57:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
> /usr/lib/python3.9/contextlib.py:124: in __exit__
> next(self.gen)
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> app = <function _test_app_req_interrupt at 0x7fbeda5d3160>
>
> @contextmanager
> def _serve(app):
> server = _make_test_server(app)
> try:
> worker = threading.Thread(target=server.serve_forever)
> worker.setDaemon(True)
> worker.start()
> server.url = "http://localhost:%d" % server.server_port
> log.debug("server started on %s", server.url)
>
> yield server
> finally:
> log.debug("shutting server down")
> server.shutdown()
> worker.join(1)
> > if worker.isAlive():
> E AttributeError: 'Thread' object has no attribute 'isAlive'
>
> tests/conftest.py:63: AttributeError
> =============================== warnings summary
> ===============================
> tests/test_request.py::TestRequest_functional::test_request_put
> /<<PKGBUILDDIR>>/src/webob/acceptparse.py:1262: DeprecationWarning: The
> behavior of .__contains__ for the Accept classes is currently being
> maintained for backward compatibility, but it will change in the future to
> better conform to the RFC.
> warnings.warn(
>
> tests/test_request.py::TestRequest_functional::test_request_put
> /<<PKGBUILDDIR>>/src/webob/acceptparse.py:645: DeprecationWarning: The
> behavior of AcceptValidHeader.__contains__ is currently being maintained for
> backward compatibility, but it will change in the future to better conform to
> the RFC.
> warnings.warn(
>
> tests/test_response.py::test_set_cookie_expires_is_datetime_and_max_age_is_None
> tests/test_response.py::test_set_cookie_expires_is_timedelta_and_max_age_is_None
> tests/test_response.py::test_set_cookie_expires_is_datetime_tz_and_max_age_is_None
> /<<PKGBUILDDIR>>/src/webob/response.py:1037: DeprecationWarning: Argument
> "expires" will be removed in a future version of WebOb, please use "max_age".
> warn_deprecation('Argument "expires" will be removed in a future '
>
> -- Docs: https://docs.pytest.org/en/latest/warnings.html
> === 6 failed, 2372 passed, 9 skipped, 1 xfailed, 5 warnings in 11.43 seconds
> ===
> make[1]: *** [debian/rules:12: override_dh_auto_test] Error 1
The full build log is available from:
http://qa-logs.debian.net/2020/10/27/python-webob_1.8.6-1_unstable.log
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.
_______________________________________________
Python-modules-team mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/python-modules-team