diff options
author | Aarni Koskela <akx@iki.fi> | 2019-01-25 16:20:09 +0200 |
---|---|---|
committer | Aarni Koskela <akx@iki.fi> | 2019-01-25 16:59:10 +0200 |
commit | 4ea99189d8c561a535f08e850c13cd1cd0d30fd2 (patch) | |
tree | 5a64329792d8ca47d07e19cb747b07c671391c40 | |
parent | 55cfc6a589b68dff0e8eb01ec31506f9cecad299 (diff) | |
download | isort-4ea99189d8c561a535f08e850c13cd1cd0d30fd2.tar.gz |
Add a test for the command line
-rw-r--r-- | isort/main.py | 8 | ||||
-rw-r--r-- | test_isort.py | 19 |
2 files changed, 23 insertions, 4 deletions
diff --git a/isort/main.py b/isort/main.py index 9356c6a3..28e8974a 100644 --- a/isort/main.py +++ b/isort/main.py @@ -172,7 +172,7 @@ class ISortCommand(setuptools.Command): exit(1) -def create_parser(): +def parse_args(argv=None): parser = argparse.ArgumentParser(description='Sort Python import definitions alphabetically ' 'within logical sections.') inline_args_group = parser.add_mutually_exclusive_group() @@ -287,14 +287,14 @@ def create_parser(): help='Tells isort to apply changes recursively without asking') parser.add_argument('files', nargs='*', help='One or more Python source files that need their imports sorted.') - arguments = {key: value for key, value in vars(parser.parse_args()).items() if value} + arguments = {key: value for key, value in vars(parser.parse_args(argv)).items() if value} if 'dont_order_by_type' in arguments: arguments['order_by_type'] = False return arguments -def main(): - arguments = create_parser() +def main(argv=None): + arguments = parse_args(argv) if arguments.get('show_version'): print(INTRO) return diff --git a/test_isort.py b/test_isort.py index ce889628..3cb3070a 100644 --- a/test_isort.py +++ b/test_isort.py @@ -2596,3 +2596,22 @@ def test_monkey_patched_urllib(): # Previous versions of isort monkey patched urllib which caused unusual # importing for other projects. from urllib import quote # noqa: F401 + + +def test_argument_parsing(): + from isort.main import parse_args + args = parse_args(['-dt', '-t', 'foo', '--skip=bar', 'baz.py']) + assert args['order_by_type'] is False + assert args['force_to_top'] == ['foo'] + assert args['skip'] == ['bar'] + assert args['files'] == ['baz.py'] + + +def test_command_line(tmpdir, capsys): + from isort.main import main + tmpdir.join("file.py").write("import re\nimport os\n\nimport contextlib\n\n\nimport isort") + main(["-rc", str(tmpdir)]) + assert tmpdir.join("file.py").read() == "import contextlib\nimport os\nimport re\n\nimport isort\n" + out, err = capsys.readouterr() + assert not err + assert str(tmpdir.join("file.py")) in out # it informs us about fixing |