py$(PYV): remove tox env folder $(@D)/.tox/py$(PYV) py$(PYV): commands[0]> python -m pytest --cov=gunicorn ============================= test session starts ============================== platform sunos5 -- Python $(PYTHON_VERSION).X -- $(@D)/.tox/py$(PYV)/bin/python cachedir: .tox/py$(PYV)/.pytest_cache rootdir: $(@D) configfile: pyproject.toml testpaths: tests/ collecting ... collected 259 items tests/test_arbiter.py::test_arbiter_stop_closes_listeners PASSED tests/test_arbiter.py::test_arbiter_stop_child_does_not_unlink_listeners PASSED tests/test_arbiter.py::test_arbiter_stop_parent_does_not_unlink_listeners PASSED tests/test_arbiter.py::test_arbiter_stop_does_not_unlink_systemd_listeners PASSED tests/test_arbiter.py::test_arbiter_stop_does_not_unlink_when_using_reuse_port PASSED tests/test_arbiter.py::test_arbiter_reexec_passing_systemd_sockets PASSED tests/test_arbiter.py::test_arbiter_reexec_passing_gunicorn_sockets PASSED tests/test_arbiter.py::test_arbiter_reexec_limit_parent PASSED tests/test_arbiter.py::test_arbiter_reexec_limit_child PASSED tests/test_arbiter.py::test_arbiter_calls_worker_exit PASSED tests/test_arbiter.py::test_arbiter_reap_workers PASSED tests/test_arbiter.py::test_env_vars_available_during_preload PASSED tests/test_config.py::test_worker_class PASSED tests/test_config.py::test_defaults PASSED tests/test_config.py::test_property_access PASSED tests/test_config.py::test_bool_validation PASSED tests/test_config.py::test_pos_int_validation PASSED tests/test_config.py::test_str_validation PASSED tests/test_config.py::test_str_to_addr_list_validation PASSED tests/test_config.py::test_str_to_list PASSED tests/test_config.py::test_callable_validation PASSED tests/test_config.py::test_reload_engine_validation PASSED tests/test_config.py::test_callable_validation_for_string PASSED tests/test_config.py::test_cmd_line PASSED tests/test_config.py::test_cmd_line_invalid_setting PASSED tests/test_config.py::test_app_config PASSED tests/test_config.py::test_load_config PASSED tests/test_config.py::test_load_config_explicit_file PASSED tests/test_config.py::test_load_config_module PASSED tests/test_config.py::test_cli_overrides_config PASSED tests/test_config.py::test_cli_overrides_config_module PASSED tests/test_config.py::test_default_config_file PASSED tests/test_config.py::test_post_request PASSED tests/test_config.py::test_nworkers_changed PASSED tests/test_config.py::test_statsd_host PASSED tests/test_config.py::test_statsd_host_with_unix_as_hostname PASSED tests/test_config.py::test_statsd_changes_logger PASSED tests/test_config.py::test_always_use_configured_logger PASSED tests/test_config.py::test_load_enviroment_variables_config PASSED tests/test_config.py::test_config_file_environment_variable PASSED tests/test_config.py::test_invalid_enviroment_variables_config PASSED tests/test_config.py::test_cli_overrides_enviroment_variables_module PASSED tests/test_config.py::test_wsgi_app_config[options0-app:app] PASSED tests/test_config.py::test_wsgi_app_config[options1-app:app] PASSED tests/test_config.py::test_wsgi_app_config[options2-app:app] PASSED tests/test_config.py::test_wsgi_app_config[options3-app1:app1] PASSED tests/test_config.py::test_non_wsgi_app[options0] PASSED tests/test_config.py::test_non_wsgi_app[options1] PASSED tests/test_config.py::test_reload[options0-False] PASSED tests/test_config.py::test_reload[options1-True] PASSED tests/test_config.py::test_reload[options2-True] PASSED tests/test_config.py::test_reload[options3-True] PASSED tests/test_config.py::test_umask_config[options0-0] PASSED tests/test_config.py::test_umask_config[options1-0] PASSED tests/test_config.py::test_umask_config[options2-0] PASSED tests/test_config.py::test_umask_config[options3-255] PASSED tests/test_config.py::test_umask_config[options4-18] PASSED tests/test_config.py::test_bind_fd PASSED tests/test_config.py::test_repr PASSED tests/test_config.py::test_str PASSED tests/test_http.py::test_method_pattern PASSED tests/test_http.py::test_readline_empty_body PASSED tests/test_http.py::test_readline_zero_size PASSED tests/test_http.py::test_readline_new_line_before_size PASSED tests/test_http.py::test_readline_new_line_after_size PASSED tests/test_http.py::test_readline_no_new_line PASSED tests/test_http.py::test_readline_buffer_loaded PASSED tests/test_http.py::test_readline_buffer_loaded_with_size PASSED tests/test_http.py::test_http_header_encoding PASSED tests/test_http.py::test_http_invalid_response_header PASSED tests/test_http.py::test_unreader_read_when_size_is_none PASSED tests/test_http.py::test_unreader_unread PASSED tests/test_http.py::test_unreader_read_zero_size PASSED tests/test_http.py::test_unreader_read_with_nonzero_size PASSED tests/test_http.py::test_unreader_raises_excpetion_on_invalid_size PASSED tests/test_http.py::test_iter_unreader_chunk PASSED tests/test_http.py::test_socket_unreader_chunk PASSED tests/test_http.py::test_length_reader_read PASSED tests/test_http.py::test_length_reader_read_invalid_size PASSED tests/test_http.py::test_eof_reader_read PASSED tests/test_http.py::test_eof_reader_read_invalid_size PASSED tests/test_http.py::test_invalid_http_version_error PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/003c.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/003.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/nonascii_04.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/version_02.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_12.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/007.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_06.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/040.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_03.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/022.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/013.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_02.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/017.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_07.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_02.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/023.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/012.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_06.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_03.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/016.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/pp_02.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/003b.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/invalid_field_value_01.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/002.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/obs_fold_01.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_13.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/006.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/nonascii_01.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_05.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/008.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/021.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/010.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_04.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_01.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/014.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/018.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_11.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/version_01.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/nonascii_03.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/004.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_09.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/019.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/001.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_10.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/nonascii_02.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/005.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_08.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_04.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_01.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/009.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/020.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/011.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_05.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/015.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/pp_01.http] PASSED tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/024.http] PASSED tests/test_logger.py::test_atoms_defaults PASSED tests/test_logger.py::test_atoms_zero_bytes PASSED tests/test_logger.py::test_get_username_from_basic_auth_header[Basic YnJrMHY6] PASSED tests/test_logger.py::test_get_username_from_basic_auth_header[basic YnJrMHY6] PASSED tests/test_logger.py::test_get_username_from_basic_auth_header[BASIC YnJrMHY6] PASSED tests/test_logger.py::test_get_username_handles_malformed_basic_auth_header PASSED tests/test_pidfile.py::test_validate_no_file PASSED tests/test_pidfile.py::test_validate_file_pid_exists PASSED tests/test_pidfile.py::test_validate_file_pid_malformed PASSED tests/test_pidfile.py::test_validate_file_pid_exists_kill_exception PASSED tests/test_pidfile.py::test_validate_file_pid_does_not_exist PASSED tests/test_reload.py::test_reload_on_syntax_error PASSED tests/test_reload.py::test_start_reloader_after_load_wsgi PASSED tests/test_sock.py::test_create_sockets_unix_bytes PASSED tests/test_sock.py::test_create_sockets_unix_strings PASSED tests/test_sock.py::test_socket_close PASSED tests/test_sock.py::test_unix_socket_close_unlink PASSED tests/test_sock.py::test_unix_socket_close_without_unlink PASSED tests/test_ssl.py::test_keyfile PASSED tests/test_ssl.py::test_certfile PASSED tests/test_ssl.py::test_cacerts PASSED tests/test_ssl.py::test_suppress_ragged_eofs PASSED tests/test_ssl.py::test_do_handshake_on_connect PASSED tests/test_ssl.py::test_ciphers PASSED tests/test_statsd.py::test_statsd_fail PASSED tests/test_statsd.py::test_statsd_host_initialization PASSED tests/test_statsd.py::test_dogstatsd_tags PASSED tests/test_statsd.py::test_instrument PASSED tests/test_statsd.py::test_prefix PASSED tests/test_statsd.py::test_prefix_no_dot PASSED tests/test_statsd.py::test_prefix_multiple_dots PASSED tests/test_statsd.py::test_prefix_nested PASSED tests/test_systemd.py::test_listen_fds_ignores_wrong_pid[True] PASSED tests/test_systemd.py::test_listen_fds_ignores_wrong_pid[False] PASSED tests/test_systemd.py::test_listen_fds_returns_count[True] PASSED tests/test_systemd.py::test_listen_fds_returns_count[False] PASSED tests/test_util.py::test_parse_address[unix://var/run/test.sock-var/run/test.sock] PASSED tests/test_util.py::test_parse_address[unix:/var/run/test.sock-/var/run/test.sock] PASSED tests/test_util.py::test_parse_address[tcp://localhost-expected2] PASSED tests/test_util.py::test_parse_address[tcp://localhost:5000-expected3] PASSED tests/test_util.py::test_parse_address[-expected4] PASSED tests/test_util.py::test_parse_address[[::1]:8000-expected5] PASSED tests/test_util.py::test_parse_address[[::1]:5000-expected6] PASSED tests/test_util.py::test_parse_address[[::1]-expected7] PASSED tests/test_util.py::test_parse_address[localhost:8000-expected8] PASSED tests/test_util.py::test_parse_address[127.0.0.1:8000-expected9] PASSED tests/test_util.py::test_parse_address[localhost-expected10] PASSED tests/test_util.py::test_parse_address[fd://33-33] PASSED tests/test_util.py::test_parse_address_invalid PASSED tests/test_util.py::test_parse_fd_invalid PASSED tests/test_util.py::test_http_date PASSED tests/test_util.py::test_is_ipv6[1200:0000:AB00:1234:0000:2552:7777:1313-True] PASSED tests/test_util.py::test_is_ipv6[1200::AB00:1234::2552:7777:1313-False] PASSED tests/test_util.py::test_is_ipv6[21DA:D3:0:2F3B:2AA:FF:FE28:9C5A-True] PASSED tests/test_util.py::test_is_ipv6[1200:0000:AB00:1234:O000:2552:7777:1313-False] PASSED tests/test_util.py::test_warn PASSED tests/test_util.py::test_import_app_good[support] PASSED tests/test_util.py::test_import_app_good[support:app] PASSED tests/test_util.py::test_import_app_good[support:create_app()] PASSED tests/test_util.py::test_import_app_good[support:create_app('Gunicorn', 3)] PASSED tests/test_util.py::test_import_app_good[support:create_app(count=3)] PASSED tests/test_util.py::test_import_app_bad[a:app-ImportError-No module] PASSED tests/test_util.py::test_import_app_bad[support:create_app(-AppImportError-Failed to parse] PASSED tests/test_util.py::test_import_app_bad[support:create.app()-AppImportError-Function reference] PASSED tests/test_util.py::test_import_app_bad[support:create_app(Gunicorn)-AppImportError-literal values] PASSED tests/test_util.py::test_import_app_bad[support:create.app-AppImportError-attribute name] PASSED tests/test_util.py::test_import_app_bad[support:wrong_app-AppImportError-find attribute] PASSED tests/test_util.py::test_import_app_bad[support:error_factory(1)-AppImportError-error_factory() takes] PASSED tests/test_util.py::test_import_app_bad[support:error_factory()-TypeError-inner] PASSED tests/test_util.py::test_import_app_bad[support:none_app-AppImportError-find application object] PASSED tests/test_util.py::test_import_app_bad[support:HOST-AppImportError-callable] PASSED tests/test_util.py::test_import_app_py_ext PASSED tests/test_util.py::test_to_bytestring PASSED tests/test_util.py::test_split_request_uri[https://example.org/a/b?c=1#d-expected0] PASSED tests/test_util.py::test_split_request_uri[a/b?c=1#d-expected1] PASSED tests/test_util.py::test_split_request_uri[/a/b?c=1#d-expected2] PASSED tests/test_util.py::test_split_request_uri[//a/b?c=1#d-expected3] PASSED tests/test_util.py::test_split_request_uri[///a/b?c=1#d-expected4] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/015.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/024.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/009.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/020.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/011.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/pp_01.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/005.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/031compat.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/028.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/019.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/030.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/040_compat.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/001.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/004.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/029.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/018.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/031.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/014.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/025.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/padding_01.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/008.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/021.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/010.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/100.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/006.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/pp_02.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/002.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/027.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/099.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/031compat2.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/023.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/compat_obs_fold_huge.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/025_line.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/compat_obs_fold.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/012.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/017.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/026.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/040.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/022.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/013.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/007.http] PASSED tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/003.http] PASSED tests/workers/test_ggevent.py::test_import PASSED ======== 259 passed ======== py$(PYV): OK congratulations :)