def make_file_checker_manager(self) -> None: """Initialize our FileChecker Manager.""" self.file_checker_manager = checker.Manager( style_guide=self.guide, arguments=self.args, checker_plugins=self.check_plugins, )
def test_oserrors_cause_serial_fall_back(): """Verify that OSErrors will cause the Manager to fallback to serial.""" err = OSError(errno.ENOSPC, 'Ominous message about spaceeeeee') style_guide = style_guide_mock() with mock.patch('multiprocessing.Queue', side_effect=err): manager = checker.Manager(style_guide, [], []) assert manager.using_multiprocessing is False
def test_report_order(results, expected_order): """ Test in which order the results will be reported. It gets a list of reports from the file checkers and verifies that the result will be ordered independent from the original report. """ def count_side_effect(name, sorted_results): """Side effect for the result handler to tell all are reported.""" return len(sorted_results) # To simplify the parameters (and prevent copy & pasting) reuse report # tuples to create the expected result lists from the indexes expected_results = [results[index] for index in expected_order] file_checker = mock.Mock(spec=['results', 'display_name']) file_checker.results = results file_checker.display_name = 'placeholder' style_guide = mock.Mock(spec=['options']) style_guide.processing_file = mock.MagicMock() # Create a placeholder manager without arguments or plugins # Just add one custom file checker which just provides the results manager = checker.Manager(style_guide, [], []) manager.checkers = [file_checker] # _handle_results is the first place which gets the sorted result # Should something non-private be mocked instead? handler = mock.Mock() handler.side_effect = count_side_effect manager._handle_results = handler assert manager.report() == (len(results), len(results)) handler.assert_called_once_with('placeholder', expected_results)
def test_oserrors_are_reraised(): """Verify that OSErrors will cause the Manager to fallback to serial.""" err = OSError(errno.EAGAIN, 'Ominous message') style_guide = style_guide_mock() with mock.patch('multiprocessing.Queue', side_effect=err): with pytest.raises(OSError): checker.Manager(style_guide, [], [])
def _parallel_checker_manager(): """Call Manager.run() and return the number of calls to `run_serial`.""" style_guide = style_guide_mock() manager = checker.Manager(style_guide, [], []) # multiple checkers is needed for parallel mode manager.checkers = [mock.Mock(), mock.Mock()] return manager
def make_file_checker_manager(self): # type: () -> NoneType """Initialize our FileChecker Manager.""" if self.file_checker_manager is None: self.file_checker_manager = checker.Manager( style_guide=self.guide, arguments=self.args, checker_plugins=self.check_plugins, )
def test_oserrors_are_reraised(is_windows): """Verify that unexpected OSErrors will cause the Manager to reraise.""" err = OSError(errno.EAGAIN, 'Ominous message') style_guide = style_guide_mock() with mock.patch('_multiprocessing.SemLock', side_effect=err): with pytest.raises(OSError): manager = checker.Manager(style_guide, [], []) with mock.patch.object(manager, 'run_serial') as serial: manager.run() assert serial.call_count == 0
def test_oserrors_cause_serial_fall_back(): """Verify that OSErrors will cause the Manager to fallback to serial.""" err = OSError(errno.ENOSPC, 'Ominous message about spaceeeeee') style_guide = style_guide_mock() with mock.patch('_multiprocessing.SemLock', side_effect=err): manager = checker.Manager(style_guide, [], []) with mock.patch.object(manager, 'run_serial') as serial: manager.run() assert serial.call_count == 1 assert manager.using_multiprocessing is False
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
def test_make_checkers(): """Verify that we create a list of FileChecker instances.""" style_guide = style_guide_mock() files = ['file1', 'file2'] checkplugins = mock.Mock() checkplugins.to_dictionary.return_value = { 'ast_plugins': [], 'logical_line_plugins': [], 'physical_line_plugins': [], } with mock.patch('flake8.checker.multiprocessing', None): manager = checker.Manager(style_guide, files, checkplugins) 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
def test_make_checkers(): """Verify that we create a list of FileChecker instances.""" style_guide = style_guide_mock() files = ["file1", "file2"] checkplugins = mock.Mock() checkplugins.to_dictionary.return_value = { "ast_plugins": [], "logical_line_plugins": [], "physical_line_plugins": [], } with mock.patch("flake8.checker.multiprocessing", None): manager = checker.Manager(style_guide, files, checkplugins) 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() assert manager._all_checkers for file_checker in manager._all_checkers: assert file_checker.filename in files assert not manager.checkers # the files don't exist
def test_multiprocessing_is_disabled(): """Verify not being able to import multiprocessing forces jobs to 0.""" style_guide = style_guide_mock() with mock.patch('flake8.checker.multiprocessing', None): manager = checker.Manager(style_guide, [], []) assert manager.jobs == 0