summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRuairidh MacLeod <5160559+rkm@users.noreply.github.com>2020-05-12 14:23:26 +0100
committerAnthony Sottile <asottile@umich.edu>2020-05-13 13:25:51 -0700
commit45573570cf706f8490cd631ee6f6a58bc41f8130 (patch)
treeb4f42b855dfd87a0d4a0f4e6f6ab306da6ccc805 /tests
parent666be736e0a8632c217997201ef1117babf47c75 (diff)
downloadflake8-45573570cf706f8490cd631ee6f6a58bc41f8130.tar.gz
Parse --jobs as a custom argparse type. Fixes #567
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/test_checker_manager.py3
-rw-r--r--tests/unit/test_option_manager.py30
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