1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
"""Tests for the Application class."""
from __future__ import annotations
import argparse
import pytest
from flake8.main import application as app
def options(**kwargs):
"""Generate argparse.Namespace for our Application."""
kwargs.setdefault("verbose", 0)
kwargs.setdefault("output_file", None)
kwargs.setdefault("count", False)
kwargs.setdefault("exit_zero", False)
return argparse.Namespace(**kwargs)
@pytest.fixture
def application():
"""Create an application."""
return app.Application()
@pytest.mark.parametrize(
"result_count, catastrophic, exit_zero, value",
[
(0, False, False, 0),
(0, True, False, 1),
(2, False, False, 1),
(2, True, False, 1),
(0, True, True, 1),
(2, False, True, 0),
(2, True, True, 1),
],
)
def test_application_exit_code(
result_count, catastrophic, exit_zero, value, application
):
"""Verify Application.exit_code returns the correct value."""
application.result_count = result_count
application.catastrophic_failure = catastrophic
application.options = options(exit_zero=exit_zero)
assert application.exit_code() == value
|