diff options
| author | Ruairidh MacLeod <5160559+rkm@users.noreply.github.com> | 2020-05-12 14:23:26 +0100 |
|---|---|---|
| committer | Anthony Sottile <asottile@umich.edu> | 2020-05-13 13:25:51 -0700 |
| commit | 45573570cf706f8490cd631ee6f6a58bc41f8130 (patch) | |
| tree | b4f42b855dfd87a0d4a0f4e6f6ab306da6ccc805 /tests | |
| parent | 666be736e0a8632c217997201ef1117babf47c75 (diff) | |
| download | flake8-45573570cf706f8490cd631ee6f6a58bc41f8130.tar.gz | |
Parse --jobs as a custom argparse type. Fixes #567
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/unit/test_checker_manager.py | 3 | ||||
| -rw-r--r-- | tests/unit/test_option_manager.py | 30 |
2 files changed, 32 insertions, 1 deletions
diff --git a/tests/unit/test_checker_manager.py b/tests/unit/test_checker_manager.py index 1d7e547..d3e7e61 100644 --- a/tests/unit/test_checker_manager.py +++ b/tests/unit/test_checker_manager.py @@ -5,13 +5,14 @@ import mock import pytest from flake8 import checker +from flake8.main.options import JobsArgument def style_guide_mock(): """Create a mock StyleGuide object.""" return mock.MagicMock(**{ 'options.diff': False, - 'options.jobs': '4', + 'options.jobs': JobsArgument("4"), }) diff --git a/tests/unit/test_option_manager.py b/tests/unit/test_option_manager.py index f2ee4f9..3a63db9 100644 --- a/tests/unit/test_option_manager.py +++ b/tests/unit/test_option_manager.py @@ -6,6 +6,7 @@ import mock import pytest from flake8 import utils +from flake8.main.options import JobsArgument from flake8.options import manager TEST_VERSION = '3.0.0b1' @@ -343,3 +344,32 @@ def test_optmanager_group(optmanager, capsys): out, err = capsys.readouterr() output = out + err assert '\ngroupname:\n' in output + + +@pytest.mark.parametrize( + ("s", "is_auto", "n_jobs"), + ( + ("auto", True, -1), + ("4", False, 4), + ), +) +def test_parse_valid_jobs_argument(s, is_auto, n_jobs): + """Test that --jobs properly parses valid arguments.""" + jobs_opt = JobsArgument(s) + assert is_auto == jobs_opt.is_auto + assert n_jobs == jobs_opt.n_jobs + + +def test_parse_invalid_jobs_argument(optmanager, capsys): + """Test that --jobs properly rejects invalid arguments.""" + namespace = argparse.Namespace() + optmanager.add_option("--jobs", type=JobsArgument) + with pytest.raises(SystemExit): + optmanager.parse_args(["--jobs=foo"], namespace) + out, err = capsys.readouterr() + output = out + err + expected = ( + "\nflake8: error: argument --jobs: " + "'foo' must be 'auto' or an integer.\n" + ) + assert expected in output |
