From 7c7cac916f383f51027f64c3190d796e8949cef0 Mon Sep 17 00:00:00 2001 From: Christopher Pickering Date: Tue, 16 Nov 2021 11:28:35 +0100 Subject: [PATCH] added rule H029, closes #125 --- docs/djlint/changelog.rst | 2 ++ docs/djlint/rules.rst | 3 ++- src/djlint/rules.yaml | 5 +++++ tests/test_linter.py | 15 +++++++++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/docs/djlint/changelog.rst b/docs/djlint/changelog.rst index 00d45ea..33b5fef 100644 --- a/docs/djlint/changelog.rst +++ b/docs/djlint/changelog.rst @@ -4,6 +4,8 @@ Changelog next_release ------------ - Added rule T027 to check for unclosed in template syntax +- Added rule T028 to check for missing spaceless tags in attributes +- Added rule H029 to check for lowercase form method 0.5.9a ------ diff --git a/docs/djlint/rules.rst b/docs/djlint/rules.rst index f9c8ce2..081ff5b 100644 --- a/docs/djlint/rules.rst +++ b/docs/djlint/rules.rst @@ -67,7 +67,8 @@ Codes +--------+-------------------------------------------------------------------------+ | T028 | Consider using spaceless tags inside attribute values. | +--------+-------------------------------------------------------------------------+ - +| H029 | Consider using lowercase form method values. | ++--------+-------------------------------------------------------------------------+ Adding Rules diff --git a/src/djlint/rules.yaml b/src/djlint/rules.yaml index c668221..7bf6f7b 100644 --- a/src/djlint/rules.yaml +++ b/src/djlint/rules.yaml @@ -205,3 +205,8 @@ patterns: - <(?:/?(?:\w+)\b(?:\"[^\"]*\"|'[^']*'|{[^}]*}|[^'\">{}/])*=([\"'])(?:(?!\1).)*?({%|{{)[^-]) - <(?:/?(?:\w+)\b(?:\"[^\"]*\"|'[^']*'|{[^}]*}|[^'\">{}/])*=([\"'])(?:(?!\1).)*?[^-](%}|}})) +- rule: + name: H029 + message: Consider using lowercase form method values. + patterns: + - <[fF][oO][rR][mM]\b(?:\"[^\"]*\"|'[^']*'|{[^}]*}|[^'\">{}/])*([mM][eE][tT][hH][oO][dD])=(([\"'])[a-zA-Z]*?[A-Z][a-zA-Z]*?\3) diff --git a/tests/test_linter.py b/tests/test_linter.py index 7e6d894..2b8c8ee 100644 --- a/tests/test_linter.py +++ b/tests/test_linter.py @@ -483,6 +483,21 @@ def test_T028(runner: CliRunner, tmp_file: TextIO) -> None: assert "T028" not in result.output +def test_H029(runner: CliRunner, tmp_file: TextIO) -> None: + write_to_file(tmp_file.name, b'
') + result = runner.invoke(djlint, [tmp_file.name]) + assert result.exit_code == 1 + assert "H029" in result.output + + write_to_file(tmp_file.name, b'') + result = runner.invoke(djlint, [tmp_file.name]) + assert "H029" not in result.output + + write_to_file(tmp_file.name, b'') + result = runner.invoke(djlint, [tmp_file.name]) + assert "H029" not in result.output + + def test_rules_not_matched_in_ignored_block( runner: CliRunner, tmp_file: TextIO ) -> None: