diff options
| author | Anthony Sottile <asottile@umich.edu> | 2019-02-16 17:28:31 -0800 |
|---|---|---|
| committer | Anthony Sottile <asottile@umich.edu> | 2019-02-17 00:15:00 -0800 |
| commit | e8f43e12431b15e31a265408b6f79955c6da1690 (patch) | |
| tree | ddd3b142a94664169e97f564c24f4e02ca06ab82 /tests | |
| parent | 684ffb3306af89e4092c4598aa9ae4294eb52eb8 (diff) | |
| download | flake8-e8f43e12431b15e31a265408b6f79955c6da1690.tar.gz | |
Speed up flake8 when only 1 filename is passed
~40% improvement over status quo (perf measurements are best-of-5)
### before
```console
$ time flake8 /dev/null
real 0m0.337s
user 0m0.212s
sys 0m0.028s
```
### after
```console
$ time flake8 /dev/null
real 0m0.197s
user 0m0.182s
sys 0m0.012s
```
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/unit/test_checker_manager.py | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/tests/unit/test_checker_manager.py b/tests/unit/test_checker_manager.py index 2b6cb76..50f4084 100644 --- a/tests/unit/test_checker_manager.py +++ b/tests/unit/test_checker_manager.py @@ -16,27 +16,33 @@ def style_guide_mock(**kwargs): return 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 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, [], []) + manager = _parallel_checker_manager() with mock.patch.object(manager, 'run_serial') as serial: manager.run() assert serial.call_count == 1 - assert manager.using_multiprocessing is False @mock.patch('flake8.utils.is_windows', return_value=False) 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 = _parallel_checker_manager() + with mock.patch.object(manager, 'run_serial') as serial: + with pytest.raises(OSError): manager.run() assert serial.call_count == 0 |
