mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-05 04:36:52 +00:00
Merge branch 'master' into 'master'
Add --tee option to split report output stream. The `--tee` option allows the linter report to be written to stdout, even though it is being redirected to a file with the` --output-file` option. This is useful if I want to store the report in a separate file for later analysis but also be able to print the output on screen (e.g when running in a CI environment). See merge request !90
This commit is contained in:
commit
a9e15afbf5
5 changed files with 43 additions and 4 deletions
|
|
@ -11,6 +11,7 @@ from flake8.formatting import base
|
|||
def options(**kwargs):
|
||||
"""Create an optparse.Values instance."""
|
||||
kwargs.setdefault('output_file', None)
|
||||
kwargs.setdefault('tee', False)
|
||||
return optparse.Values(kwargs)
|
||||
|
||||
|
||||
|
|
@ -76,15 +77,26 @@ def test_show_source_updates_physical_line_appropriately(line, column):
|
|||
assert pointer.count(' ') == (column - 1)
|
||||
|
||||
|
||||
def test_write_uses_an_output_file():
|
||||
@pytest.mark.parametrize('tee', [False, True])
|
||||
def test_write_uses_an_output_file(tee):
|
||||
"""Verify that we use the output file when it's present."""
|
||||
line = 'Something to write'
|
||||
source = 'source'
|
||||
filemock = mock.Mock()
|
||||
|
||||
formatter = base.BaseFormatter(options())
|
||||
formatter = base.BaseFormatter(options(tee=tee))
|
||||
formatter.output_fd = filemock
|
||||
formatter.write(line, source)
|
||||
|
||||
with mock.patch('flake8.formatting.base.print') as print_func:
|
||||
formatter.write(line, source)
|
||||
if tee:
|
||||
assert print_func.called
|
||||
assert print_func.mock_calls == [
|
||||
mock.call(line),
|
||||
mock.call(source),
|
||||
]
|
||||
else:
|
||||
assert not print_func.called
|
||||
|
||||
assert filemock.write.called is True
|
||||
assert filemock.write.call_count == 2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue