diff --git a/src/flake8/main/application.py b/src/flake8/main/application.py index 42e365f..2ceaadb 100644 --- a/src/flake8/main/application.py +++ b/src/flake8/main/application.py @@ -124,7 +124,9 @@ class Application(object): if self.options.count: print(self.result_count) - if not self.options.exit_zero: + if self.options.exit_zero: + raise SystemExit(self.catastrophic_failure) + else: raise SystemExit( (self.result_count > 0) or self.catastrophic_failure ) diff --git a/tests/unit/test_application.py b/tests/unit/test_application.py index 04845a4..51adefb 100644 --- a/tests/unit/test_application.py +++ b/tests/unit/test_application.py @@ -23,29 +23,16 @@ def application(): return app.Application() -@pytest.mark.parametrize( - 'result_count, catastrophic, exit_zero', [ - (0, True, True), - (2, False, True), - (2, True, True), - ] -) -def test_exit_does_not_raise(result_count, catastrophic, exit_zero, - application): - """Verify Application.exit doesn't raise SystemExit.""" - application.result_count = result_count - application.catastrophic_failure = catastrophic - application.options = options(exit_zero=exit_zero) - - assert application.exit() is None - - @pytest.mark.parametrize( 'result_count, catastrophic, exit_zero, value', [ (0, False, False, False), (0, True, False, True), (2, False, False, True), (2, True, False, True), + + (0, True, True, True), + (2, False, True, False), + (2, True, True, True), ] ) def test_exit_does_raise(result_count, catastrophic, exit_zero, value,