Merge pull request #2611 from segevfiner/patch-1

Early import colorama so that it get's the correct terminal
This commit is contained in:
Bruno Oliveira 2017-07-24 12:37:22 -03:00 committed by GitHub
commit e44284c125
2 changed files with 20 additions and 0 deletions

View File

@ -37,6 +37,7 @@ def pytest_load_initial_conftests(early_config, parser, args):
ns = early_config.known_args_namespace
if ns.capture == "fd":
_py36_windowsconsoleio_workaround()
_colorama_workaround()
_readline_workaround()
pluginmanager = early_config.pluginmanager
capman = CaptureManager(ns.capture)
@ -473,6 +474,24 @@ class DontReadFromInput:
raise AttributeError('redirected stdin has no attribute buffer')
def _colorama_workaround():
"""
Ensure colorama is imported so that it attaches to the correct stdio
handles on Windows.
colorama uses the terminal on import time. So if something does the
first import of colorama while I/O capture is active, colorama will
fail in various ways.
"""
if not sys.platform.startswith('win32'):
return
try:
import colorama # noqa
except ImportError:
pass
def _readline_workaround():
"""
Ensure readline is imported so that it attaches to the correct stdio

1
changelog/2510.bugfix Normal file
View File

@ -0,0 +1 @@
Fix terminal color changing to black on Windows if ``colorama`` is imported in a ``conftest.py`` file.