diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /tools/lint/test/test_flake8.py | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tools/lint/test/test_flake8.py')
-rw-r--r-- | tools/lint/test/test_flake8.py | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/tools/lint/test/test_flake8.py b/tools/lint/test/test_flake8.py new file mode 100644 index 0000000000..66befab4e7 --- /dev/null +++ b/tools/lint/test/test_flake8.py @@ -0,0 +1,109 @@ +import os + +import mozunit + +LINTER = "flake8" + + +def test_lint_single_file(lint, paths): + results = lint(paths("bad.py")) + assert len(results) == 2 + assert results[0].rule == "F401" + assert results[1].rule == "E501" + assert results[1].lineno == 5 + + # run lint again to make sure the previous results aren't counted twice + results = lint(paths("bad.py")) + assert len(results) == 2 + + +def test_lint_custom_config_ignored(lint, paths): + results = lint(paths("custom")) + assert len(results) == 2 + + results = lint(paths("custom/good.py")) + assert len(results) == 2 + + +def test_lint_fix(lint, create_temp_file): + contents = """ +import distutils + +def foobar(): + pass +""".lstrip() + + path = create_temp_file(contents, name="bad.py") + results = lint([path]) + assert len(results) == 2 + + # Make sure the missing blank line is fixed, but the unused import isn't. + results = lint([path], fix=True) + assert len(results) == 1 + + # Also test with a directory + path = os.path.dirname(create_temp_file(contents, name="bad2.py")) + results = lint([path], fix=True) + # There should now be two files with 2 combined errors + assert len(results) == 2 + assert all(r.rule != "E501" for r in results) + + +def test_lint_fix_uses_config(lint, create_temp_file): + contents = """ +foo = ['A list of strings', 'that go over 80 characters', 'to test if autopep8 fixes it'] +""".lstrip() + + path = create_temp_file(contents, name="line_length.py") + lint([path], fix=True) + + # Make sure autopep8 reads the global config under lintargs['root']. If it + # didn't, then the line-length over 80 would get fixed. + with open(path, "r") as fh: + assert fh.read() == contents + + +def test_lint_excluded_file(lint, paths, config): + # 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) + print(results) + 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")) + print(results) + assert len(results) == 0 + + +def test_lint_excluded_file_with_glob(lint, paths, config): + config["exclude"] = paths("ext/*.configure") + + files = paths("ext") + results = lint(files, config) + print(results) + assert len(results) == 0 + + files = paths("ext/bad.configure") + results = lint(files, config) + print(results) + assert len(results) == 0 + + +def test_lint_excluded_file_with_no_filter(lint, paths, config): + results = lint(paths("subdir/exclude"), use_filters=False) + print(results) + assert len(results) == 4 + + +def test_lint_uses_custom_extensions(lint, paths): + assert len(lint(paths("ext"))) == 1 + assert len(lint(paths("ext/bad.configure"))) == 1 + + +if __name__ == "__main__": + mozunit.main() |