-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a global option to disable colors (pypa#4739)
* Add a global option to disable colors This is a fix for issue pypa#2449 All it does is simply add a global option --no-color Internally it switches ColorizedStreamHandler to StreamHandler if this flag is detected. * Fix lint errors * not sure it makes the code more readable though ... * Fix typo * Choose logging class before assigning * As requested per review * Make the code shorter and easier to follow * Be polite to followers, add commas * Add functional test for the --no-color output * Better detection of windows * Fix fragile tests - can't trust script --quiet * The version found in Travis-CI does not respect this flag It added a prefix line and suffix line found if one does not add the flag --quiet (script from util-linux 2.26.2). As such the out put is: Script started on Fri 27 Oct 2017 07:17:30 AM CEST \x1b[31mCannot uninstall requirement noSuchPackage, not installed\x1b[0m\n Script done on Fri 27 Oct 2017 07:17:31 AM CEST With this change, the test should pass, and is hopefully more stable. * Simplify testing for color or no-color
- Loading branch information
Showing
5 changed files
with
63 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
Add `--no-color` to `pip`. All colored output is disabled | ||
if this flag is detected. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
""" | ||
Test specific for the --no-color option | ||
""" | ||
import os | ||
import platform | ||
import subprocess as sp | ||
import sys | ||
|
||
import pytest | ||
|
||
|
||
@pytest.mark.skipif(sys.platform == 'win32', | ||
reason="does not run on windows") | ||
def test_no_color(script): | ||
|
||
""" | ||
Test uninstalling an existing package - should out put red error | ||
We must use subprocess with the script command, since redirection | ||
in unix platform causes text coloring to disapper. Thus, we can't | ||
use the testing infrastructure that other options has. | ||
""" | ||
|
||
sp.Popen("script --flush --quiet --return /tmp/colored-output.txt" | ||
" --command \"pip uninstall noSuchPackage\"", shell=True, | ||
stdout=sp.PIPE, stderr=sp.PIPE).communicate() | ||
|
||
with open("/tmp/colored-output.txt", "r") as result: | ||
assert "\x1b[31m" in result.read() | ||
|
||
os.unlink("/tmp/colored-output.txt") | ||
|
||
sp.Popen("script --flush --quiet --return /tmp/no-color-output.txt" | ||
" --command \"pip --no-color uninstall noSuchPackage\"", | ||
shell=True, | ||
stdout=sp.PIPE, stderr=sp.PIPE).communicate() | ||
|
||
with open("/tmp/no-color-output.txt", "r") as result: | ||
assert "\x1b[31m" not in result.read() | ||
|
||
os.unlink("/tmp/no-color-output.txt") |