* Package: dev-python/waitress-2.0.0  * Repository: gentoo  * Maintainer: python@gentoo.org  * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_8 test userland_GNU  * FEATURES: fakeroot network-sandbox preserve-libs test userpriv  * Package: dev-python/waitress-2.0.0  * Repository: gentoo  * Maintainer: python@gentoo.org  * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_8 test userland_GNU  * FEATURES: fakeroot network-sandbox preserve-libs test userpriv >>> Unpacking source... >>> Unpacking waitress-2.0.0.tar.gz to /var/tmp/portage/dev-python/waitress-2.0.0/work >>> Source unpacked in /var/tmp/portage/dev-python/waitress-2.0.0/work >>> Preparing source in /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0 ... >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0 ... >>> Source configured. >>> Compiling source in /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0 ... * python3_8: running distutils-r1_run_phase distutils-r1_python_compile python3.8 setup.py build -j 6 running build running build_py creating /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/trigger.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/wasyncore.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/task.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/receiver.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/__init__.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/runner.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/__main__.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/utilities.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/channel.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/buffers.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/parser.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/rfc7230.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/proxy_headers.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/compat.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/adjustments.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress copying src/waitress/server.py -> /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress warning: build_py: byte-compiling is disabled, skipping. >>> Source compiled. >>> Test phase: dev-python/waitress-2.0.0 * python3_8: running distutils-r1_run_phase python_test python3.8 -m pytest -vv -ra -l ==================================================== test session starts ===================================================== platform linux -- Python 3.8.8, pytest-6.2.2, py-1.10.0, pluggy-0.13.1 -- /usr/bin/python3.8 cachedir: .pytest_cache hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0/.hypothesis/examples') rootdir: /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0, configfile: setup.cfg, testpaths: tests plugins: hypothesis-6.3.4, asyncio-0.14.0, xprocess-0.17.1, freezegun-0.4.2, httpbin-1.0.0, cov-2.11.1, expect-1.1.0, timeout-1.4.2, forked-1.3.0, virtualenv-1.7.0, localserver-0.5.0, betamax-0.8.1, pkgcore-0.11.6, xdist-2.2.1, mock-3.5.1, shutil-1.7.0, pyfakefs-4.4.0 collecting ... collected 778 items tests/test_adjustments.py::Test_asbool::test_s_is_1 PASSED [ 0%] tests/test_adjustments.py::Test_asbool::test_s_is_False PASSED [ 0%] tests/test_adjustments.py::Test_asbool::test_s_is_None PASSED [ 0%] tests/test_adjustments.py::Test_asbool::test_s_is_True PASSED [ 0%] tests/test_adjustments.py::Test_asbool::test_s_is_false PASSED [ 0%] tests/test_adjustments.py::Test_asbool::test_s_is_on PASSED [ 0%] tests/test_adjustments.py::Test_asbool::test_s_is_true PASSED [ 0%] tests/test_adjustments.py::Test_asbool::test_s_is_yes PASSED [ 1%] tests/test_adjustments.py::Test_as_socket_list::test_not_only_sockets_in_list PASSED [ 1%] tests/test_adjustments.py::Test_as_socket_list::test_only_sockets_in_list PASSED [ 1%] tests/test_adjustments.py::TestAdjustments::test_bad_port PASSED [ 1%] tests/test_adjustments.py::TestAdjustments::test_badvar PASSED [ 1%] tests/test_adjustments.py::TestAdjustments::test_clear_untrusted_proxy_headers PASSED [ 1%] tests/test_adjustments.py::TestAdjustments::test_default_listen PASSED [ 1%] tests/test_adjustments.py::TestAdjustments::test_deprecated_send_bytes PASSED [ 1%] tests/test_adjustments.py::TestAdjustments::test_dont_mix_forwarded_with_x_forwarded PASSED [ 2%] tests/test_adjustments.py::TestAdjustments::test_dont_mix_host_port_listen PASSED [ 2%] tests/test_adjustments.py::TestAdjustments::test_dont_mix_sockets_and_host_port PASSED [ 2%] tests/test_adjustments.py::TestAdjustments::test_dont_mix_sockets_and_listen PASSED [ 2%] tests/test_adjustments.py::TestAdjustments::test_dont_mix_sockets_and_unix_socket PASSED [ 2%] tests/test_adjustments.py::TestAdjustments::test_dont_mix_unix_socket_and_host_port PASSED [ 2%] tests/test_adjustments.py::TestAdjustments::test_dont_mix_unix_socket_and_listen PASSED [ 2%] tests/test_adjustments.py::TestAdjustments::test_dont_use_unsupported_socket_types PASSED [ 2%] tests/test_adjustments.py::TestAdjustments::test_good_sockets PASSED [ 3%] tests/test_adjustments.py::TestAdjustments::test_goodvar_listen PASSED [ 3%] tests/test_adjustments.py::TestAdjustments::test_goodvars PASSED [ 3%] tests/test_adjustments.py::TestAdjustments::test_ipv4_disabled PASSED [ 3%] tests/test_adjustments.py::TestAdjustments::test_ipv6_disabled PASSED [ 3%] tests/test_adjustments.py::TestAdjustments::test_ipv6_no_port PASSED [ 3%] tests/test_adjustments.py::TestAdjustments::test_multiple_listen PASSED [ 3%] tests/test_adjustments.py::TestAdjustments::test_no_trusted_proxy_headers_trusted_proxy PASSED [ 3%] tests/test_adjustments.py::TestAdjustments::test_server_header_removable PASSED [ 4%] tests/test_adjustments.py::TestAdjustments::test_service_port PASSED [ 4%] tests/test_adjustments.py::TestAdjustments::test_trusted_proxy_count_no_trusted_proxy PASSED [ 4%] tests/test_adjustments.py::TestAdjustments::test_trusted_proxy_headers_no_trusted_proxy PASSED [ 4%] tests/test_adjustments.py::TestAdjustments::test_trusted_proxy_headers_string_list PASSED [ 4%] tests/test_adjustments.py::TestAdjustments::test_trusted_proxy_headers_string_list_newlines PASSED [ 4%] tests/test_adjustments.py::TestAdjustments::test_unknown_trusted_proxy_header PASSED [ 4%] tests/test_adjustments.py::TestAdjustments::test_wildcard_listen PASSED [ 5%] tests/test_adjustments.py::TestCLI::test_bad_param PASSED [ 5%] tests/test_adjustments.py::TestCLI::test_both PASSED [ 5%] tests/test_adjustments.py::TestCLI::test_call PASSED [ 5%] tests/test_adjustments.py::TestCLI::test_cast_params PASSED [ 5%] tests/test_adjustments.py::TestCLI::test_help PASSED [ 5%] tests/test_adjustments.py::TestCLI::test_listen_params PASSED [ 5%] tests/test_adjustments.py::TestCLI::test_multiple_listen_params PASSED [ 5%] tests/test_adjustments.py::TestCLI::test_negative_boolean PASSED [ 6%] tests/test_adjustments.py::TestCLI::test_noargs PASSED [ 6%] tests/test_adjustments.py::TestCLI::test_positive_boolean PASSED [ 6%] tests/test_adjustments.py::TestUnixSocket::test_dont_mix_internet_and_unix_sockets PASSED [ 6%] tests/test_buffers.py::TestFileBasedBuffer::test___len__ PASSED [ 6%] tests/test_buffers.py::TestFileBasedBuffer::test___nonzero__ PASSED [ 6%] tests/test_buffers.py::TestFileBasedBuffer::test_append PASSED [ 6%] tests/test_buffers.py::TestFileBasedBuffer::test_close PASSED [ 6%] tests/test_buffers.py::TestFileBasedBuffer::test_ctor_from_buffer PASSED [ 7%] tests/test_buffers.py::TestFileBasedBuffer::test_ctor_from_buffer_None PASSED [ 7%] tests/test_buffers.py::TestFileBasedBuffer::test_get_skip_bytes_less_than_zero PASSED [ 7%] tests/test_buffers.py::TestFileBasedBuffer::test_get_skip_false PASSED [ 7%] tests/test_buffers.py::TestFileBasedBuffer::test_get_skip_true PASSED [ 7%] tests/test_buffers.py::TestFileBasedBuffer::test_newfile PASSED [ 7%] tests/test_buffers.py::TestFileBasedBuffer::test_prune_remain_notzero PASSED [ 7%] tests/test_buffers.py::TestFileBasedBuffer::test_prune_remain_zero_tell_notzero PASSED [ 7%] tests/test_buffers.py::TestFileBasedBuffer::test_prune_remain_zero_tell_zero PASSED [ 8%] tests/test_buffers.py::TestFileBasedBuffer::test_skip_remain_gt_bytes PASSED [ 8%] tests/test_buffers.py::TestFileBasedBuffer::test_skip_remain_lt_bytes PASSED [ 8%] tests/test_buffers.py::TestTempfileBasedBuffer::test_newfile PASSED [ 8%] tests/test_buffers.py::TestBytesIOBasedBuffer::test_ctor_from_buffer_None PASSED [ 8%] tests/test_buffers.py::TestBytesIOBasedBuffer::test_ctor_from_buffer_not_None PASSED [ 8%] tests/test_buffers.py::TestBytesIOBasedBuffer::test_newfile PASSED [ 8%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test___iter__ PASSED [ 8%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test_append PASSED [ 9%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test_get_numbytes_gt_remain PASSED [ 9%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test_get_numbytes_gt_remain_withskip PASSED [ 9%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test_get_numbytes_lt_remain PASSED [ 9%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test_get_numbytes_lt_remain_withskip PASSED [ 9%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test_get_numbytes_neg_one PASSED [ 9%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test_prepare_not_seekable PASSED [ 9%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test_prepare_not_seekable_closeable PASSED [ 10%] tests/test_buffers.py::TestReadOnlyFileBasedBuffer::test_prepare_seekable_closeable PASSED [ 10%] tests/test_buffers.py::TestOverflowableBuffer::test___len__buf_is_None PASSED [ 10%] tests/test_buffers.py::TestOverflowableBuffer::test___len__buf_is_not_None PASSED [ 10%] tests/test_buffers.py::TestOverflowableBuffer::test___nonzero__ PASSED [ 10%] tests/test_buffers.py::TestOverflowableBuffer::test___nonzero___on_int_overflow_buffer PASSED [ 10%] tests/test_buffers.py::TestOverflowableBuffer::test__create_buffer_large PASSED [ 10%] tests/test_buffers.py::TestOverflowableBuffer::test__create_buffer_small PASSED [ 10%] tests/test_buffers.py::TestOverflowableBuffer::test_append_buf_None_longer_than_strbuf_limit PASSED [ 11%] tests/test_buffers.py::TestOverflowableBuffer::test_append_buf_None_not_longer_than_srtbuf_limit PASSED [ 11%] tests/test_buffers.py::TestOverflowableBuffer::test_append_overflow PASSED [ 11%] tests/test_buffers.py::TestOverflowableBuffer::test_append_sz_gt_overflow PASSED [ 11%] tests/test_buffers.py::TestOverflowableBuffer::test_append_with_len_more_than_max_int PASSED [ 11%] tests/test_buffers.py::TestOverflowableBuffer::test_close_nobuf PASSED [ 11%] tests/test_buffers.py::TestOverflowableBuffer::test_close_withbuf PASSED [ 11%] tests/test_buffers.py::TestOverflowableBuffer::test_get_buf_None_skip_False PASSED [ 11%] tests/test_buffers.py::TestOverflowableBuffer::test_get_buf_None_skip_True PASSED [ 12%] tests/test_buffers.py::TestOverflowableBuffer::test_getfile_buf_None PASSED [ 12%] tests/test_buffers.py::TestOverflowableBuffer::test_getfile_buf_not_None PASSED [ 12%] tests/test_buffers.py::TestOverflowableBuffer::test_prune_buf_None PASSED [ 12%] tests/test_buffers.py::TestOverflowableBuffer::test_prune_with_buf PASSED [ 12%] tests/test_buffers.py::TestOverflowableBuffer::test_prune_with_buf_overflow PASSED [ 12%] tests/test_buffers.py::TestOverflowableBuffer::test_prune_with_buflen_more_than_max_int PASSED [ 12%] tests/test_buffers.py::TestOverflowableBuffer::test_skip_buf_None PASSED [ 12%] tests/test_buffers.py::TestOverflowableBuffer::test_skip_buf_None_allow_prune_True PASSED [ 13%] tests/test_channel.py::TestHTTPChannel::test__flush_some_empty_outbuf PASSED [ 13%] tests/test_channel.py::TestHTTPChannel::test__flush_some_full_outbuf_socket_returns_nonzero PASSED [ 13%] tests/test_channel.py::TestHTTPChannel::test__flush_some_full_outbuf_socket_returns_zero PASSED [ 13%] tests/test_channel.py::TestHTTPChannel::test__flush_some_outbuf_len_gt_sys_maxint PASSED [ 13%] tests/test_channel.py::TestHTTPChannel::test_add_channel PASSED [ 13%] tests/test_channel.py::TestHTTPChannel::test_cancel_no_requests PASSED [ 13%] tests/test_channel.py::TestHTTPChannel::test_cancel_with_requests PASSED [ 14%] tests/test_channel.py::TestHTTPChannel::test_ctor PASSED [ 14%] tests/test_channel.py::TestHTTPChannel::test_del_channel PASSED [ 14%] tests/test_channel.py::TestHTTPChannel::test_flush_some_multiple_buffers_close_raises PASSED [ 14%] tests/test_channel.py::TestHTTPChannel::test_flush_some_multiple_buffers_first_empty PASSED [ 14%] tests/test_channel.py::TestHTTPChannel::test_handle_close PASSED [ 14%] tests/test_channel.py::TestHTTPChannel::test_handle_close_outbuf_raises_on_close PASSED [ 14%] tests/test_channel.py::TestHTTPChannel::test_handle_read_error PASSED [ 14%] tests/test_channel.py::TestHTTPChannel::test_handle_read_no_error PASSED [ 15%] tests/test_channel.py::TestHTTPChannel::test_handle_write_close_when_flushed PASSED [ 15%] tests/test_channel.py::TestHTTPChannel::test_handle_write_no_notify_after_flush PASSED [ 15%] tests/test_channel.py::TestHTTPChannel::test_handle_write_no_request_with_outbuf PASSED [ 15%] tests/test_channel.py::TestHTTPChannel::test_handle_write_no_requests_no_outbuf_will_close PASSED [ 15%] tests/test_channel.py::TestHTTPChannel::test_handle_write_no_requests_outbuf_gt_send_bytes PASSED [ 15%] tests/test_channel.py::TestHTTPChannel::test_handle_write_not_connected PASSED [ 15%] tests/test_channel.py::TestHTTPChannel::test_handle_write_notify_after_flush PASSED [ 15%] tests/test_channel.py::TestHTTPChannel::test_handle_write_outbuf_raises_othererror PASSED [ 16%] tests/test_channel.py::TestHTTPChannel::test_handle_write_outbuf_raises_socketerror PASSED [ 16%] tests/test_channel.py::TestHTTPChannel::test_handle_write_with_requests PASSED [ 16%] tests/test_channel.py::TestHTTPChannel::test_readable_no_requests_not_will_close PASSED [ 16%] tests/test_channel.py::TestHTTPChannel::test_readable_no_requests_will_close PASSED [ 16%] tests/test_channel.py::TestHTTPChannel::test_readable_with_requests PASSED [ 16%] tests/test_channel.py::TestHTTPChannel::test_received PASSED [ 16%] tests/test_channel.py::TestHTTPChannel::test_received_headers_finished_expect_continue_false PASSED [ 16%] tests/test_channel.py::TestHTTPChannel::test_received_headers_finished_expect_continue_true PASSED [ 17%] tests/test_channel.py::TestHTTPChannel::test_received_headers_finished_expect_continue_true_sent_true PASSED [ 17%] tests/test_channel.py::TestHTTPChannel::test_received_no_chunk PASSED [ 17%] tests/test_channel.py::TestHTTPChannel::test_received_preq_completed_connection_close PASSED [ 17%] tests/test_channel.py::TestHTTPChannel::test_received_preq_completed_empty PASSED [ 17%] tests/test_channel.py::TestHTTPChannel::test_received_preq_error PASSED [ 17%] tests/test_channel.py::TestHTTPChannel::test_received_preq_not_completed PASSED [ 17%] tests/test_channel.py::TestHTTPChannel::test_service_with_multiple_requests PASSED [ 17%] tests/test_channel.py::TestHTTPChannel::test_service_with_one_error_request PASSED [ 18%] tests/test_channel.py::TestHTTPChannel::test_service_with_one_request PASSED [ 18%] tests/test_channel.py::TestHTTPChannel::test_service_with_request_error_raises_disconnect PASSED [ 18%] tests/test_channel.py::TestHTTPChannel::test_service_with_request_raises PASSED [ 18%] tests/test_channel.py::TestHTTPChannel::test_service_with_request_raises_disconnect PASSED [ 18%] tests/test_channel.py::TestHTTPChannel::test_service_with_requests_raises_already_wrote_header PASSED [ 18%] tests/test_channel.py::TestHTTPChannel::test_service_with_requests_raises_didnt_write_header PASSED [ 18%] tests/test_channel.py::TestHTTPChannel::test_service_with_requests_raises_didnt_write_header_expose_tbs PASSED [ 19%] tests/test_channel.py::TestHTTPChannel::test_total_outbufs_len_an_outbuf_size_gt_sys_maxint PASSED [ 19%] tests/test_channel.py::TestHTTPChannel::test_writable_nothing_in_outbuf PASSED [ 19%] tests/test_channel.py::TestHTTPChannel::test_writable_nothing_in_outbuf_will_close PASSED [ 19%] tests/test_channel.py::TestHTTPChannel::test_writable_something_in_outbuf PASSED [ 19%] tests/test_channel.py::TestHTTPChannel::test_write_soon_disconnected PASSED [ 19%] tests/test_channel.py::TestHTTPChannel::test_write_soon_disconnected_while_over_watermark PASSED [ 19%] tests/test_channel.py::TestHTTPChannel::test_write_soon_empty_byte PASSED [ 19%] tests/test_channel.py::TestHTTPChannel::test_write_soon_filewrapper PASSED [ 20%] tests/test_channel.py::TestHTTPChannel::test_write_soon_nonempty_byte PASSED [ 20%] tests/test_channel.py::TestHTTPChannel::test_write_soon_rotates_outbuf_on_overflow PASSED [ 20%] tests/test_channel.py::TestHTTPChannel::test_write_soon_waits_on_backpressure PASSED [ 20%] tests/test_channel.py::TestHTTPChannelLookahead::test__flush_some_empty_outbuf PASSED [ 20%] tests/test_channel.py::TestHTTPChannelLookahead::test__flush_some_full_outbuf_socket_returns_nonzero PASSED [ 20%] tests/test_channel.py::TestHTTPChannelLookahead::test__flush_some_full_outbuf_socket_returns_zero PASSED [ 20%] tests/test_channel.py::TestHTTPChannelLookahead::test__flush_some_outbuf_len_gt_sys_maxint PASSED [ 20%] tests/test_channel.py::TestHTTPChannelLookahead::test_add_channel PASSED [ 21%] tests/test_channel.py::TestHTTPChannelLookahead::test_cancel_no_requests PASSED [ 21%] tests/test_channel.py::TestHTTPChannelLookahead::test_cancel_with_requests PASSED [ 21%] tests/test_channel.py::TestHTTPChannelLookahead::test_client_disconnect PASSED [ 21%] tests/test_channel.py::TestHTTPChannelLookahead::test_client_disconnect_immediate PASSED [ 21%] tests/test_channel.py::TestHTTPChannelLookahead::test_ctor PASSED [ 21%] tests/test_channel.py::TestHTTPChannelLookahead::test_del_channel PASSED [ 21%] tests/test_channel.py::TestHTTPChannelLookahead::test_flush_some_multiple_buffers_close_raises PASSED [ 21%] tests/test_channel.py::TestHTTPChannelLookahead::test_flush_some_multiple_buffers_first_empty PASSED [ 22%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_close PASSED [ 22%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_close_outbuf_raises_on_close PASSED [ 22%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_read_error PASSED [ 22%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_read_no_error PASSED [ 22%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_close_when_flushed PASSED [ 22%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_no_notify_after_flush PASSED [ 22%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_no_request_with_outbuf PASSED [ 23%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_no_requests_no_outbuf_will_close PASSED [ 23%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_no_requests_outbuf_gt_send_bytes PASSED [ 23%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_not_connected PASSED [ 23%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_notify_after_flush PASSED [ 23%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_outbuf_raises_othererror PASSED [ 23%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_outbuf_raises_socketerror PASSED [ 23%] tests/test_channel.py::TestHTTPChannelLookahead::test_handle_write_with_requests PASSED [ 23%] tests/test_channel.py::TestHTTPChannelLookahead::test_lookahead_continue PASSED [ 24%] tests/test_channel.py::TestHTTPChannelLookahead::test_readable_no_requests_not_will_close PASSED [ 24%] tests/test_channel.py::TestHTTPChannelLookahead::test_readable_no_requests_will_close PASSED [ 24%] tests/test_channel.py::TestHTTPChannelLookahead::test_readable_with_requests PASSED [ 24%] tests/test_channel.py::TestHTTPChannelLookahead::test_received PASSED [ 24%] tests/test_channel.py::TestHTTPChannelLookahead::test_received_headers_finished_expect_continue_false PASSED [ 24%] tests/test_channel.py::TestHTTPChannelLookahead::test_received_headers_finished_expect_continue_true PASSED [ 24%] tests/test_channel.py::TestHTTPChannelLookahead::test_received_headers_finished_expect_continue_true_sent_true PASSED [ 24%] tests/test_channel.py::TestHTTPChannelLookahead::test_received_no_chunk PASSED [ 25%] tests/test_channel.py::TestHTTPChannelLookahead::test_received_preq_completed_connection_close PASSED [ 25%] tests/test_channel.py::TestHTTPChannelLookahead::test_received_preq_completed_empty PASSED [ 25%] tests/test_channel.py::TestHTTPChannelLookahead::test_received_preq_error PASSED [ 25%] tests/test_channel.py::TestHTTPChannelLookahead::test_received_preq_not_completed PASSED [ 25%] tests/test_channel.py::TestHTTPChannelLookahead::test_service_with_multiple_requests PASSED [ 25%] tests/test_channel.py::TestHTTPChannelLookahead::test_service_with_one_error_request PASSED [ 25%] tests/test_channel.py::TestHTTPChannelLookahead::test_service_with_one_request PASSED [ 25%] tests/test_channel.py::TestHTTPChannelLookahead::test_service_with_request_error_raises_disconnect PASSED [ 26%] tests/test_channel.py::TestHTTPChannelLookahead::test_service_with_request_raises PASSED [ 26%] tests/test_channel.py::TestHTTPChannelLookahead::test_service_with_request_raises_disconnect PASSED [ 26%] tests/test_channel.py::TestHTTPChannelLookahead::test_service_with_requests_raises_already_wrote_header PASSED [ 26%] tests/test_channel.py::TestHTTPChannelLookahead::test_service_with_requests_raises_didnt_write_header PASSED [ 26%] tests/test_channel.py::TestHTTPChannelLookahead::test_service_with_requests_raises_didnt_write_header_expose_tbs PASSED [ 26%] tests/test_channel.py::TestHTTPChannelLookahead::test_total_outbufs_len_an_outbuf_size_gt_sys_maxint PASSED [ 26%] tests/test_channel.py::TestHTTPChannelLookahead::test_writable_nothing_in_outbuf PASSED [ 26%] tests/test_channel.py::TestHTTPChannelLookahead::test_writable_nothing_in_outbuf_will_close PASSED [ 27%] tests/test_channel.py::TestHTTPChannelLookahead::test_writable_something_in_outbuf PASSED [ 27%] tests/test_channel.py::TestHTTPChannelLookahead::test_write_soon_disconnected PASSED [ 27%] tests/test_channel.py::TestHTTPChannelLookahead::test_write_soon_disconnected_while_over_watermark PASSED [ 27%] tests/test_channel.py::TestHTTPChannelLookahead::test_write_soon_empty_byte PASSED [ 27%] tests/test_channel.py::TestHTTPChannelLookahead::test_write_soon_filewrapper PASSED [ 27%] tests/test_channel.py::TestHTTPChannelLookahead::test_write_soon_nonempty_byte PASSED [ 27%] tests/test_channel.py::TestHTTPChannelLookahead::test_write_soon_rotates_outbuf_on_overflow PASSED [ 28%] tests/test_channel.py::TestHTTPChannelLookahead::test_write_soon_waits_on_backpressure PASSED [ 28%] tests/test_functional.py::SleepyThreadTests::test_it PASSED [ 28%] tests/test_functional.py::TcpEchoTests::test_bad_host_header PASSED [ 28%] tests/test_functional.py::TcpEchoTests::test_broken_chunked_encoding PASSED [ 28%] tests/test_functional.py::TcpEchoTests::test_broken_chunked_encoding_missing_chunk_end PASSED [ 28%] tests/test_functional.py::TcpEchoTests::test_chunking_request_with_content PASSED [ 28%] tests/test_functional.py::TcpEchoTests::test_chunking_request_without_content PASSED [ 28%] tests/test_functional.py::TcpEchoTests::test_date_and_server PASSED [ 29%] tests/test_functional.py::TcpEchoTests::test_keepalive_http10_explicit PASSED [ 29%] tests/test_functional.py::TcpEchoTests::test_keepalive_http11_connclose PASSED [ 29%] tests/test_functional.py::TcpEchoTests::test_keepalive_http11_explicit PASSED [ 29%] tests/test_functional.py::TcpEchoTests::test_keepalive_http_10 PASSED [ 29%] tests/test_functional.py::TcpEchoTests::test_keepalive_http_11 PASSED [ 29%] tests/test_functional.py::TcpEchoTests::test_large_body PASSED [ 29%] tests/test_functional.py::TcpEchoTests::test_many_clients PASSED [ 29%] tests/test_functional.py::TcpEchoTests::test_multiple_requests_with_body PASSED [ 30%] tests/test_functional.py::TcpEchoTests::test_multiple_requests_without_body PASSED [ 30%] tests/test_functional.py::TcpEchoTests::test_proxy_headers PASSED [ 30%] tests/test_functional.py::TcpEchoTests::test_send_empty_body PASSED [ 30%] tests/test_functional.py::TcpEchoTests::test_send_with_body PASSED [ 30%] tests/test_functional.py::TcpEchoTests::test_without_crlf PASSED [ 30%] tests/test_functional.py::TcpPipeliningTests::test_pipelining PASSED [ 30%] tests/test_functional.py::TcpExpectContinueTests::test_expect_continue PASSED [ 30%] tests/test_functional.py::TcpBadContentLengthTests::test_long_body PASSED [ 31%] tests/test_functional.py::TcpBadContentLengthTests::test_short_body PASSED [ 31%] tests/test_functional.py::TcpNoContentLengthTests::test_http10_generator PASSED [ 31%] tests/test_functional.py::TcpNoContentLengthTests::test_http10_list PASSED [ 31%] tests/test_functional.py::TcpNoContentLengthTests::test_http10_listlentwo PASSED [ 31%] tests/test_functional.py::TcpNoContentLengthTests::test_http11_generator PASSED [ 31%] tests/test_functional.py::TcpNoContentLengthTests::test_http11_list PASSED [ 31%] tests/test_functional.py::TcpNoContentLengthTests::test_http11_listlentwo PASSED [ 32%] tests/test_functional.py::TcpWriteCallbackTests::test_equal_body PASSED [ 32%] tests/test_functional.py::TcpWriteCallbackTests::test_long_body PASSED [ 32%] tests/test_functional.py::TcpWriteCallbackTests::test_no_content_length PASSED [ 32%] tests/test_functional.py::TcpWriteCallbackTests::test_short_body PASSED [ 32%] tests/test_functional.py::TcpTooLargeTests::test_request_body_too_large_chunked_encoding PASSED [ 32%] tests/test_functional.py::TcpTooLargeTests::test_request_body_too_large_with_no_cl_http10 PASSED [ 32%] tests/test_functional.py::TcpTooLargeTests::test_request_body_too_large_with_no_cl_http10_keepalive PASSED [ 32%] tests/test_functional.py::TcpTooLargeTests::test_request_body_too_large_with_no_cl_http11 PASSED [ 33%] tests/test_functional.py::TcpTooLargeTests::test_request_body_too_large_with_no_cl_http11_connclose PASSED [ 33%] tests/test_functional.py::TcpTooLargeTests::test_request_body_too_large_with_wrong_cl_http10 PASSED [ 33%] tests/test_functional.py::TcpTooLargeTests::test_request_body_too_large_with_wrong_cl_http10_keepalive PASSED [ 33%] tests/test_functional.py::TcpTooLargeTests::test_request_body_too_large_with_wrong_cl_http11 PASSED [ 33%] tests/test_functional.py::TcpTooLargeTests::test_request_body_too_large_with_wrong_cl_http11_connclose PASSED [ 33%] tests/test_functional.py::TcpTooLargeTests::test_request_headers_too_large_http11 PASSED [ 33%] tests/test_functional.py::TcpInternalServerErrorTests::test_after_start_response_http10 PASSED [ 33%] tests/test_functional.py::TcpInternalServerErrorTests::test_after_start_response_http11 PASSED [ 34%] tests/test_functional.py::TcpInternalServerErrorTests::test_after_start_response_http11_close PASSED [ 34%] tests/test_functional.py::TcpInternalServerErrorTests::test_after_write_cb PASSED [ 34%] tests/test_functional.py::TcpInternalServerErrorTests::test_before_start_response_http_10 PASSED [ 34%] tests/test_functional.py::TcpInternalServerErrorTests::test_before_start_response_http_11 PASSED [ 34%] tests/test_functional.py::TcpInternalServerErrorTests::test_before_start_response_http_11_close PASSED [ 34%] tests/test_functional.py::TcpInternalServerErrorTests::test_in_generator PASSED [ 34%] tests/test_functional.py::TcpFileWrapperTests::test_filelike_http10 PASSED [ 34%] tests/test_functional.py::TcpFileWrapperTests::test_filelike_http11 PASSED [ 35%] tests/test_functional.py::TcpFileWrapperTests::test_filelike_longcl_http11 PASSED [ 35%] tests/test_functional.py::TcpFileWrapperTests::test_filelike_nocl_http10 PASSED [ 35%] tests/test_functional.py::TcpFileWrapperTests::test_filelike_nocl_http11 PASSED [ 35%] tests/test_functional.py::TcpFileWrapperTests::test_filelike_shortcl_http11 PASSED [ 35%] tests/test_functional.py::TcpFileWrapperTests::test_notfilelike_http10 PASSED [ 35%] tests/test_functional.py::TcpFileWrapperTests::test_notfilelike_http11 PASSED [ 35%] tests/test_functional.py::TcpFileWrapperTests::test_notfilelike_iobase_http11 PASSED [ 35%] tests/test_functional.py::TcpFileWrapperTests::test_notfilelike_longcl_http11 PASSED [ 36%] tests/test_functional.py::TcpFileWrapperTests::test_notfilelike_nocl_http10 PASSED [ 36%] tests/test_functional.py::TcpFileWrapperTests::test_notfilelike_nocl_http11 PASSED [ 36%] tests/test_functional.py::TcpFileWrapperTests::test_notfilelike_shortcl_http11 PASSED [ 36%] tests/test_functional.py::UnixEchoTests::test_bad_host_header PASSED [ 36%] tests/test_functional.py::UnixEchoTests::test_broken_chunked_encoding PASSED [ 36%] tests/test_functional.py::UnixEchoTests::test_broken_chunked_encoding_missing_chunk_end PASSED [ 36%] tests/test_functional.py::UnixEchoTests::test_chunking_request_with_content PASSED [ 37%] tests/test_functional.py::UnixEchoTests::test_chunking_request_without_content PASSED [ 37%] tests/test_functional.py::UnixEchoTests::test_date_and_server PASSED [ 37%] tests/test_functional.py::UnixEchoTests::test_keepalive_http10_explicit PASSED [ 37%] tests/test_functional.py::UnixEchoTests::test_keepalive_http11_connclose PASSED [ 37%] tests/test_functional.py::UnixEchoTests::test_keepalive_http11_explicit PASSED [ 37%] tests/test_functional.py::UnixEchoTests::test_keepalive_http_10 PASSED [ 37%] tests/test_functional.py::UnixEchoTests::test_keepalive_http_11 PASSED [ 37%] tests/test_functional.py::UnixEchoTests::test_large_body PASSED [ 38%] tests/test_functional.py::UnixEchoTests::test_many_clients PASSED [ 38%] tests/test_functional.py::UnixEchoTests::test_multiple_requests_with_body PASSED [ 38%] tests/test_functional.py::UnixEchoTests::test_multiple_requests_without_body PASSED [ 38%] tests/test_functional.py::UnixEchoTests::test_proxy_headers PASSED [ 38%] tests/test_functional.py::UnixEchoTests::test_send_empty_body PASSED [ 38%] tests/test_functional.py::UnixEchoTests::test_send_with_body PASSED [ 38%] tests/test_functional.py::UnixEchoTests::test_without_crlf PASSED [ 38%] tests/test_functional.py::UnixPipeliningTests::test_pipelining PASSED [ 39%] tests/test_functional.py::UnixExpectContinueTests::test_expect_continue PASSED [ 39%] tests/test_functional.py::UnixBadContentLengthTests::test_long_body PASSED [ 39%] tests/test_functional.py::UnixBadContentLengthTests::test_short_body PASSED [ 39%] tests/test_functional.py::UnixNoContentLengthTests::test_http10_generator PASSED [ 39%] tests/test_functional.py::UnixNoContentLengthTests::test_http10_list PASSED [ 39%] tests/test_functional.py::UnixNoContentLengthTests::test_http10_listlentwo PASSED [ 39%] tests/test_functional.py::UnixNoContentLengthTests::test_http11_generator PASSED [ 39%] tests/test_functional.py::UnixNoContentLengthTests::test_http11_list PASSED [ 40%] tests/test_functional.py::UnixNoContentLengthTests::test_http11_listlentwo PASSED [ 40%] tests/test_functional.py::UnixWriteCallbackTests::test_equal_body PASSED [ 40%] tests/test_functional.py::UnixWriteCallbackTests::test_long_body PASSED [ 40%] tests/test_functional.py::UnixWriteCallbackTests::test_no_content_length PASSED [ 40%] tests/test_functional.py::UnixWriteCallbackTests::test_short_body PASSED [ 40%] tests/test_functional.py::UnixTooLargeTests::test_request_body_too_large_chunked_encoding PASSED [ 40%] tests/test_functional.py::UnixTooLargeTests::test_request_body_too_large_with_no_cl_http10 PASSED [ 41%] tests/test_functional.py::UnixTooLargeTests::test_request_body_too_large_with_no_cl_http10_keepalive PASSED [ 41%] tests/test_functional.py::UnixTooLargeTests::test_request_body_too_large_with_no_cl_http11 PASSED [ 41%] tests/test_functional.py::UnixTooLargeTests::test_request_body_too_large_with_no_cl_http11_connclose PASSED [ 41%] tests/test_functional.py::UnixTooLargeTests::test_request_body_too_large_with_wrong_cl_http10 PASSED [ 41%] tests/test_functional.py::UnixTooLargeTests::test_request_body_too_large_with_wrong_cl_http10_keepalive PASSED [ 41%] tests/test_functional.py::UnixTooLargeTests::test_request_body_too_large_with_wrong_cl_http11 PASSED [ 41%] tests/test_functional.py::UnixTooLargeTests::test_request_body_too_large_with_wrong_cl_http11_connclose PASSED [ 41%] tests/test_functional.py::UnixTooLargeTests::test_request_headers_too_large_http11 PASSED [ 42%] tests/test_functional.py::UnixInternalServerErrorTests::test_after_start_response_http10 PASSED [ 42%] tests/test_functional.py::UnixInternalServerErrorTests::test_after_start_response_http11 PASSED [ 42%] tests/test_functional.py::UnixInternalServerErrorTests::test_after_start_response_http11_close PASSED [ 42%] tests/test_functional.py::UnixInternalServerErrorTests::test_after_write_cb PASSED [ 42%] tests/test_functional.py::UnixInternalServerErrorTests::test_before_start_response_http_10 PASSED [ 42%] tests/test_functional.py::UnixInternalServerErrorTests::test_before_start_response_http_11 PASSED [ 42%] tests/test_functional.py::UnixInternalServerErrorTests::test_before_start_response_http_11_close PASSED [ 42%] tests/test_functional.py::UnixInternalServerErrorTests::test_in_generator PASSED [ 43%] tests/test_functional.py::UnixFileWrapperTests::test_filelike_http10 PASSED [ 43%] tests/test_functional.py::UnixFileWrapperTests::test_filelike_http11 PASSED [ 43%] tests/test_functional.py::UnixFileWrapperTests::test_filelike_longcl_http11 PASSED [ 43%] tests/test_functional.py::UnixFileWrapperTests::test_filelike_nocl_http10 PASSED [ 43%] tests/test_functional.py::UnixFileWrapperTests::test_filelike_nocl_http11 PASSED [ 43%] tests/test_functional.py::UnixFileWrapperTests::test_filelike_shortcl_http11 PASSED [ 43%] tests/test_functional.py::UnixFileWrapperTests::test_notfilelike_http10 PASSED [ 43%] tests/test_functional.py::UnixFileWrapperTests::test_notfilelike_http11 PASSED [ 44%] tests/test_functional.py::UnixFileWrapperTests::test_notfilelike_iobase_http11 PASSED [ 44%] tests/test_functional.py::UnixFileWrapperTests::test_notfilelike_longcl_http11 PASSED [ 44%] tests/test_functional.py::UnixFileWrapperTests::test_notfilelike_nocl_http10 PASSED [ 44%] tests/test_functional.py::UnixFileWrapperTests::test_notfilelike_nocl_http11 PASSED [ 44%] tests/test_functional.py::UnixFileWrapperTests::test_notfilelike_shortcl_http11 PASSED [ 44%] tests/test_init.py::Test_serve::test_it PASSED [ 44%] tests/test_init.py::Test_serve_paste::test_it PASSED [ 44%] tests/test_parser.py::TestHTTPRequestParser::test_close_with_body_rcv PASSED [ 45%] tests/test_parser.py::TestHTTPRequestParser::test_close_with_no_body_rcv PASSED [ 45%] tests/test_parser.py::TestHTTPRequestParser::test_get_body_stream_None PASSED [ 45%] tests/test_parser.py::TestHTTPRequestParser::test_get_body_stream_nonNone PASSED [ 45%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_11_expect_continue PASSED [ 45%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_11_te_chunked PASSED [ 45%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_bad_content_length PASSED [ 45%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_connection_close PASSED [ 46%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_cr_only PASSED [ 46%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_empty PASSED [ 46%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_extra_lf_in_first_line PASSED [ 46%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_extra_lf_in_header PASSED [ 46%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_gardenpath PASSED [ 46%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_invalid_backtrack_bad PASSED [ 46%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_invalid_chars PASSED [ 46%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_invalid_folding_spacing PASSED [ 47%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_invalid_no_colon PASSED [ 47%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_invalid_whitespace PASSED [ 47%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_invalid_whitespace_vtab PASSED [ 47%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_lf_only PASSED [ 47%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_multiple_content_length PASSED [ 47%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_multiple_values PASSED [ 47%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_multiple_values_extra_space PASSED [ 47%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_multiple_values_header_folded PASSED [ 48%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_multiple_values_header_folded_multiple PASSED [ 48%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_no_cr_in_headerplus PASSED [ 48%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_short_values PASSED [ 48%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_transfer_encoding_invalid PASSED [ 48%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_transfer_encoding_invalid_multiple PASSED [ 48%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_transfer_encoding_invalid_unicode PASSED [ 48%] tests/test_parser.py::TestHTTPRequestParser::test_parse_header_transfer_encoding_invalid_whitespace PASSED [ 48%] tests/test_parser.py::TestHTTPRequestParser::test_received_already_completed PASSED [ 49%] tests/test_parser.py::TestHTTPRequestParser::test_received_bad_host_header PASSED [ 49%] tests/test_parser.py::TestHTTPRequestParser::test_received_bad_transfer_encoding PASSED [ 49%] tests/test_parser.py::TestHTTPRequestParser::test_received_body_too_large PASSED [ 49%] tests/test_parser.py::TestHTTPRequestParser::test_received_chunked_completed_sets_content_length PASSED [ 49%] tests/test_parser.py::TestHTTPRequestParser::test_received_cl_too_large PASSED [ 49%] tests/test_parser.py::TestHTTPRequestParser::test_received_error_from_parser PASSED [ 49%] tests/test_parser.py::TestHTTPRequestParser::test_received_get_no_headers PASSED [ 50%] tests/test_parser.py::TestHTTPRequestParser::test_received_headers_too_large PASSED [ 50%] tests/test_parser.py::TestHTTPRequestParser::test_received_no_doublecr PASSED [ 50%] tests/test_parser.py::TestHTTPRequestParser::test_received_nonsense_nothing PASSED [ 50%] tests/test_parser.py::Test_split_uri::test_split_uri_path PASSED [ 50%] tests/test_parser.py::Test_split_uri::test_split_uri_path_query PASSED [ 50%] tests/test_parser.py::Test_split_uri::test_split_uri_path_query_fragment PASSED [ 50%] tests/test_parser.py::Test_split_uri::test_split_uri_unicode_error_raises_parsing_error PASSED [ 50%] tests/test_parser.py::Test_split_uri::test_split_uri_unquoting_needed PASSED [ 51%] tests/test_parser.py::Test_split_uri::test_split_uri_unquoting_unneeded PASSED [ 51%] tests/test_parser.py::Test_split_uri::test_split_url_https PASSED [ 51%] tests/test_parser.py::Test_split_uri::test_split_url_with_fragment PASSED [ 51%] tests/test_parser.py::Test_split_uri::test_split_url_with_query PASSED [ 51%] tests/test_parser.py::Test_split_uri::test_split_url_with_query_empty PASSED [ 51%] tests/test_parser.py::Test_get_header_lines::test_get_header_lines PASSED [ 51%] tests/test_parser.py::Test_get_header_lines::test_get_header_lines_folded PASSED [ 51%] tests/test_parser.py::Test_get_header_lines::test_get_header_lines_malformed PASSED [ 52%] tests/test_parser.py::Test_get_header_lines::test_get_header_lines_tabbed PASSED [ 52%] tests/test_parser.py::Test_crack_first_line::test_crack_first_line_lowercase_method PASSED [ 52%] tests/test_parser.py::Test_crack_first_line::test_crack_first_line_matchok PASSED [ 52%] tests/test_parser.py::Test_crack_first_line::test_crack_first_line_missing_version PASSED [ 52%] tests/test_parser.py::Test_crack_first_line::test_crack_first_line_nomatch PASSED [ 52%] tests/test_parser.py::TestHTTPRequestParserIntegration::testComplexGET PASSED [ 52%] tests/test_parser.py::TestHTTPRequestParserIntegration::testDuplicateHeaders PASSED [ 52%] tests/test_parser.py::TestHTTPRequestParserIntegration::testProxyGET PASSED [ 53%] tests/test_parser.py::TestHTTPRequestParserIntegration::testSimpleGET PASSED [ 53%] tests/test_parser.py::TestHTTPRequestParserIntegration::testSpoofedHeadersDropped PASSED [ 53%] tests/test_parser.py::Test_unquote_bytes_to_wsgi::test_highorder PASSED [ 53%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_get_environment_clears_headers_if_untrusted_proxy PASSED [ 53%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_get_environment_contains_all_headers_including_untrusted PASSED [ 53%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_get_environment_contains_only_trusted_headers PASSED [ 53%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_get_environment_values_w_bogus_scheme_override PASSED [ 53%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_get_environment_values_w_scheme_override_trusted PASSED [ 54%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_get_environment_values_w_scheme_override_untrusted PASSED [ 54%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_get_environment_warning_other_proxy_headers PASSED [ 54%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded PASSED [ 54%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_empty_pair PASSED [ 54%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_for_bad_quote PASSED [ 54%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_host_bad_quote PASSED [ 54%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_multiple_proxies PASSED [ 55%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_multiple_proxies_minimal PASSED [ 55%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_multiple_proxies_trust_only_two PASSED [ 55%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_pair_no_equals PASSED [ 55%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_pair_token_whitespace PASSED [ 55%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_pair_value_whitespace PASSED [ 55%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_port_wrong_proto_port_443 PASSED [ 55%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_port_wrong_proto_port_80 PASSED [ 55%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_forwarded_warning_unknown_token PASSED [ 56%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_multiple_x_forwarded_port PASSED [ 56%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_multiple_x_forwarded_proto PASSED [ 56%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_no_valid_proxy_headers PASSED [ 56%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_proxy_headers_forwarded_for PASSED [ 56%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_proxy_headers_forwarded_for_v6_missing_brackets PASSED [ 56%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_proxy_headers_forwarded_host_multiple_with_forwarded_port PASSED [ 56%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_proxy_headers_forwarded_host_multiple_with_forwarded_port_limit_one_trusted PASSED [ 56%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_proxy_headers_forwarded_host_with_forwarded_port PASSED [ 57%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_proxy_headers_forwarded_host_with_port PASSED [ 57%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_proxy_headers_forwarded_host_without_port PASSED [ 57%] tests/test_proxy_headers.py::TestProxyHeadersMiddleware::test_parse_proxy_headers_forwared_for_multiple PASSED [ 57%] tests/test_receiver.py::TestFixedStreamReceiver::test___len__ PASSED [ 57%] tests/test_receiver.py::TestFixedStreamReceiver::test_getbuf PASSED [ 57%] tests/test_receiver.py::TestFixedStreamReceiver::test_getfile PASSED [ 57%] tests/test_receiver.py::TestFixedStreamReceiver::test_received_remain_gt_datalen PASSED [ 57%] tests/test_receiver.py::TestFixedStreamReceiver::test_received_remain_lt_1 PASSED [ 58%] tests/test_receiver.py::TestFixedStreamReceiver::test_received_remain_lte_datalen PASSED [ 58%] tests/test_receiver.py::TestChunkedReceiver::test___len__ PASSED [ 58%] tests/test_receiver.py::TestChunkedReceiver::test_alreadycompleted PASSED [ 58%] tests/test_receiver.py::TestChunkedReceiver::test_getbuf PASSED [ 58%] tests/test_receiver.py::TestChunkedReceiver::test_getfile PASSED [ 58%] tests/test_receiver.py::TestChunkedReceiver::test_received_chunk_is_properly_terminated PASSED [ 58%] tests/test_receiver.py::TestChunkedReceiver::test_received_chunk_not_properly_terminated PASSED [ 58%] tests/test_receiver.py::TestChunkedReceiver::test_received_control_line_finished_all_chunks_not_received PASSED [ 59%] tests/test_receiver.py::TestChunkedReceiver::test_received_control_line_finished_all_chunks_received PASSED [ 59%] tests/test_receiver.py::TestChunkedReceiver::test_received_control_line_finished_garbage_in_input PASSED [ 59%] tests/test_receiver.py::TestChunkedReceiver::test_received_control_line_notfinished PASSED [ 59%] tests/test_receiver.py::TestChunkedReceiver::test_received_multiple_chunks PASSED [ 59%] tests/test_receiver.py::TestChunkedReceiver::test_received_multiple_chunks_split PASSED [ 59%] tests/test_receiver.py::TestChunkedReceiver::test_received_remain_gt_zero PASSED [ 59%] tests/test_receiver.py::TestChunkedReceiver::test_received_trailer_finished PASSED [ 60%] tests/test_receiver.py::TestChunkedReceiver::test_received_trailer_not_finished PASSED [ 60%] tests/test_receiver.py::TestChunkedReceiver::test_received_trailer_startswith_crlf PASSED [ 60%] tests/test_receiver.py::TestChunkedReceiver::test_received_trailer_startswith_lf PASSED [ 60%] tests/test_regression.py::test_suite PASSED [ 60%] tests/test_runner.py::Test_match::test_bad_module PASSED [ 60%] tests/test_runner.py::Test_match::test_empty PASSED [ 60%] tests/test_runner.py::Test_match::test_module_obj PASSED [ 60%] tests/test_runner.py::Test_match::test_module_only PASSED [ 61%] tests/test_runner.py::Test_resolve::test_bad_module PASSED [ 61%] tests/test_runner.py::Test_resolve::test_complex_happy_path PASSED [ 61%] tests/test_runner.py::Test_resolve::test_nonexistent_function PASSED [ 61%] tests/test_runner.py::Test_resolve::test_simple_happy_path PASSED [ 61%] tests/test_runner.py::Test_run::test_bad PASSED [ 61%] tests/test_runner.py::Test_run::test_bad_app_module PASSED [ 61%] tests/test_runner.py::Test_run::test_bad_app_object PASSED [ 61%] tests/test_runner.py::Test_run::test_bad_apps_app PASSED [ 62%] tests/test_runner.py::Test_run::test_cwd_added_to_path PASSED [ 62%] tests/test_runner.py::Test_run::test_help PASSED [ 62%] tests/test_runner.py::Test_run::test_multiple_apps_app PASSED [ 62%] tests/test_runner.py::Test_run::test_no_app PASSED [ 62%] tests/test_runner.py::Test_run::test_returned_app PASSED [ 62%] tests/test_runner.py::Test_run::test_simple_call PASSED [ 62%] tests/test_runner.py::Test_helper::test_exception_logging PASSED [ 62%] tests/test_server.py::TestWSGIServer::test_add_task PASSED [ 63%] tests/test_server.py::TestWSGIServer::test_backward_compatibility PASSED [ 63%] tests/test_server.py::TestWSGIServer::test_create_with_multiple_tcp_sockets PASSED [ 63%] tests/test_server.py::TestWSGIServer::test_create_with_one_socket_handle_accept_noerror PASSED [ 63%] tests/test_server.py::TestWSGIServer::test_create_with_one_socket_should_not_bind_socket PASSED [ 63%] tests/test_server.py::TestWSGIServer::test_create_with_one_tcp_socket PASSED [ 63%] tests/test_server.py::TestWSGIServer::test_ctor_app_is_None PASSED [ 63%] tests/test_server.py::TestWSGIServer::test_ctor_makes_dispatcher PASSED [ 64%] tests/test_server.py::TestWSGIServer::test_ctor_start_false PASSED [ 64%] tests/test_server.py::TestWSGIServer::test_ctor_start_true PASSED [ 64%] tests/test_server.py::TestWSGIServer::test_get_server_multi PASSED [ 64%] tests/test_server.py::TestWSGIServer::test_handle_accept_noerror PASSED [ 64%] tests/test_server.py::TestWSGIServer::test_handle_accept_other_socket_error PASSED [ 64%] tests/test_server.py::TestWSGIServer::test_handle_accept_wouldblock_socket_error PASSED [ 64%] tests/test_server.py::TestWSGIServer::test_handle_connect PASSED [ 64%] tests/test_server.py::TestWSGIServer::test_handle_read PASSED [ 65%] tests/test_server.py::TestWSGIServer::test_maintenance PASSED [ 65%] tests/test_server.py::TestWSGIServer::test_pull_trigger PASSED [ 65%] tests/test_server.py::TestWSGIServer::test_readable_maintenance_false PASSED [ 65%] tests/test_server.py::TestWSGIServer::test_readable_maintenance_true PASSED [ 65%] tests/test_server.py::TestWSGIServer::test_readable_maplen_gt_connection_limit PASSED [ 65%] tests/test_server.py::TestWSGIServer::test_readable_maplen_lt_connection_limit PASSED [ 65%] tests/test_server.py::TestWSGIServer::test_readable_maplen_toggles_connection_overflow PASSED [ 65%] tests/test_server.py::TestWSGIServer::test_readable_not_accepting PASSED [ 66%] tests/test_server.py::TestWSGIServer::test_run PASSED [ 66%] tests/test_server.py::TestWSGIServer::test_run_base_server PASSED [ 66%] tests/test_server.py::TestWSGIServer::test_writable PASSED [ 66%] tests/test_server.py::TestUnixWSGIServer::test_create_with_unix_socket PASSED [ 66%] tests/test_server.py::TestUnixWSGIServer::test_creates_new_sockinfo PASSED [ 66%] tests/test_server.py::TestUnixWSGIServer::test_handle_accept PASSED [ 66%] tests/test_server.py::TestUnixWSGIServer::test_unix PASSED [ 66%] tests/test_task.py::TestThreadedTaskDispatcher::test_add_task_with_all_busy_threads PASSED [ 67%] tests/test_task.py::TestThreadedTaskDispatcher::test_add_task_with_idle_threads PASSED [ 67%] tests/test_task.py::TestThreadedTaskDispatcher::test_handler_thread_task_raises PASSED [ 67%] tests/test_task.py::TestThreadedTaskDispatcher::test_set_thread_count_decrease PASSED [ 67%] tests/test_task.py::TestThreadedTaskDispatcher::test_set_thread_count_increase PASSED [ 67%] tests/test_task.py::TestThreadedTaskDispatcher::test_set_thread_count_increase_with_existing PASSED [ 67%] tests/test_task.py::TestThreadedTaskDispatcher::test_set_thread_count_same PASSED [ 67%] tests/test_task.py::TestThreadedTaskDispatcher::test_shutdown_no_cancel_pending PASSED [ 67%] tests/test_task.py::TestThreadedTaskDispatcher::test_shutdown_no_threads PASSED [ 68%] tests/test_task.py::TestThreadedTaskDispatcher::test_shutdown_one_thread PASSED [ 68%] tests/test_task.py::TestTask::test_build_response_header_bad_http_version PASSED [ 68%] tests/test_task.py::TestTask::test_build_response_header_date_exists PASSED [ 68%] tests/test_task.py::TestTask::test_build_response_header_preexisting_content_length PASSED [ 68%] tests/test_task.py::TestTask::test_build_response_header_v10_keepalive_no_content_length PASSED [ 68%] tests/test_task.py::TestTask::test_build_response_header_v10_keepalive_with_content_length PASSED [ 68%] tests/test_task.py::TestTask::test_build_response_header_v11_1xx_no_content_length_or_transfer_encoding PASSED [ 69%] tests/test_task.py::TestTask::test_build_response_header_v11_200_no_content_length PASSED [ 69%] tests/test_task.py::TestTask::test_build_response_header_v11_204_no_content_length_or_transfer_encoding PASSED [ 69%] tests/test_task.py::TestTask::test_build_response_header_v11_304_no_content_length_or_transfer_encoding PASSED [ 69%] tests/test_task.py::TestTask::test_build_response_header_v11_connection_closed_by_client PASSED [ 69%] tests/test_task.py::TestTask::test_build_response_header_v11_connection_keepalive_by_client PASSED [ 69%] tests/test_task.py::TestTask::test_build_response_header_via_added PASSED [ 69%] tests/test_task.py::TestTask::test_ctor_version_not_in_known PASSED [ 69%] tests/test_task.py::TestTask::test_finish_chunked_response PASSED [ 70%] tests/test_task.py::TestTask::test_finish_didnt_write_header PASSED [ 70%] tests/test_task.py::TestTask::test_finish_wrote_header PASSED [ 70%] tests/test_task.py::TestTask::test_remove_content_length_header PASSED [ 70%] tests/test_task.py::TestTask::test_remove_content_length_header_with_other PASSED [ 70%] tests/test_task.py::TestTask::test_start PASSED [ 70%] tests/test_task.py::TestTask::test_write_chunked_response PASSED [ 70%] tests/test_task.py::TestTask::test_write_header_not_written PASSED [ 70%] tests/test_task.py::TestTask::test_write_preexisting_content_length PASSED [ 71%] tests/test_task.py::TestTask::test_write_start_response_uncalled PASSED [ 71%] tests/test_task.py::TestTask::test_write_wrote_header PASSED [ 71%] tests/test_task.py::TestWSGITask::test_execute_app_calls_start_response_twice_wo_exc_info PASSED [ 71%] tests/test_task.py::TestWSGITask::test_execute_app_calls_start_response_w_exc_info_complete PASSED [ 71%] tests/test_task.py::TestWSGITask::test_execute_app_calls_start_response_w_excinf_headers_unwritten PASSED [ 71%] tests/test_task.py::TestWSGITask::test_execute_app_calls_start_response_w_excinf_headers_written PASSED [ 71%] tests/test_task.py::TestWSGITask::test_execute_app_calls_write PASSED [ 71%] tests/test_task.py::TestWSGITask::test_execute_app_do_not_warn_on_head PASSED [ 72%] tests/test_task.py::TestWSGITask::test_execute_app_returns_closeable PASSED [ 72%] tests/test_task.py::TestWSGITask::test_execute_app_returns_empty_chunk_as_first PASSED [ 72%] tests/test_task.py::TestWSGITask::test_execute_app_returns_filewrapper_prepare_returns_True PASSED [ 72%] tests/test_task.py::TestWSGITask::test_execute_app_returns_filewrapper_prepare_returns_True_badcl PASSED [ 72%] tests/test_task.py::TestWSGITask::test_execute_app_returns_filewrapper_prepare_returns_True_nocl PASSED [ 72%] tests/test_task.py::TestWSGITask::test_execute_app_returns_len1_chunk_without_cl PASSED [ 72%] tests/test_task.py::TestWSGITask::test_execute_app_returns_too_few_bytes PASSED [ 73%] tests/test_task.py::TestWSGITask::test_execute_app_returns_too_many_bytes PASSED [ 73%] tests/test_task.py::TestWSGITask::test_execute_app_without_body_204_logged PASSED [ 73%] tests/test_task.py::TestWSGITask::test_execute_app_without_body_304_logged PASSED [ 73%] tests/test_task.py::TestWSGITask::test_execute_bad_header_key PASSED [ 73%] tests/test_task.py::TestWSGITask::test_execute_bad_header_name_control_characters PASSED [ 73%] tests/test_task.py::TestWSGITask::test_execute_bad_header_value PASSED [ 73%] tests/test_task.py::TestWSGITask::test_execute_bad_header_value_control_characters PASSED [ 73%] tests/test_task.py::TestWSGITask::test_execute_bad_status_control_characters PASSED [ 74%] tests/test_task.py::TestWSGITask::test_execute_bad_status_value PASSED [ 74%] tests/test_task.py::TestWSGITask::test_execute_hopbyhop_header PASSED [ 74%] tests/test_task.py::TestWSGITask::test_execute_with_content_length_header PASSED [ 74%] tests/test_task.py::TestWSGITask::test_get_environ_with_url_prefix_empty_path PASSED [ 74%] tests/test_task.py::TestWSGITask::test_get_environ_with_url_prefix_hit PASSED [ 74%] tests/test_task.py::TestWSGITask::test_get_environ_with_url_prefix_miss PASSED [ 74%] tests/test_task.py::TestWSGITask::test_get_environment_already_cached PASSED [ 74%] tests/test_task.py::TestWSGITask::test_get_environment_no_query PASSED [ 75%] tests/test_task.py::TestWSGITask::test_get_environment_path_empty PASSED [ 75%] tests/test_task.py::TestWSGITask::test_get_environment_path_startswith_more_than_one_slash PASSED [ 75%] tests/test_task.py::TestWSGITask::test_get_environment_values PASSED [ 75%] tests/test_task.py::TestWSGITask::test_get_environment_with_query PASSED [ 75%] tests/test_task.py::TestWSGITask::test_preserve_header_value_order PASSED [ 75%] tests/test_task.py::TestWSGITask::test_service PASSED [ 75%] tests/test_task.py::TestWSGITask::test_service_server_raises_socket_error PASSED [ 75%] tests/test_task.py::TestErrorTask::test_execute_http_10 PASSED [ 76%] tests/test_task.py::TestErrorTask::test_execute_http_11 PASSED [ 76%] tests/test_task.py::TestErrorTask::test_execute_http_11_close PASSED [ 76%] tests/test_task.py::TestErrorTask::test_execute_http_11_keep_forces_close PASSED [ 76%] tests/test_trigger.py::Test_trigger::test__close PASSED [ 76%] tests/test_trigger.py::Test_trigger::test__physical_pull PASSED [ 76%] tests/test_trigger.py::Test_trigger::test_close PASSED [ 76%] tests/test_trigger.py::Test_trigger::test_handle_close PASSED [ 76%] tests/test_trigger.py::Test_trigger::test_handle_connect PASSED [ 77%] tests/test_trigger.py::Test_trigger::test_handle_read_no_socket_error PASSED [ 77%] tests/test_trigger.py::Test_trigger::test_handle_read_socket_error PASSED [ 77%] tests/test_trigger.py::Test_trigger::test_handle_read_thunk PASSED [ 77%] tests/test_trigger.py::Test_trigger::test_handle_read_thunk_error PASSED [ 77%] tests/test_trigger.py::Test_trigger::test_pull_trigger_nothunk PASSED [ 77%] tests/test_trigger.py::Test_trigger::test_pull_trigger_thunk PASSED [ 77%] tests/test_trigger.py::Test_trigger::test_readable PASSED [ 78%] tests/test_trigger.py::Test_trigger::test_writable PASSED [ 78%] tests/test_utilities.py::Test_parse_http_date::test_neither PASSED [ 78%] tests/test_utilities.py::Test_parse_http_date::test_rfc822 PASSED [ 78%] tests/test_utilities.py::Test_parse_http_date::test_rfc850 PASSED [ 78%] tests/test_utilities.py::Test_build_http_date::test_rountdrip PASSED [ 78%] tests/test_utilities.py::Test_unpack_rfc850::test_it PASSED [ 78%] tests/test_utilities.py::Test_unpack_rfc_822::test_it PASSED [ 78%] tests/test_utilities.py::Test_find_double_newline::test_double_crfl PASSED [ 79%] tests/test_utilities.py::Test_find_double_newline::test_double_linefeed PASSED [ 79%] tests/test_utilities.py::Test_find_double_newline::test_empty PASSED [ 79%] tests/test_utilities.py::Test_find_double_newline::test_mixed PASSED [ 79%] tests/test_utilities.py::Test_find_double_newline::test_one_crlf PASSED [ 79%] tests/test_utilities.py::Test_find_double_newline::test_one_linefeed PASSED [ 79%] tests/test_utilities.py::TestBadRequest::test_it PASSED [ 79%] tests/test_utilities.py::Test_undquote::test_empty PASSED [ 79%] tests/test_utilities.py::Test_undquote::test_invalid_quoting PASSED [ 80%] tests/test_utilities.py::Test_undquote::test_invalid_quoting_single_quote PASSED [ 80%] tests/test_utilities.py::Test_undquote::test_quoted PASSED [ 80%] tests/test_utilities.py::Test_undquote::test_quoted_backslash_htab PASSED [ 80%] tests/test_utilities.py::Test_undquote::test_quoted_backslash_invalid PASSED [ 80%] tests/test_utilities.py::Test_undquote::test_quoted_backslash_quote PASSED [ 80%] tests/test_utilities.py::Test_undquote::test_quoted_htab PASSED [ 80%] tests/test_utilities.py::Test_undquote::test_unquoted PASSED [ 80%] tests/test_wasyncore.py::HelperFunctionTests::test_closeall PASSED [ 81%] tests/test_wasyncore.py::HelperFunctionTests::test_closeall_default PASSED [ 81%] tests/test_wasyncore.py::HelperFunctionTests::test_compact_traceback PASSED [ 81%] tests/test_wasyncore.py::HelperFunctionTests::test_readwrite PASSED [ 81%] tests/test_wasyncore.py::HelperFunctionTests::test_readwriteexc PASSED [ 81%] tests/test_wasyncore.py::DispatcherTests::test_basic PASSED [ 81%] tests/test_wasyncore.py::DispatcherTests::test_log PASSED [ 81%] tests/test_wasyncore.py::DispatcherTests::test_log_info PASSED [ 82%] tests/test_wasyncore.py::DispatcherTests::test_repr PASSED [ 82%] tests/test_wasyncore.py::DispatcherTests::test_strerror PASSED [ 82%] tests/test_wasyncore.py::DispatcherTests::test_unhandled PASSED [ 82%] tests/test_wasyncore.py::DispatcherWithSendTests::test_send FAILED [ 82%] tests/test_wasyncore.py::FileWrapperTest::test_close_twice PASSED [ 82%] tests/test_wasyncore.py::FileWrapperTest::test_dispatcher PASSED [ 82%] tests/test_wasyncore.py::FileWrapperTest::test_recv PASSED [ 82%] tests/test_wasyncore.py::FileWrapperTest::test_resource_warning PASSED [ 83%] tests/test_wasyncore.py::FileWrapperTest::test_send PASSED [ 83%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_bind PASSED [ 83%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_connection_attributes PASSED [ 83%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_create_socket PASSED [ 83%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_handle_accept PASSED [ 83%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_handle_accepted PASSED [ 83%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_handle_close PASSED [ 83%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_handle_close_after_conn_broken PASSED [ 84%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_handle_connect PASSED [ 84%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_handle_error PASSED [ 84%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_handle_expt PASSED [ 84%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_handle_read PASSED [ 84%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_handle_write PASSED [ 84%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_quick_connect PASSED [ 84%] tests/test_wasyncore.py::TestAPI_UseIPv4Select::test_set_reuse_addr PASSED [ 84%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_bind PASSED [ 85%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_connection_attributes PASSED [ 85%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_create_socket PASSED [ 85%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_handle_accept PASSED [ 85%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_handle_accepted PASSED [ 85%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_handle_close PASSED [ 85%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_handle_close_after_conn_broken PASSED [ 85%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_handle_connect PASSED [ 85%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_handle_error PASSED [ 86%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_handle_expt PASSED [ 86%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_handle_read PASSED [ 86%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_handle_write PASSED [ 86%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_quick_connect PASSED [ 86%] tests/test_wasyncore.py::TestAPI_UseIPv4Poll::test_set_reuse_addr PASSED [ 86%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_bind PASSED [ 86%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_connection_attributes PASSED [ 87%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_create_socket PASSED [ 87%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_handle_accept PASSED [ 87%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_handle_accepted PASSED [ 87%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_handle_close PASSED [ 87%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_handle_close_after_conn_broken PASSED [ 87%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_handle_connect PASSED [ 87%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_handle_error PASSED [ 87%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_handle_expt PASSED [ 88%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_handle_read PASSED [ 88%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_handle_write PASSED [ 88%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_quick_connect PASSED [ 88%] tests/test_wasyncore.py::TestAPI_UseIPv6Select::test_set_reuse_addr PASSED [ 88%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_bind PASSED [ 88%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_connection_attributes PASSED [ 88%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_create_socket PASSED [ 88%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_handle_accept PASSED [ 89%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_handle_accepted PASSED [ 89%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_handle_close PASSED [ 89%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_handle_close_after_conn_broken PASSED [ 89%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_handle_connect PASSED [ 89%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_handle_error PASSED [ 89%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_handle_expt PASSED [ 89%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_handle_read PASSED [ 89%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_handle_write PASSED [ 90%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_quick_connect PASSED [ 90%] tests/test_wasyncore.py::TestAPI_UseIPv6Poll::test_set_reuse_addr PASSED [ 90%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_bind SKIPPED (Not applicable to AF_UNIX sockets.) [ 90%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_connection_attributes PASSED [ 90%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_create_socket PASSED [ 90%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_handle_accept PASSED [ 90%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_handle_accepted PASSED [ 91%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_handle_close PASSED [ 91%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_handle_close_after_conn_broken PASSED [ 91%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_handle_connect PASSED [ 91%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_handle_error PASSED [ 91%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_handle_expt SKIPPED (Not applicable to AF_UNIX sockets.) [ 91%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_handle_read PASSED [ 91%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_handle_write PASSED [ 91%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_quick_connect SKIPPED (test specific to AF_INET and AF...) [ 92%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsSelect::test_set_reuse_addr SKIPPED (Not applicable to AF_UNIX sock...) [ 92%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_bind SKIPPED (Not applicable to AF_UNIX sockets.) [ 92%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_connection_attributes PASSED [ 92%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_create_socket PASSED [ 92%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_handle_accept PASSED [ 92%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_handle_accepted PASSED [ 92%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_handle_close PASSED [ 92%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_handle_close_after_conn_broken PASSED [ 93%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_handle_connect PASSED [ 93%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_handle_error PASSED [ 93%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_handle_expt SKIPPED (Not applicable to AF_UNIX sockets.) [ 93%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_handle_read PASSED [ 93%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_handle_write PASSED [ 93%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_quick_connect SKIPPED (test specific to AF_INET and AF_I...) [ 93%] tests/test_wasyncore.py::TestAPI_UseUnixSocketsPoll::test_set_reuse_addr SKIPPED (Not applicable to AF_UNIX sockets.) [ 93%] tests/test_wasyncore.py::Test__strerror::test_gardenpath PASSED [ 94%] tests/test_wasyncore.py::Test__strerror::test_unknown PASSED [ 94%] tests/test_wasyncore.py::Test_read::test_gardenpath PASSED [ 94%] tests/test_wasyncore.py::Test_read::test_non_reraised PASSED [ 94%] tests/test_wasyncore.py::Test_read::test_reraised PASSED [ 94%] tests/test_wasyncore.py::Test_write::test_gardenpath PASSED [ 94%] tests/test_wasyncore.py::Test_write::test_non_reraised PASSED [ 94%] tests/test_wasyncore.py::Test_write::test_reraised PASSED [ 94%] tests/test_wasyncore.py::Test__exception::test_gardenpath PASSED [ 95%] tests/test_wasyncore.py::Test__exception::test_non_reraised PASSED [ 95%] tests/test_wasyncore.py::Test__exception::test_reraised PASSED [ 95%] tests/test_wasyncore.py::Test_readwrite::test_exception_in_reraised PASSED [ 95%] tests/test_wasyncore.py::Test_readwrite::test_exception_not_in_reraised PASSED [ 95%] tests/test_wasyncore.py::Test_readwrite::test_handle_close PASSED [ 95%] tests/test_wasyncore.py::Test_readwrite::test_handle_expt_event PASSED [ 95%] tests/test_wasyncore.py::Test_readwrite::test_handle_read_event PASSED [ 96%] tests/test_wasyncore.py::Test_readwrite::test_handle_write_event PASSED [ 96%] tests/test_wasyncore.py::Test_readwrite::test_socketerror_in_disconnected PASSED [ 96%] tests/test_wasyncore.py::Test_readwrite::test_socketerror_not_in_disconnected PASSED [ 96%] tests/test_wasyncore.py::Test_poll::test_nothing_writable_nothing_readable_but_map_not_empty PASSED [ 96%] tests/test_wasyncore.py::Test_poll::test_select_raises_EINTR PASSED [ 96%] tests/test_wasyncore.py::Test_poll::test_select_raises_non_EINTR PASSED [ 96%] tests/test_wasyncore.py::Test_poll2::test_select_raises_EINTR PASSED [ 96%] tests/test_wasyncore.py::Test_poll2::test_select_raises_non_EINTR PASSED [ 97%] tests/test_wasyncore.py::Test_dispatcher::test___repr__accepting PASSED [ 97%] tests/test_wasyncore.py::Test_dispatcher::test___repr__connected PASSED [ 97%] tests/test_wasyncore.py::Test_dispatcher::test_accept_raise_TypeError PASSED [ 97%] tests/test_wasyncore.py::Test_dispatcher::test_accept_raise_unexpected_socketerror PASSED [ 97%] tests/test_wasyncore.py::Test_dispatcher::test_close_raises_unknown_socket_error PASSED [ 97%] tests/test_wasyncore.py::Test_dispatcher::test_connect_raise_socket_error PASSED [ 97%] tests/test_wasyncore.py::Test_dispatcher::test_handle_accepted PASSED [ 97%] tests/test_wasyncore.py::Test_dispatcher::test_handle_close PASSED [ 98%] tests/test_wasyncore.py::Test_dispatcher::test_handle_connect_event_getsockopt_returns_error PASSED [ 98%] tests/test_wasyncore.py::Test_dispatcher::test_handle_error_gardenpath PASSED [ 98%] tests/test_wasyncore.py::Test_dispatcher::test_handle_expt_event_getsockopt_returns_error PASSED [ 98%] tests/test_wasyncore.py::Test_dispatcher::test_handle_read_event_not_accepting_not_connected_connecting PASSED [ 98%] tests/test_wasyncore.py::Test_dispatcher::test_handle_write_event_while_accepting PASSED [ 98%] tests/test_wasyncore.py::Test_dispatcher::test_recv_raises_disconnect PASSED [ 98%] tests/test_wasyncore.py::Test_dispatcher::test_send_raise_EWOULDBLOCK PASSED [ 98%] tests/test_wasyncore.py::Test_dispatcher::test_send_raise_unexpected_socketerror PASSED [ 99%] tests/test_wasyncore.py::Test_dispatcher::test_set_reuse_addr_with_socketerror PASSED [ 99%] tests/test_wasyncore.py::Test_dispatcher::test_unexpected_getpeername_exc PASSED [ 99%] tests/test_wasyncore.py::Test_dispatcher_with_send::test_writable PASSED [ 99%] tests/test_wasyncore.py::Test_close_all::test_reraised_exc_on_close PASSED [ 99%] tests/test_wasyncore.py::Test_close_all::test_socketerror_on_close_ebadf PASSED [ 99%] tests/test_wasyncore.py::Test_close_all::test_socketerror_on_close_non_ebadf PASSED [ 99%] tests/test_wasyncore.py::Test_close_all::test_unknown_exc_on_close PASSED [100%] ========================================================== FAILURES ========================================================== _____________________________________________ DispatcherWithSendTests.test_send ______________________________________________ self = @reap_threads def test_send(self): evt = threading.Event() sock = socket.socket() sock.settimeout(3) port = bind_port(sock) cap = BytesIO() args = (evt, cap, sock) t = threading.Thread(target=capture_server, args=args) t.start() try: # wait a little longer for the server to initialize (it sometimes # refuses connections on slow machines without this wait) time.sleep(0.2) data = b"Suppose there isn't a 16-ton weight?" d = dispatcherwithsend_noread() d.create_socket() d.connect((HOST, port)) # give time for socket to connect time.sleep(0.1) d.send(data) d.send(data) d.send(b"\n") n = 1000 while d.out_buffer and n > 0: # pragma: no cover asyncore.poll() n -= 1 evt.wait() > self.assertEqual(cap.getvalue(), data * 2) E AssertionError: b'' != b"Suppose there isn't a 16-ton weight?Suppose there isn't a 16-ton weight?" args = (, <_io.BytesIO object at 0x7f30ff245ef0>, ) cap = <_io.BytesIO object at 0x7f30ff245ef0> d = data = b"Suppose there isn't a 16-ton weight?" evt = n = 0 port = 44317 self = sock = t = tests/test_wasyncore.py:696: AssertionError ====================================================== warnings summary ====================================================== tests/test_adjustments.py: 15 warnings tests/test_parser.py: 47 warnings tests/test_server.py: 30 warnings /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress/adjustments.py:449: DeprecationWarning: In future versions of Waitress clear_untrusted_proxy_headers will be set to True by default. You may opt-out by setting this value to False, or opt-in explicitly by setting this to True. warnings.warn( tests/test_adjustments.py::TestAdjustments::test_goodvars /var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0-python3_8/lib/waitress/adjustments.py:318: DeprecationWarning: send_bytes will be removed in a future release warnings.warn( -- Docs: https://docs.pytest.org/en/stable/warnings.html ================================================== short test summary info =================================================== SKIPPED [2] tests/test_wasyncore.py:1080: Not applicable to AF_UNIX sockets. SKIPPED [2] tests/test_wasyncore.py:996: Not applicable to AF_UNIX sockets. SKIPPED [2] tests/test_wasyncore.py:1117: test specific to AF_INET and AF_INET6 SKIPPED [2] tests/test_wasyncore.py:1094: Not applicable to AF_UNIX sockets. FAILED tests/test_wasyncore.py::DispatcherWithSendTests::test_send - AssertionError: b'' != b"Suppose there isn't a 16-ton ... =================================== 1 failed, 769 passed, 8 skipped, 93 warnings in 14.48s =================================== * ERROR: dev-python/waitress-2.0.0::gentoo failed (test phase): * pytest failed with python3.8 * * Call stack: * ebuild.sh, line 125: Called src_test * environment, line 2803: Called distutils-r1_src_test * environment, line 1198: Called _distutils-r1_run_foreach_impl 'python_test' * environment, line 453: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' * environment, line 2478: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' * environment, line 1990: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' * environment, line 1988: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' * environment, line 755: Called distutils-r1_run_phase 'python_test' * environment, line 1137: Called python_test * environment, line 2762: Called distutils-r1_python_test * environment, line 1094: Called epytest * environment, line 1511: Called die * The specific snippet of code: * "${@}" || die -n "pytest failed with ${EPYTHON}"; * * If you need support, post the output of `emerge --info '=dev-python/waitress-2.0.0::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-python/waitress-2.0.0::gentoo'`. * The complete build log is located at '/var/log/portage/dev-python:waitress-2.0.0:20210410-221052.log'. * For convenience, a symlink to the build log is located at '/var/tmp/portage/dev-python/waitress-2.0.0/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-python/waitress-2.0.0/temp/environment'. * Working directory: '/var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0' * S: '/var/tmp/portage/dev-python/waitress-2.0.0/work/waitress-2.0.0'