diff options
Diffstat (limited to 'tools/lint/test/test_isort.py')
-rw-r--r-- | tools/lint/test/test_isort.py | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/tools/lint/test/test_isort.py b/tools/lint/test/test_isort.py new file mode 100644 index 0000000000..180bfbebd0 --- /dev/null +++ b/tools/lint/test/test_isort.py @@ -0,0 +1,114 @@ +# -*- coding: utf-8 -*- + +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +import os + +import mozunit + +LINTER = "isort" +fixed = 0 + + +def test_lint_fix(lint, create_temp_file): + contents = """ +import prova +import collections + + +def foobar(): + c = collections.Counter() + prova.ciao(c) +""".lstrip() + + path = create_temp_file(contents, name="bad.py") + results = lint([path]) + assert len(results) == 1 + assert results[0].level == "error" + + lint([path], fix=True) + assert fixed == 1 + + +def test_lint_excluded_file(lint, paths, config): + # Second file is excluded from .flake8 config. + files = paths("bad.py", "subdir/exclude/bad.py", "subdir/exclude/exclude_subdir") + results = lint(files, config) + assert len(results) == 1 + + # First file is globally excluded, second one is from .flake8 config. + files = paths("bad.py", "subdir/exclude/bad.py", "subdir/exclude/exclude_subdir") + config["exclude"] = paths("bad.py") + results = lint(files, config) + assert len(results) == 0 + + # Make sure excludes also apply when running from a different cwd. + cwd = paths("subdir")[0] + os.chdir(cwd) + + results = lint(paths("subdir/exclude")) + assert len(results) == 0 + + +def test_lint_uses_all_configs(lint, paths, tmpdir): + myself = tmpdir.join("myself") + myself.mkdir() + + flake8_path = tmpdir.join(".flake8") + flake8_path.write( + """ +[flake8] +exclude = +""".lstrip() + ) + + py_path = myself.join("good.py") + py_path.write( + """ +import os + +from myself import something_else +from third_party import something + + +def ciao(): + pass +""".lstrip() + ) + + results = lint([py_path.strpath]) + assert len(results) == 0 + + isort_cfg_path = myself.join(".isort.cfg") + isort_cfg_path.write( + """ +[settings] +known_first_party = myself +""".lstrip() + ) + + results = lint([py_path.strpath], root=tmpdir.strpath) + assert len(results) == 1 + + py_path.write( + """ +import os + +from third_party import something + +from myself import something_else + + +def ciao(): + pass +""".lstrip() + ) + + results = lint([py_path.strpath], root=tmpdir.strpath) + assert len(results) == 0 + + +if __name__ == "__main__": + mozunit.main() |