diff options
Diffstat (limited to 'tools/lint/test/test_manifest_toml.py')
-rw-r--r-- | tools/lint/test/test_manifest_toml.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tools/lint/test/test_manifest_toml.py b/tools/lint/test/test_manifest_toml.py new file mode 100644 index 0000000000..f205a1cd1f --- /dev/null +++ b/tools/lint/test/test_manifest_toml.py @@ -0,0 +1,78 @@ +# 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 mozunit + +LINTER = "test-manifest-toml" +fixed = 0 + + +def test_valid(lint, paths): + results = lint(paths("valid.toml")) + assert len(results) == 0 + + +def test_invalid(lint, paths): + results = lint(paths("invalid.toml")) + assert len(results) == 1 + assert results[0].message == "The manifest is not valid TOML." + + +def test_no_default(lint, paths): + """Test verifying [DEFAULT] section.""" + results = lint(paths("no-default.toml")) + assert len(results) == 1 + assert results[0].message == "The manifest does not start with a [DEFAULT] section." + + +def test_no_default_fix(lint, paths, create_temp_file): + """Test fixing missing [DEFAULT] section.""" + contents = "# this Manifest has no DEFAULT section\n" + path = create_temp_file(contents, "no-default.toml") + results = lint([path], fix=True) + assert len(results) == 1 + assert results[0].message == "The manifest does not start with a [DEFAULT] section." + assert fixed == 1 + + +def test_non_double_quote_sections(lint, paths): + """Test verifying [DEFAULT] section.""" + results = lint(paths("non-double-quote-sections.toml")) + assert len(results) == 2 + assert results[0].message.startswith("The section name must be double quoted:") + + +def test_unsorted(lint, paths): + """Test sections in alpha order.""" + results = lint(paths("unsorted.toml")) + assert len(results) == 1 + assert results[0].message == "The manifest sections are not in alphabetical order." + + +def test_comment_section(lint, paths): + """Test for commented sections.""" + results = lint(paths("comment-section.toml")) + assert len(results) == 2 + assert results[0].message.startswith( + "Use 'disabled = \"<reason>\"' to disable a test instead of a comment:" + ) + + +def test_skip_if_not_array(lint, paths): + """Test for non-array skip-if value.""" + results = lint(paths("skip-if-not-array.toml")) + assert len(results) == 1 + assert results[0].message.startswith("Value for conditional must be an array:") + + +def test_skip_if_explicit_or(lint, paths): + """Test for explicit || in skip-if.""" + results = lint(paths("skip-if-explicit-or.toml")) + assert len(results) == 1 + assert results[0].message.startswith( + "Value for conditional must not include explicit ||, instead put on multiple lines:" + ) + + +if __name__ == "__main__": + mozunit.main() |