Source code

Revision control

Copy as Markdown

Other Tools

# 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 = "glean-parser"
def test_lint_glean_parser_good(lint, paths):
"""Test that good metrics.yaml files pass validation."""
results = lint(paths("good/"))
assert len(results) == 0
def test_lint_glean_parser_bad(lint, paths):
"""Test that bad metrics.yaml files are caught by the linter."""
results = lint(paths("bad/"))
# Should have exactly 2 errors: one for empty data_reviews, one for TODO data_reviews
assert len(results) == 2
# All results should be errors
for r in results:
assert r.level == "error"
assert "bad/metrics.yaml" in r.relpath
# Check that we get the expected error messages
messages = [r.message for r in results]
# Should have errors about empty data reviews
empty_data_review_errors = [msg for msg in messages if "EMPTY_DATAREVIEW" in msg]
assert len(empty_data_review_errors) == 2
# Check specific metric names are mentioned
assert any("empty_data_review" in msg for msg in messages)
assert any("todo_data_review" in msg for msg in messages)
if __name__ == "__main__":
mozunit.main()