1 py$(PYV): remove tox env folder $(@D)/.tox/py$(PYV)
2 py$(PYV): commands[0]> python -m pytest --cov=gunicorn
3 ============================= test session starts ==============================
4 platform sunos5 -- Python $(PYTHON_VERSION).X -- $(@D)/.tox/py$(PYV)/bin/python
5 cachedir: .tox/py$(PYV)/.pytest_cache
7 configfile: pyproject.toml
9 collecting ... collected 259 items
11 tests/test_arbiter.py::test_arbiter_stop_closes_listeners PASSED
12 tests/test_arbiter.py::test_arbiter_stop_child_does_not_unlink_listeners PASSED
13 tests/test_arbiter.py::test_arbiter_stop_parent_does_not_unlink_listeners PASSED
14 tests/test_arbiter.py::test_arbiter_stop_does_not_unlink_systemd_listeners PASSED
15 tests/test_arbiter.py::test_arbiter_stop_does_not_unlink_when_using_reuse_port PASSED
16 tests/test_arbiter.py::test_arbiter_reexec_passing_systemd_sockets PASSED
17 tests/test_arbiter.py::test_arbiter_reexec_passing_gunicorn_sockets PASSED
18 tests/test_arbiter.py::test_arbiter_reexec_limit_parent PASSED
19 tests/test_arbiter.py::test_arbiter_reexec_limit_child PASSED
20 tests/test_arbiter.py::test_arbiter_calls_worker_exit PASSED
21 tests/test_arbiter.py::test_arbiter_reap_workers PASSED
22 tests/test_arbiter.py::test_env_vars_available_during_preload PASSED
23 tests/test_config.py::test_worker_class PASSED
24 tests/test_config.py::test_defaults PASSED
25 tests/test_config.py::test_property_access PASSED
26 tests/test_config.py::test_bool_validation PASSED
27 tests/test_config.py::test_pos_int_validation PASSED
28 tests/test_config.py::test_str_validation PASSED
29 tests/test_config.py::test_str_to_addr_list_validation PASSED
30 tests/test_config.py::test_str_to_list PASSED
31 tests/test_config.py::test_callable_validation PASSED
32 tests/test_config.py::test_reload_engine_validation PASSED
33 tests/test_config.py::test_callable_validation_for_string PASSED
34 tests/test_config.py::test_cmd_line PASSED
35 tests/test_config.py::test_cmd_line_invalid_setting PASSED
36 tests/test_config.py::test_app_config PASSED
37 tests/test_config.py::test_load_config PASSED
38 tests/test_config.py::test_load_config_explicit_file PASSED
39 tests/test_config.py::test_load_config_module PASSED
40 tests/test_config.py::test_cli_overrides_config PASSED
41 tests/test_config.py::test_cli_overrides_config_module PASSED
42 tests/test_config.py::test_default_config_file PASSED
43 tests/test_config.py::test_post_request PASSED
44 tests/test_config.py::test_nworkers_changed PASSED
45 tests/test_config.py::test_statsd_host PASSED
46 tests/test_config.py::test_statsd_host_with_unix_as_hostname PASSED
47 tests/test_config.py::test_statsd_changes_logger PASSED
48 tests/test_config.py::test_always_use_configured_logger PASSED
49 tests/test_config.py::test_load_enviroment_variables_config PASSED
50 tests/test_config.py::test_config_file_environment_variable PASSED
51 tests/test_config.py::test_invalid_enviroment_variables_config PASSED
52 tests/test_config.py::test_cli_overrides_enviroment_variables_module PASSED
53 tests/test_config.py::test_wsgi_app_config[options0-app:app] PASSED
54 tests/test_config.py::test_wsgi_app_config[options1-app:app] PASSED
55 tests/test_config.py::test_wsgi_app_config[options2-app:app] PASSED
56 tests/test_config.py::test_wsgi_app_config[options3-app1:app1] PASSED
57 tests/test_config.py::test_non_wsgi_app[options0] PASSED
58 tests/test_config.py::test_non_wsgi_app[options1] PASSED
59 tests/test_config.py::test_reload[options0-False] PASSED
60 tests/test_config.py::test_reload[options1-True] PASSED
61 tests/test_config.py::test_reload[options2-True] PASSED
62 tests/test_config.py::test_reload[options3-True] PASSED
63 tests/test_config.py::test_umask_config[options0-0] PASSED
64 tests/test_config.py::test_umask_config[options1-0] PASSED
65 tests/test_config.py::test_umask_config[options2-0] PASSED
66 tests/test_config.py::test_umask_config[options3-255] PASSED
67 tests/test_config.py::test_umask_config[options4-18] PASSED
68 tests/test_config.py::test_bind_fd PASSED
69 tests/test_config.py::test_repr PASSED
70 tests/test_config.py::test_str PASSED
71 tests/test_http.py::test_method_pattern PASSED
72 tests/test_http.py::test_readline_empty_body PASSED
73 tests/test_http.py::test_readline_zero_size PASSED
74 tests/test_http.py::test_readline_new_line_before_size PASSED
75 tests/test_http.py::test_readline_new_line_after_size PASSED
76 tests/test_http.py::test_readline_no_new_line PASSED
77 tests/test_http.py::test_readline_buffer_loaded PASSED
78 tests/test_http.py::test_readline_buffer_loaded_with_size PASSED
79 tests/test_http.py::test_http_header_encoding PASSED
80 tests/test_http.py::test_http_invalid_response_header PASSED
81 tests/test_http.py::test_unreader_read_when_size_is_none PASSED
82 tests/test_http.py::test_unreader_unread PASSED
83 tests/test_http.py::test_unreader_read_zero_size PASSED
84 tests/test_http.py::test_unreader_read_with_nonzero_size PASSED
85 tests/test_http.py::test_unreader_raises_excpetion_on_invalid_size PASSED
86 tests/test_http.py::test_iter_unreader_chunk PASSED
87 tests/test_http.py::test_socket_unreader_chunk PASSED
88 tests/test_http.py::test_length_reader_read PASSED
89 tests/test_http.py::test_length_reader_read_invalid_size PASSED
90 tests/test_http.py::test_eof_reader_read PASSED
91 tests/test_http.py::test_eof_reader_read_invalid_size PASSED
92 tests/test_http.py::test_invalid_http_version_error PASSED
93 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/003c.http] PASSED
94 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/003.http] PASSED
95 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/nonascii_04.http] PASSED
96 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/version_02.http] PASSED
97 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_12.http] PASSED
98 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/007.http] PASSED
99 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_06.http] PASSED
100 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/040.http] PASSED
101 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_03.http] PASSED
102 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/022.http] PASSED
103 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/013.http] PASSED
104 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_02.http] PASSED
105 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/017.http] PASSED
106 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_07.http] PASSED
107 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_02.http] PASSED
108 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/023.http] PASSED
109 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/012.http] PASSED
110 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_06.http] PASSED
111 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_03.http] PASSED
112 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/016.http] PASSED
113 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/pp_02.http] PASSED
114 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/003b.http] PASSED
115 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/invalid_field_value_01.http] PASSED
116 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/002.http] PASSED
117 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/obs_fold_01.http] PASSED
118 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_13.http] PASSED
119 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/006.http] PASSED
120 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/nonascii_01.http] PASSED
121 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_05.http] PASSED
122 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/008.http] PASSED
123 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/021.http] PASSED
124 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/010.http] PASSED
125 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_04.http] PASSED
126 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_01.http] PASSED
127 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/014.http] PASSED
128 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/018.http] PASSED
129 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_11.http] PASSED
130 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/version_01.http] PASSED
131 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/nonascii_03.http] PASSED
132 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/004.http] PASSED
133 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_09.http] PASSED
134 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/019.http] PASSED
135 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/001.http] PASSED
136 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_10.http] PASSED
137 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/nonascii_02.http] PASSED
138 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/005.http] PASSED
139 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_08.http] PASSED
140 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/chunked_04.http] PASSED
141 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_01.http] PASSED
142 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/009.http] PASSED
143 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/020.http] PASSED
144 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/011.http] PASSED
145 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/prefix_05.http] PASSED
146 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/015.http] PASSED
147 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/pp_01.http] PASSED
148 tests/test_invalid_requests.py::test_http_parser[$(@D)/tests/requests/invalid/024.http] PASSED
149 tests/test_logger.py::test_atoms_defaults PASSED
150 tests/test_logger.py::test_atoms_zero_bytes PASSED
151 tests/test_logger.py::test_get_username_from_basic_auth_header[Basic YnJrMHY6] PASSED
152 tests/test_logger.py::test_get_username_from_basic_auth_header[basic YnJrMHY6] PASSED
153 tests/test_logger.py::test_get_username_from_basic_auth_header[BASIC YnJrMHY6] PASSED
154 tests/test_logger.py::test_get_username_handles_malformed_basic_auth_header PASSED
155 tests/test_pidfile.py::test_validate_no_file PASSED
156 tests/test_pidfile.py::test_validate_file_pid_exists PASSED
157 tests/test_pidfile.py::test_validate_file_pid_malformed PASSED
158 tests/test_pidfile.py::test_validate_file_pid_exists_kill_exception PASSED
159 tests/test_pidfile.py::test_validate_file_pid_does_not_exist PASSED
160 tests/test_reload.py::test_reload_on_syntax_error PASSED
161 tests/test_reload.py::test_start_reloader_after_load_wsgi PASSED
162 tests/test_sock.py::test_create_sockets_unix_bytes PASSED
163 tests/test_sock.py::test_create_sockets_unix_strings PASSED
164 tests/test_sock.py::test_socket_close PASSED
165 tests/test_sock.py::test_unix_socket_close_unlink PASSED
166 tests/test_sock.py::test_unix_socket_close_without_unlink PASSED
167 tests/test_ssl.py::test_keyfile PASSED
168 tests/test_ssl.py::test_certfile PASSED
169 tests/test_ssl.py::test_cacerts PASSED
170 tests/test_ssl.py::test_suppress_ragged_eofs PASSED
171 tests/test_ssl.py::test_do_handshake_on_connect PASSED
172 tests/test_ssl.py::test_ciphers PASSED
173 tests/test_statsd.py::test_statsd_fail PASSED
174 tests/test_statsd.py::test_statsd_host_initialization PASSED
175 tests/test_statsd.py::test_dogstatsd_tags PASSED
176 tests/test_statsd.py::test_instrument PASSED
177 tests/test_statsd.py::test_prefix PASSED
178 tests/test_statsd.py::test_prefix_no_dot PASSED
179 tests/test_statsd.py::test_prefix_multiple_dots PASSED
180 tests/test_statsd.py::test_prefix_nested PASSED
181 tests/test_systemd.py::test_listen_fds_ignores_wrong_pid[True] PASSED
182 tests/test_systemd.py::test_listen_fds_ignores_wrong_pid[False] PASSED
183 tests/test_systemd.py::test_listen_fds_returns_count[True] PASSED
184 tests/test_systemd.py::test_listen_fds_returns_count[False] PASSED
185 tests/test_util.py::test_parse_address[unix://var/run/test.sock-var/run/test.sock] PASSED
186 tests/test_util.py::test_parse_address[unix:/var/run/test.sock-/var/run/test.sock] PASSED
187 tests/test_util.py::test_parse_address[tcp://localhost-expected2] PASSED
188 tests/test_util.py::test_parse_address[tcp://localhost:5000-expected3] PASSED
189 tests/test_util.py::test_parse_address[-expected4] PASSED
190 tests/test_util.py::test_parse_address[[::1]:8000-expected5] PASSED
191 tests/test_util.py::test_parse_address[[::1]:5000-expected6] PASSED
192 tests/test_util.py::test_parse_address[[::1]-expected7] PASSED
193 tests/test_util.py::test_parse_address[localhost:8000-expected8] PASSED
194 tests/test_util.py::test_parse_address[127.0.0.1:8000-expected9] PASSED
195 tests/test_util.py::test_parse_address[localhost-expected10] PASSED
196 tests/test_util.py::test_parse_address[fd://33-33] PASSED
197 tests/test_util.py::test_parse_address_invalid PASSED
198 tests/test_util.py::test_parse_fd_invalid PASSED
199 tests/test_util.py::test_http_date PASSED
200 tests/test_util.py::test_is_ipv6[1200:0000:AB00:1234:0000:2552:7777:1313-True] PASSED
201 tests/test_util.py::test_is_ipv6[1200::AB00:1234::2552:7777:1313-False] PASSED
202 tests/test_util.py::test_is_ipv6[21DA:D3:0:2F3B:2AA:FF:FE28:9C5A-True] PASSED
203 tests/test_util.py::test_is_ipv6[1200:0000:AB00:1234:O000:2552:7777:1313-False] PASSED
204 tests/test_util.py::test_warn PASSED
205 tests/test_util.py::test_import_app_good[support] PASSED
206 tests/test_util.py::test_import_app_good[support:app] PASSED
207 tests/test_util.py::test_import_app_good[support:create_app()] PASSED
208 tests/test_util.py::test_import_app_good[support:create_app('Gunicorn', 3)] PASSED
209 tests/test_util.py::test_import_app_good[support:create_app(count=3)] PASSED
210 tests/test_util.py::test_import_app_bad[a:app-ImportError-No module] PASSED
211 tests/test_util.py::test_import_app_bad[support:create_app(-AppImportError-Failed to parse] PASSED
212 tests/test_util.py::test_import_app_bad[support:create.app()-AppImportError-Function reference] PASSED
213 tests/test_util.py::test_import_app_bad[support:create_app(Gunicorn)-AppImportError-literal values] PASSED
214 tests/test_util.py::test_import_app_bad[support:create.app-AppImportError-attribute name] PASSED
215 tests/test_util.py::test_import_app_bad[support:wrong_app-AppImportError-find attribute] PASSED
216 tests/test_util.py::test_import_app_bad[support:error_factory(1)-AppImportError-error_factory() takes] PASSED
217 tests/test_util.py::test_import_app_bad[support:error_factory()-TypeError-inner] PASSED
218 tests/test_util.py::test_import_app_bad[support:none_app-AppImportError-find application object] PASSED
219 tests/test_util.py::test_import_app_bad[support:HOST-AppImportError-callable] PASSED
220 tests/test_util.py::test_import_app_py_ext PASSED
221 tests/test_util.py::test_to_bytestring PASSED
222 tests/test_util.py::test_split_request_uri[https://example.org/a/b?c=1#d-expected0] PASSED
223 tests/test_util.py::test_split_request_uri[a/b?c=1#d-expected1] PASSED
224 tests/test_util.py::test_split_request_uri[/a/b?c=1#d-expected2] PASSED
225 tests/test_util.py::test_split_request_uri[//a/b?c=1#d-expected3] PASSED
226 tests/test_util.py::test_split_request_uri[///a/b?c=1#d-expected4] PASSED
227 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/015.http] PASSED
228 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/024.http] PASSED
229 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/009.http] PASSED
230 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/020.http] PASSED
231 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/011.http] PASSED
232 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/pp_01.http] PASSED
233 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/005.http] PASSED
234 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/031compat.http] PASSED
235 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/028.http] PASSED
236 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/019.http] PASSED
237 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/030.http] PASSED
238 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/040_compat.http] PASSED
239 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/001.http] PASSED
240 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/004.http] PASSED
241 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/029.http] PASSED
242 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/018.http] PASSED
243 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/031.http] PASSED
244 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/014.http] PASSED
245 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/025.http] PASSED
246 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/padding_01.http] PASSED
247 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/008.http] PASSED
248 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/021.http] PASSED
249 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/010.http] PASSED
250 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/100.http] PASSED
251 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/006.http] PASSED
252 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/pp_02.http] PASSED
253 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/002.http] PASSED
254 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/027.http] PASSED
255 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/099.http] PASSED
256 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/031compat2.http] PASSED
257 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/023.http] PASSED
258 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/compat_obs_fold_huge.http] PASSED
259 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/025_line.http] PASSED
260 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/compat_obs_fold.http] PASSED
261 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/012.http] PASSED
262 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/017.http] PASSED
263 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/026.http] PASSED
264 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/040.http] PASSED
265 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/022.http] PASSED
266 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/013.http] PASSED
267 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/007.http] PASSED
268 tests/test_valid_requests.py::test_http_parser[$(@D)/tests/requests/valid/003.http] PASSED
269 tests/workers/test_ggevent.py::test_import PASSED
272 ======== 259 passed ========