mirror of
https://github.com/django/django.git
synced 2025-03-31 19:46:42 +00:00
Fixed #23107 -- Made runserver output respect --no-color.
This commit reverts 67d7da5fb9498b811f0168f5df2308ad4743027f. The previous fix changed the environment globally, which meant that any call to `call_command(no_color=True)` prevented further `call_command` with color. This fix still relies on the environment because it's currently the only way to reach WSGIRequestHandler, but it's now limited to the `runserver` command. This seems an acceptable compromise considering `runserver` runs indefinitely. Thanks Tim Graham for the review.
This commit is contained in:
parent
9f1202c166
commit
c34e13e17c
@ -386,7 +386,6 @@ class BaseCommand(object):
|
|||||||
if options.get('no_color'):
|
if options.get('no_color'):
|
||||||
self.style = no_style()
|
self.style = no_style()
|
||||||
self.stderr = OutputWrapper(options.get('stderr', sys.stderr))
|
self.stderr = OutputWrapper(options.get('stderr', sys.stderr))
|
||||||
os.environ[str("DJANGO_COLORS")] = str("nocolor")
|
|
||||||
else:
|
else:
|
||||||
self.stderr = OutputWrapper(options.get('stderr', sys.stderr), self.style.ERROR)
|
self.stderr = OutputWrapper(options.get('stderr', sys.stderr), self.style.ERROR)
|
||||||
|
|
||||||
|
@ -41,6 +41,14 @@ class Command(BaseCommand):
|
|||||||
parser.add_argument('--noreload', action='store_false', dest='use_reloader', default=True,
|
parser.add_argument('--noreload', action='store_false', dest='use_reloader', default=True,
|
||||||
help='Tells Django to NOT use the auto-reloader.')
|
help='Tells Django to NOT use the auto-reloader.')
|
||||||
|
|
||||||
|
def execute(self, *args, **options):
|
||||||
|
if options.get('no_color'):
|
||||||
|
# We rely on the environment because it's currently the only
|
||||||
|
# way to reach WSGIRequestHandler. This seems an acceptable
|
||||||
|
# compromise considering `runserver` runs indefinitely.
|
||||||
|
os.environ[str("DJANGO_COLORS")] = str("nocolor")
|
||||||
|
super(Command, self).execute(*args, **options)
|
||||||
|
|
||||||
def get_handler(self, *args, **options):
|
def get_handler(self, *args, **options):
|
||||||
"""
|
"""
|
||||||
Returns the default WSGI handler for the runner.
|
Returns the default WSGI handler for the runner.
|
||||||
|
@ -1397,7 +1397,6 @@ class CommandTypes(AdminScriptTestCase):
|
|||||||
out = StringIO()
|
out = StringIO()
|
||||||
|
|
||||||
call_command('color_command', no_color=True, stdout=out)
|
call_command('color_command', no_color=True, stdout=out)
|
||||||
self.assertEqual(os.environ.get('DJANGO_COLORS', ''), 'nocolor')
|
|
||||||
self.assertEqual(out.getvalue(), 'BEGIN\n')
|
self.assertEqual(out.getvalue(), 'BEGIN\n')
|
||||||
|
|
||||||
def test_base_command(self):
|
def test_base_command(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user