﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
22439	LiveServerTestCase handles error messages inconsistently	Jeremy Bowman		"There are a few different ways that messages can be output when running LiveServerTestCase, and they aren't currently handled consistently:

* Messages that are created via the logging module are handled normally with the exception of console output, which is typically captured by the test runner and shown only for failures.  This is usually what is desired.

* Request status messages are normally sent to stdout by Django's WSGIRequestHandler, but QuietWSGIRequestHandler doesn't output them at all to avoid interfering with the test runner output.  This makes the information unavailable when debugging test failures.

* PEP 333 (WSGI) suggests sending error messages to the wsgi.errors stream, which even for QuietWSGIRequestHandler is currently stderr.  These can interfere with the test runner output.

* Some less serious errors instead get sent to socketserver.BaseServer.handle_error() (inherited by WSGIServer), which since at least Python 2.7 has sent different parts of the output directly to stdout and stderr (there's a comment in the CPython source pointing out that this is less than ideal).  Errors like ""[Errno 32] Broken pipe"" (which sometimes happens when a browser cancels a request before it finishes) can end up here and really clutter the test output.

None of this should go to stderr or stdout when running a LiveServerTestCase, and most (maybe all) of it should be available via the configured logging handlers (probably via the ""django.request"" logger)."	Cleanup/optimization	new	Testing framework	1.6	Normal				Accepted	1	1	0	0	0	0
