mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-15 16:49:52 +00:00
Add a bunch more legacy API tests
This commit is contained in:
parent
8b4f12872e
commit
21a6df725b
2 changed files with 98 additions and 2 deletions
|
|
@ -115,8 +115,9 @@ class StyleGuide(object):
|
||||||
|
|
||||||
def init_report(self, reporter=None):
|
def init_report(self, reporter=None):
|
||||||
"""Set up a formatter for this run of Flake8."""
|
"""Set up a formatter for this run of Flake8."""
|
||||||
if (reporter is not None and
|
if reporter is None:
|
||||||
not issubclass(reporter, formatter.BaseFormatter)):
|
return
|
||||||
|
if not issubclass(reporter, formatter.BaseFormatter):
|
||||||
raise ValueError("Report should be subclass of "
|
raise ValueError("Report should be subclass of "
|
||||||
"flake8.formatter.BaseFormatter.")
|
"flake8.formatter.BaseFormatter.")
|
||||||
self._application.make_formatter(reporter)
|
self._application.make_formatter(reporter)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
"""Tests for Flake8's legacy API."""
|
"""Tests for Flake8's legacy API."""
|
||||||
import mock
|
import mock
|
||||||
|
import pytest
|
||||||
|
|
||||||
from flake8.api import legacy as api
|
from flake8.api import legacy as api
|
||||||
|
from flake8.formatting import base as formatter
|
||||||
|
|
||||||
|
|
||||||
def test_get_style_guide():
|
def test_get_style_guide():
|
||||||
|
|
@ -48,3 +50,96 @@ def test_styleguide_check_files():
|
||||||
app.run_checks.assert_called_once_with(paths)
|
app.run_checks.assert_called_once_with(paths)
|
||||||
app.report_errors.assert_called_once_with()
|
app.report_errors.assert_called_once_with()
|
||||||
assert isinstance(report, api.Report)
|
assert isinstance(report, api.Report)
|
||||||
|
|
||||||
|
|
||||||
|
def test_styleguide_excluded():
|
||||||
|
"""Verify we delegate to our file checker manager.
|
||||||
|
|
||||||
|
We also want to ensure that if we don't specify a parent, is_path_excluded
|
||||||
|
is called exactly once.
|
||||||
|
"""
|
||||||
|
app = mock.Mock()
|
||||||
|
file_checker_manager = app.file_checker_manager = mock.Mock()
|
||||||
|
style_guide = api.StyleGuide(app)
|
||||||
|
|
||||||
|
style_guide.excluded('file.py')
|
||||||
|
file_checker_manager.is_path_excluded.assert_called_once_with('file.py')
|
||||||
|
|
||||||
|
|
||||||
|
def test_styleguide_excluded_with_parent():
|
||||||
|
"""Verify we delegate to our file checker manager.
|
||||||
|
|
||||||
|
When we add the parent argument, we don't check that is_path_excluded was
|
||||||
|
called only once.
|
||||||
|
"""
|
||||||
|
app = mock.Mock()
|
||||||
|
file_checker_manager = app.file_checker_manager = mock.Mock()
|
||||||
|
style_guide = api.StyleGuide(app)
|
||||||
|
|
||||||
|
style_guide.excluded('file.py', 'parent')
|
||||||
|
file_checker_manager.is_path_excluded.call_args == [
|
||||||
|
('file.py',),
|
||||||
|
('parent/file.py',),
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
def test_styleguide_init_report_does_nothing():
|
||||||
|
"""Verify if we use None that we don't call anything."""
|
||||||
|
app = mock.Mock()
|
||||||
|
style_guide = api.StyleGuide(app)
|
||||||
|
style_guide.init_report()
|
||||||
|
assert app.make_formatter.called is False
|
||||||
|
assert app.make_guide.called is False
|
||||||
|
|
||||||
|
|
||||||
|
def test_styleguide_init_report_with_non_subclass():
|
||||||
|
"""Verify we raise a ValueError with non BaseFormatter subclasses."""
|
||||||
|
app = mock.Mock()
|
||||||
|
style_guide = api.StyleGuide(app)
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
style_guide.init_report(object)
|
||||||
|
assert app.make_formatter.called is False
|
||||||
|
assert app.make_guide.called is False
|
||||||
|
|
||||||
|
|
||||||
|
def test_styleguide_init_report():
|
||||||
|
"""Verify we do the right incantation for the Application."""
|
||||||
|
app = mock.Mock(guide='fake')
|
||||||
|
style_guide = api.StyleGuide(app)
|
||||||
|
|
||||||
|
class FakeFormatter(formatter.BaseFormatter):
|
||||||
|
def format(self, *args):
|
||||||
|
pass
|
||||||
|
|
||||||
|
style_guide.init_report(FakeFormatter)
|
||||||
|
app.make_formatter.assert_called_once_with(FakeFormatter)
|
||||||
|
assert app.guide is None
|
||||||
|
app.make_guide.assert_called_once_with()
|
||||||
|
|
||||||
|
|
||||||
|
def test_styleguide_input_file():
|
||||||
|
"""Verify we call StyleGuide.check_files with the filename."""
|
||||||
|
app = mock.Mock()
|
||||||
|
style_guide = api.StyleGuide(app)
|
||||||
|
with mock.patch.object(style_guide, 'check_files') as check_files:
|
||||||
|
style_guide.input_file('file.py')
|
||||||
|
check_files.assert_called_once_with(['file.py'])
|
||||||
|
|
||||||
|
|
||||||
|
def test_report_total_errors():
|
||||||
|
"""Verify total errors is just a proxy attribute."""
|
||||||
|
app = mock.Mock(result_count='Fake count')
|
||||||
|
report = api.Report(app)
|
||||||
|
assert report.total_errors == 'Fake count'
|
||||||
|
|
||||||
|
|
||||||
|
def test_report_get_statistics():
|
||||||
|
"""Verify that we use the statistics object."""
|
||||||
|
stats = mock.Mock()
|
||||||
|
stats.statistics_for.return_value = []
|
||||||
|
style_guide = mock.Mock(stats=stats)
|
||||||
|
app = mock.Mock(guide=style_guide)
|
||||||
|
|
||||||
|
report = api.Report(app)
|
||||||
|
assert report.get_statistics('E') == []
|
||||||
|
stats.statistics_for.assert_called_once_with('E')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue