From eb3d8f57912527d1229b6960509e8e1e7b8d02da Mon Sep 17 00:00:00 2001 From: Ian Cordasco Date: Sun, 3 Apr 2016 14:41:12 -0500 Subject: [PATCH] Add unit tests around serial retries --- tests/unit/test_checker_manager.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/unit/test_checker_manager.py diff --git a/tests/unit/test_checker_manager.py b/tests/unit/test_checker_manager.py new file mode 100644 index 0000000..2d3143e --- /dev/null +++ b/tests/unit/test_checker_manager.py @@ -0,0 +1,27 @@ +"""Tests for the Manager object for FileCheckers.""" +import errno +import mock + +import pytest + +from flake8 import checker + + +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 = mock.Mock() + style_guide.options = mock.Mock(diff=False, jobs='4') + with mock.patch('multiprocessing.Queue', side_effect=err): + manager = checker.Manager(style_guide, [], []) + assert manager.using_multiprocessing is False + + +def test_oserrors_are_reraised(): + """Verify that OSErrors will cause the Manager to fallback to serial.""" + err = OSError(errno.EAGAIN, 'Ominous message') + style_guide = mock.Mock() + style_guide.options = mock.Mock(diff=False, jobs='4') + with mock.patch('multiprocessing.Queue', side_effect=err): + with pytest.raises(OSError): + checker.Manager(style_guide, [], [])