From e32476b6712f0e7b9cf61f7a25c59f14f82bc3dc Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Sat, 7 May 2016 19:07:14 -0500 Subject: [PATCH] Add test for the make_checkers method --- flake8/checker.py | 8 +++++++- tests/unit/test_checker_manager.py | 17 +++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/flake8/checker.py b/flake8/checker.py index 58b2eff..2107fec 100644 --- a/flake8/checker.py +++ b/flake8/checker.py @@ -349,7 +349,13 @@ class FileChecker(object): """Report an error by storing it in the results list.""" if error_code is None: error_code, text = text.split(' ', 1) - physical_line = self.processor.line_for(line_number) + + physical_line = '' + # If we're recovering from a problem in _make_processor, we will not + # have this attribute. + if getattr(self, 'processor', None): + physical_line = self.processor.line_for(line_number) + error = (error_code, line_number, column, text, physical_line) self.results.append(error) return error_code diff --git a/tests/unit/test_checker_manager.py b/tests/unit/test_checker_manager.py index 63eebce..5b91204 100644 --- a/tests/unit/test_checker_manager.py +++ b/tests/unit/test_checker_manager.py @@ -41,3 +41,20 @@ def test_multiprocessing_is_disabled(): with mock.patch('flake8.checker.multiprocessing', None): manager = checker.Manager(style_guide, [], []) assert manager.jobs == 0 + + +def test_make_checkers(): + """Verify that we create a list of FileChecker instances.""" + style_guide = style_guide_mock() + files = ['file1', 'file2'] + with mock.patch('flake8.checker.multiprocessing', None): + manager = checker.Manager(style_guide, files, []) + + with mock.patch('flake8.utils.filenames_from') as filenames_from: + filenames_from.side_effect = [['file1'], ['file2']] + with mock.patch('flake8.utils.fnmatch', return_value=True): + with mock.patch('flake8.processor.FileProcessor'): + manager.make_checkers() + + for file_checker in manager.checkers: + assert file_checker.filename in files