djlint 1.30.0 → 1.30.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/.coveragerc +0 -9
- package/.editorconfig +0 -21
- package/.flake8 +0 -0
- package/.github/FUNDING.yml +0 -2
- package/.github/ISSUE_TEMPLATE/config.yml +0 -6
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
- package/.github/ISSUE_TEMPLATE/formatter_but_report.md +0 -30
- package/.github/ISSUE_TEMPLATE/linter_bug_report.md +0 -34
- package/.github/ISSUE_TEMPLATE/translation.md +0 -14
- package/.github/config.yml +0 -4
- package/.github/pull_request_template.md +0 -10
- package/.github/workflows/cancel.yml +0 -17
- package/.github/workflows/demo.yml +0 -98
- package/.github/workflows/issues.yml +0 -23
- package/.github/workflows/linkcheck.yaml +0 -21
- package/.github/workflows/lint.yml +0 -25
- package/.github/workflows/release.yml +0 -57
- package/.github/workflows/test.yml +0 -85
- package/.pre-commit-config.yaml +0 -45
- package/.pre-commit-hooks.yaml +0 -71
- package/.prettierignore +0 -7
- package/.prettierrc +0 -11
- package/.releaserc +0 -16
- package/CHANGELOG.md +0 -13
- package/MANIFEST.in +0 -2
- package/build_demo.sh +0 -17
- package/docs/.eleventy.js +0 -425
- package/docs/.eleventyignore +0 -2
- package/docs/.prettierignore +0 -3
- package/docs/.prettierrc +0 -11
- package/docs/package.json +0 -73
- package/docs/readme.md +0 -17
- package/docs/src/_data/configuration.json +0 -646
- package/docs/src/_data/eleventyComputed.js +0 -22
- package/docs/src/_data/i18n/index.js +0 -159
- package/docs/src/_data/js.js +0 -7
- package/docs/src/_data/locales.js +0 -17
- package/docs/src/_data/site.json +0 -8
- package/docs/src/_includes/demo.njk +0 -157
- package/docs/src/_includes/docs_layout.njk +0 -34
- package/docs/src/_includes/foot.njk +0 -26
- package/docs/src/_includes/index.njk +0 -187
- package/docs/src/_includes/languages_layout.njk +0 -11
- package/docs/src/_includes/layout.njk +0 -111
- package/docs/src/_includes/nav.njk +0 -85
- package/docs/src/_utils/minify-html.js +0 -14
- package/docs/src/_utils/rollupper.js +0 -91
- package/docs/src/_utils/scripts.11ty.js +0 -27
- package/docs/src/demo.njk +0 -4
- package/docs/src/docs/best-practices.md +0 -78
- package/docs/src/docs/changelog.md +0 -452
- package/docs/src/docs/configuration.md +0 -145
- package/docs/src/docs/docs.json +0 -4
- package/docs/src/docs/formatter.md +0 -82
- package/docs/src/docs/getting-started.md +0 -126
- package/docs/src/docs/ignoring-code.md +0 -75
- package/docs/src/docs/integrations.md +0 -120
- package/docs/src/docs/languages/angular.md +0 -31
- package/docs/src/docs/languages/django.md +0 -40
- package/docs/src/docs/languages/golang.md +0 -31
- package/docs/src/docs/languages/handlebars.md +0 -31
- package/docs/src/docs/languages/jinja.md +0 -39
- package/docs/src/docs/languages/languages.json +0 -3
- package/docs/src/docs/languages/mustache.md +0 -31
- package/docs/src/docs/languages/nunjucks.md +0 -39
- package/docs/src/docs/languages/twig.md +0 -41
- package/docs/src/docs/linter.md +0 -199
- package/docs/src/fr/demo.njk +0 -4
- package/docs/src/fr/docs/best-practices.md +0 -78
- package/docs/src/fr/docs/changelog.md +0 -452
- package/docs/src/fr/docs/configuration.md +0 -144
- package/docs/src/fr/docs/docs.json +0 -3
- package/docs/src/fr/docs/formatter.md +0 -83
- package/docs/src/fr/docs/getting-started.md +0 -127
- package/docs/src/fr/docs/ignoring-code.md +0 -75
- package/docs/src/fr/docs/integrations.md +0 -100
- package/docs/src/fr/docs/languages/angular.md +0 -31
- package/docs/src/fr/docs/languages/django.md +0 -31
- package/docs/src/fr/docs/languages/golang.md +0 -31
- package/docs/src/fr/docs/languages/handlebars.md +0 -31
- package/docs/src/fr/docs/languages/jinja.md +0 -31
- package/docs/src/fr/docs/languages/languages.json +0 -3
- package/docs/src/fr/docs/languages/mustache.md +0 -31
- package/docs/src/fr/docs/languages/nunjucks.md +0 -31
- package/docs/src/fr/docs/languages/twig.md +0 -31
- package/docs/src/fr/docs/linter.md +0 -207
- package/docs/src/fr/fr.json +0 -4
- package/docs/src/fr/index.njk +0 -4
- package/docs/src/index.njk +0 -4
- package/docs/src/lib/generate-content-hash.js +0 -13
- package/docs/src/robots.txt +0 -4
- package/docs/src/ru/demo.njk +0 -4
- package/docs/src/ru/docs/best-practices.md +0 -78
- package/docs/src/ru/docs/changelog.md +0 -453
- package/docs/src/ru/docs/configuration.md +0 -142
- package/docs/src/ru/docs/docs.json +0 -3
- package/docs/src/ru/docs/formatter.md +0 -82
- package/docs/src/ru/docs/getting-started.md +0 -127
- package/docs/src/ru/docs/ignoring-code.md +0 -75
- package/docs/src/ru/docs/integrations.md +0 -100
- package/docs/src/ru/docs/languages/angular.md +0 -31
- package/docs/src/ru/docs/languages/django.md +0 -31
- package/docs/src/ru/docs/languages/golang.md +0 -31
- package/docs/src/ru/docs/languages/handlebars.md +0 -31
- package/docs/src/ru/docs/languages/jinja.md +0 -31
- package/docs/src/ru/docs/languages/languages.json +0 -3
- package/docs/src/ru/docs/languages/mustache.md +0 -31
- package/docs/src/ru/docs/languages/nunjucks.md +0 -31
- package/docs/src/ru/docs/languages/twig.md +0 -31
- package/docs/src/ru/docs/linter.md +0 -126
- package/docs/src/ru/index.njk +0 -4
- package/docs/src/ru/ru.json +0 -4
- package/docs/src/sitemap.njk +0 -16
- package/docs/src/static/css/site.scss +0 -467
- package/docs/src/static/font/fontawesome/stylesheet.scss +0 -78
- package/docs/src/static/img/apple-touch-icon.png +0 -0
- package/docs/src/static/img/demo-min.gif +0 -0
- package/docs/src/static/img/demo.gif +0 -0
- package/docs/src/static/img/demo.webm +0 -0
- package/docs/src/static/img/favicon-16x16.png +0 -0
- package/docs/src/static/img/favicon-32x32.png +0 -0
- package/docs/src/static/img/favicon.ico +0 -0
- package/docs/src/static/img/icon-square.indd +0 -0
- package/docs/src/static/img/icon-square.png +0 -0
- package/docs/src/static/img/icon.png +0 -0
- package/docs/src/static/img/logo-192x192.png +0 -0
- package/docs/src/static/img/logo-512x512.png +0 -0
- package/docs/src/static/img/logos/angular.png +0 -0
- package/docs/src/static/img/logos/django.png +0 -0
- package/docs/src/static/img/logos/golang.png +0 -0
- package/docs/src/static/img/logos/handlebars.png +0 -0
- package/docs/src/static/img/logos/jinja.png +0 -0
- package/docs/src/static/img/logos/mustache.png +0 -0
- package/docs/src/static/img/logos/nunjucks.png +0 -0
- package/docs/src/static/img/logos/twig.png +0 -0
- package/docs/src/static/img/old_demo.gif +0 -0
- package/docs/src/static/img/style.css +0 -122
- package/docs/src/static/js/animate.js +0 -69
- package/docs/src/static/js/editor.js +0 -171
- package/docs/src/static/js/hamburger.js +0 -19
- package/docs/src/static/js/modal.js +0 -47
- package/docs/src/static/js/worker.js +0 -142
- package/docs/src/static/py/EditorConfig-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/PyYAML-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/click-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/colorama-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/cssbeautifier-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/djlint-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/html_tag_names-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/html_void_elements-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/jsbeautifier-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/json5-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/pathspec-99-py3-none-any.whl +0 -0
- package/docs/src/static/py/regex-2023.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
- package/docs/src/static/py/six-1.16.0-py2.py3-none-any.whl +0 -0
- package/docs/src/static/py/tomli-2.0.1-py3-none-any.whl +0 -0
- package/docs/src/static/py/tqdm-4.65.0-py3-none-any.whl +0 -0
- package/icon.xcf +0 -0
- package/poetry.lock +0 -835
- package/pyproject.toml +0 -100
- package/renovate.json +0 -44
- package/scripts/updateVersion.js +0 -16
- package/src/djlint/__init__.py +0 -451
- package/src/djlint/__main__.py +0 -4
- package/src/djlint/formatter/__init__.py +0 -1
- package/src/djlint/formatter/attributes.py +0 -212
- package/src/djlint/formatter/compress.py +0 -64
- package/src/djlint/formatter/condense.py +0 -221
- package/src/djlint/formatter/css.py +0 -60
- package/src/djlint/formatter/expand.py +0 -111
- package/src/djlint/formatter/indent.py +0 -418
- package/src/djlint/formatter/js.py +0 -58
- package/src/djlint/helpers.py +0 -321
- package/src/djlint/lint.py +0 -128
- package/src/djlint/output.py +0 -220
- package/src/djlint/reformat.py +0 -63
- package/src/djlint/rules/H025.py +0 -65
- package/src/djlint/rules.yaml +0 -279
- package/src/djlint/settings.py +0 -969
- package/src/djlint/src.py +0 -91
- package/tests/__init__.py +0 -0
- package/tests/conftest.py +0 -239
- package/tests/test_cli.py +0 -71
- package/tests/test_config/__init__.py +0 -0
- package/tests/test_config/test_blank_line_after_tag.py +0 -135
- package/tests/test_config/test_blank_line_before_tag.py +0 -141
- package/tests/test_config/test_close_void_tags.py +0 -31
- package/tests/test_config/test_custom_blocks.py +0 -56
- package/tests/test_config/test_custom_html.py +0 -45
- package/tests/test_config/test_djlintrc/.djlintrc +0 -38
- package/tests/test_config/test_djlintrc/__init__.py +0 -0
- package/tests/test_config/test_djlintrc/test_config.py +0 -44
- package/tests/test_config/test_djlintrc_custom/.djlint-cust +0 -38
- package/tests/test_config/test_djlintrc_custom/.djlintrc +0 -2
- package/tests/test_config/test_djlintrc_custom/__init__.py +0 -0
- package/tests/test_config/test_djlintrc_custom/test_config.py +0 -48
- package/tests/test_config/test_excludes/__init__.py +0 -0
- package/tests/test_config/test_excludes/excluded.html +0 -1
- package/tests/test_config/test_excludes/foo/excluded.html +0 -1
- package/tests/test_config/test_excludes/html.html +0 -1
- package/tests/test_config/test_excludes/pyproject.toml +0 -3
- package/tests/test_config/test_excludes/test_config.py +0 -30
- package/tests/test_config/test_extension/__init__.py +0 -0
- package/tests/test_config/test_extension/html.test +0 -1
- package/tests/test_config/test_extension/pyproject.toml +0 -3
- package/tests/test_config/test_extension/test_config.py +0 -27
- package/tests/test_config/test_files/.djlintrc_global +0 -9
- package/tests/test_config/test_files/test.html +0 -3
- package/tests/test_config/test_files/test_config.py +0 -123
- package/tests/test_config/test_files/test_two.html +0 -1
- package/tests/test_config/test_format_attribute_template_tags.py +0 -280
- package/tests/test_config/test_format_css.py +0 -197
- package/tests/test_config/test_format_js.py +0 -220
- package/tests/test_config/test_gitignore/__init__.py +0 -0
- package/tests/test_config/test_gitignore/html_one.html +0 -1
- package/tests/test_config/test_gitignore/html_two.html +0 -1
- package/tests/test_config/test_gitignore/test_config.py +0 -142
- package/tests/test_config/test_ignore/__init__.py +0 -0
- package/tests/test_config/test_ignore/html.html +0 -1
- package/tests/test_config/test_ignore/html_two.html +0 -12
- package/tests/test_config/test_ignore/pyproject.toml +0 -3
- package/tests/test_config/test_ignore/test_config.py +0 -32
- package/tests/test_config/test_ignore_blocks.py +0 -45
- package/tests/test_config/test_ignore_case.py +0 -39
- package/tests/test_config/test_indent.py +0 -63
- package/tests/test_config/test_linter_output_format/__init__.py +0 -0
- package/tests/test_config/test_linter_output_format/html-one.html +0 -1
- package/tests/test_config/test_linter_output_format/html-two.html +0 -1
- package/tests/test_config/test_linter_output_format/pyproject.toml +0 -3
- package/tests/test_config/test_linter_output_format/test_config.py +0 -34
- package/tests/test_config/test_max_attribute_length.py +0 -100
- package/tests/test_config/test_max_line_length.py +0 -94
- package/tests/test_config/test_per_file_ignores/__init__.py +0 -0
- package/tests/test_config/test_per_file_ignores/html.html +0 -2
- package/tests/test_config/test_per_file_ignores/pyproject.toml +0 -2
- package/tests/test_config/test_per_file_ignores/test_config.py +0 -25
- package/tests/test_config/test_pragmas/__init__.py +0 -0
- package/tests/test_config/test_pragmas/html_five.html +0 -2
- package/tests/test_config/test_pragmas/html_four.html +0 -5
- package/tests/test_config/test_pragmas/html_one.html +0 -1
- package/tests/test_config/test_pragmas/html_six.html +0 -2
- package/tests/test_config/test_pragmas/html_three.html +0 -4
- package/tests/test_config/test_pragmas/html_two.html +0 -2
- package/tests/test_config/test_pragmas/pyproject.toml +0 -3
- package/tests/test_config/test_pragmas/test_config.py +0 -142
- package/tests/test_config/test_preserve_blank_lines.py +0 -109
- package/tests/test_config/test_preserve_leading_space.py +0 -159
- package/tests/test_config/test_profile/__init__.py +0 -0
- package/tests/test_config/test_profile/html.html +0 -2
- package/tests/test_config/test_profile/pyproject.toml +0 -3
- package/tests/test_config/test_profile/test_config.py +0 -64
- package/tests/test_config/test_pyproject/__init__.py +0 -0
- package/tests/test_config/test_pyproject/blank.html +0 -0
- package/tests/test_config/test_pyproject/pyproject.toml +0 -36
- package/tests/test_config/test_pyproject/test_config.py +0 -44
- package/tests/test_django/__init__.py +0 -0
- package/tests/test_django/test_asset.py +0 -32
- package/tests/test_django/test_autoescape.py +0 -25
- package/tests/test_django/test_block.py +0 -29
- package/tests/test_django/test_blocktrans.py +0 -236
- package/tests/test_django/test_blocktrans_trimmed.py +0 -283
- package/tests/test_django/test_comments.py +0 -164
- package/tests/test_django/test_filter.py +0 -30
- package/tests/test_django/test_for.py +0 -34
- package/tests/test_django/test_if.py +0 -34
- package/tests/test_django/test_ifchanged.py +0 -37
- package/tests/test_django/test_include.py +0 -24
- package/tests/test_django/test_load.py +0 -24
- package/tests/test_django/test_quoted.py +0 -34
- package/tests/test_django/test_spaceless.py +0 -30
- package/tests/test_django/test_tag_spaces.py +0 -35
- package/tests/test_django/test_templatetag.py +0 -40
- package/tests/test_django/test_verbatim.py +0 -24
- package/tests/test_django/test_with.py +0 -32
- package/tests/test_djlint/-.html +0 -1
- package/tests/test_djlint/__init__.py +0 -0
- package/tests/test_djlint/bad.html +0 -6
- package/tests/test_djlint/bad.html.dj +0 -23
- package/tests/test_djlint/bad.html.dj2 +0 -2
- package/tests/test_djlint/multiple_files/a/a.html +0 -1
- package/tests/test_djlint/multiple_files/b/b1.html +0 -1
- package/tests/test_djlint/multiple_files/b/b2.html +0 -1
- package/tests/test_djlint/test_djlint.py +0 -242
- package/tests/test_golang/__init__.py +0 -0
- package/tests/test_golang/test_if.py +0 -24
- package/tests/test_golang/test_range.py +0 -24
- package/tests/test_handlebars/__init__.py +0 -0
- package/tests/test_handlebars/test_each.py +0 -34
- package/tests/test_handlebars/test_else.py +0 -24
- package/tests/test_handlebars/test_with.py +0 -24
- package/tests/test_html/__init__.py +0 -0
- package/tests/test_html/test_alpinejs.py +0 -65
- package/tests/test_html/test_attributes.py +0 -935
- package/tests/test_html/test_aurelia.py +0 -24
- package/tests/test_html/test_basics.py +0 -905
- package/tests/test_html/test_bracket_same_line.py +0 -177
- package/tests/test_html/test_case.py +0 -81
- package/tests/test_html/test_cdata.py +0 -34
- package/tests/test_html/test_comments.py +0 -333
- package/tests/test_html/test_css.py +0 -193
- package/tests/test_html/test_doctype_declarations.py +0 -202
- package/tests/test_html/test_ignored.py +0 -193
- package/tests/test_html/test_interpolation.py +0 -56
- package/tests/test_html/test_line_break_after_multiline_tag.py +0 -95
- package/tests/test_html/test_next_line_empty.py +0 -53
- package/tests/test_html/test_selfclosing.py +0 -55
- package/tests/test_html/test_single_attribute_per_line.py +0 -87
- package/tests/test_html/test_srcset.py +0 -43
- package/tests/test_html/test_svg.py +0 -104
- package/tests/test_html/test_symbol_entities.py +0 -34
- package/tests/test_html/test_tag_code.py +0 -24
- package/tests/test_html/test_tag_dd.py +0 -24
- package/tests/test_html/test_tag_details_summary.py +0 -24
- package/tests/test_html/test_tag_dt.py +0 -24
- package/tests/test_html/test_tag_fig_caption.py +0 -29
- package/tests/test_html/test_tag_hr.py +0 -29
- package/tests/test_html/test_tag_picture.py +0 -32
- package/tests/test_html/test_tag_pre.py +0 -45
- package/tests/test_html/test_tag_script.py +0 -516
- package/tests/test_html/test_tag_small.py +0 -24
- package/tests/test_html/test_tag_span.py +0 -119
- package/tests/test_html/test_tag_textarea.py +0 -82
- package/tests/test_html/test_tags.py +0 -842
- package/tests/test_html/test_text.py +0 -34
- package/tests/test_html/test_whitespace.py +0 -477
- package/tests/test_html/test_yaml.py +0 -156
- package/tests/test_jinja/__init__.py +0 -0
- package/tests/test_jinja/test_call.py +0 -34
- package/tests/test_jinja/test_parenthesis.py +0 -24
- package/tests/test_linter/__init__.py +0 -0
- package/tests/test_linter/test_custom_rules/.djlint_rules.yaml +0 -6
- package/tests/test_linter/test_custom_rules/__init__.py +0 -0
- package/tests/test_linter/test_custom_rules/html.html +0 -1
- package/tests/test_linter/test_custom_rules/pyproject.toml +0 -1
- package/tests/test_linter/test_custom_rules/test_linter.py +0 -29
- package/tests/test_linter/test_custom_rules_bad/.djlint_rules.yaml +0 -24
- package/tests/test_linter/test_custom_rules_bad/__init__.py +0 -0
- package/tests/test_linter/test_custom_rules_bad/html.html +0 -1
- package/tests/test_linter/test_custom_rules_bad/pyproject.toml +0 -1
- package/tests/test_linter/test_custom_rules_bad/test_linter.py +0 -29
- package/tests/test_linter/test_django_linter.py +0 -476
- package/tests/test_linter/test_h005.py +0 -45
- package/tests/test_linter/test_h006.py +0 -81
- package/tests/test_linter/test_h007.py +0 -45
- package/tests/test_linter/test_h008.py +0 -60
- package/tests/test_linter/test_h009.py +0 -45
- package/tests/test_linter/test_h010.py +0 -44
- package/tests/test_linter/test_h037.py +0 -150
- package/tests/test_linter/test_ignore_rules.py +0 -45
- package/tests/test_linter/test_jinja_linter.py +0 -227
- package/tests/test_linter/test_linter.py +0 -691
- package/tests/test_linter/test_nunjucks_linter.py +0 -59
- package/tests/test_linter/test_python_module_rules/.djlint_rules.yaml +0 -4
- package/tests/test_linter/test_python_module_rules/__init__.py +0 -0
- package/tests/test_linter/test_python_module_rules/html_bad.html +0 -3
- package/tests/test_linter/test_python_module_rules/html_ok.html +0 -3
- package/tests/test_linter/test_python_module_rules/my_module.py +0 -32
- package/tests/test_linter/test_python_module_rules/pyproject.toml +0 -1
- package/tests/test_linter/test_python_module_rules/test_linter.py +0 -26
- package/tests/test_nunjucks/__init__.py +0 -0
- package/tests/test_nunjucks/test_functions.py +0 -94
- package/tests/test_nunjucks/test_macros.py +0 -41
- package/tests/test_nunjucks/test_set.py +0 -206
- package/tests/test_nunjucks/test_spaceless.py +0 -24
- package/tests/test_twig/__init__.py +0 -0
- package/tests/test_twig/test_comments.py +0 -51
- package/tox.ini +0 -48
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"""Djlint tests specific to pyproject.toml configuration.
|
|
2
|
-
|
|
3
|
-
run::
|
|
4
|
-
|
|
5
|
-
pytest tests/test_config.py --cov=src/djlint --cov-branch \
|
|
6
|
-
--cov-report xml:coverage.xml --cov-report term-missing
|
|
7
|
-
|
|
8
|
-
for a single test, run::
|
|
9
|
-
|
|
10
|
-
pytest tests/test_config.py::test_custom_html --cov=src/djlint \
|
|
11
|
-
--cov-branch --cov-report xml:coverage.xml --cov-report term-missing
|
|
12
|
-
|
|
13
|
-
"""
|
|
14
|
-
# pylint: disable=C0116
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
from click.testing import CliRunner
|
|
18
|
-
|
|
19
|
-
from src.djlint import main as djlint
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
def test_profile(runner: CliRunner) -> None:
|
|
23
|
-
result = runner.invoke(djlint, ["tests/test_config/test_profile/html.html"])
|
|
24
|
-
|
|
25
|
-
assert "T001" in result.output
|
|
26
|
-
assert "J018" not in result.output
|
|
27
|
-
assert "D018" in result.output
|
|
28
|
-
|
|
29
|
-
result = runner.invoke(
|
|
30
|
-
djlint, ["tests/test_config/test_profile/html.html", "--profile", "jinja"]
|
|
31
|
-
)
|
|
32
|
-
assert "T001" in result.output
|
|
33
|
-
assert "J018" in result.output
|
|
34
|
-
assert "D018" not in result.output
|
|
35
|
-
|
|
36
|
-
result = runner.invoke(
|
|
37
|
-
djlint, ["tests/test_config/test_profile/html.html", "--profile", "handlebars"]
|
|
38
|
-
)
|
|
39
|
-
assert "T001" not in result.output
|
|
40
|
-
assert "J018" not in result.output
|
|
41
|
-
assert "D018" not in result.output
|
|
42
|
-
|
|
43
|
-
result = runner.invoke(
|
|
44
|
-
djlint,
|
|
45
|
-
[
|
|
46
|
-
"tests/test_config/test_profile/html.html",
|
|
47
|
-
"--check",
|
|
48
|
-
"--profile",
|
|
49
|
-
"handlebars",
|
|
50
|
-
],
|
|
51
|
-
)
|
|
52
|
-
|
|
53
|
-
assert result.exit_code == 0
|
|
54
|
-
|
|
55
|
-
result = runner.invoke(
|
|
56
|
-
djlint,
|
|
57
|
-
["tests/test_config/test_profile/html.html", "--check", "--profile", "jinja"],
|
|
58
|
-
)
|
|
59
|
-
assert result.exit_code == 1
|
|
60
|
-
assert (
|
|
61
|
-
"""-{{test}}
|
|
62
|
-
+{{ test }}"""
|
|
63
|
-
in result.output
|
|
64
|
-
)
|
|
File without changes
|
|
File without changes
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
[tool.djlint]
|
|
2
|
-
exclude = "foo/excluded.html"
|
|
3
|
-
extend_exclude = "excluded.html"
|
|
4
|
-
blank_line_after_tag="load,extends,include"
|
|
5
|
-
blank_line_before_tag="load,extends,include"
|
|
6
|
-
custom_blocks="toc,example"
|
|
7
|
-
custom_html="mjml,simple-greeting,mj-\\w+"
|
|
8
|
-
extension="html.dj"
|
|
9
|
-
files=["index.html"]
|
|
10
|
-
format_attribute_template_tags=true
|
|
11
|
-
format_css=true
|
|
12
|
-
format_js=true
|
|
13
|
-
ignore="H014,H015"
|
|
14
|
-
ignore_blocks="raw,example"
|
|
15
|
-
ignore_case=true
|
|
16
|
-
include="H014,H015"
|
|
17
|
-
indent=3
|
|
18
|
-
linter_output_format="{code} {message} {match} {filename}:{line}"
|
|
19
|
-
max_attribute_length=10
|
|
20
|
-
max_line_length=120
|
|
21
|
-
preserve_blank_lines=true
|
|
22
|
-
preserve_leading_space=true
|
|
23
|
-
profile="django"
|
|
24
|
-
require_pragma=true
|
|
25
|
-
use_gitignore=true
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
[tool.djlint.js]
|
|
29
|
-
indent_size=5
|
|
30
|
-
|
|
31
|
-
[tool.djlint.css]
|
|
32
|
-
indent_size=5
|
|
33
|
-
|
|
34
|
-
[tool.djlint.per-file-ignores]
|
|
35
|
-
"file.html"= "H026,H025"
|
|
36
|
-
"file_two.html"="H001"
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"""Test pyproject.toml config.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_config/test_pyproject
|
|
4
|
-
|
|
5
|
-
"""
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
|
|
8
|
-
from src.djlint.settings import Config
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def test_profile() -> None:
|
|
12
|
-
config = Config(str(Path(__file__) / "blank.html"))
|
|
13
|
-
|
|
14
|
-
assert config.exclude == "foo/excluded.html | excluded.html"
|
|
15
|
-
assert config.blank_line_after_tag == "load,extends,include"
|
|
16
|
-
assert config.blank_line_before_tag == "load,extends,include"
|
|
17
|
-
assert config.custom_blocks == r"|endexample\b|endtoc\b|example\b|toc\b"
|
|
18
|
-
assert config.custom_html == r"|mjml|simple-greeting|mj-\w+"
|
|
19
|
-
assert config.extension == "html.dj"
|
|
20
|
-
assert config.files == ["index.html"]
|
|
21
|
-
assert config.format_attribute_template_tags is True
|
|
22
|
-
assert config.format_css is True
|
|
23
|
-
assert config.format_js is True
|
|
24
|
-
assert config.ignore == "H014,H015"
|
|
25
|
-
assert config.ignore_blocks == r"endexample\b|endraw\b|example\b|raw\b"
|
|
26
|
-
assert config.ignore_case is True
|
|
27
|
-
assert config.include == "H014,H015"
|
|
28
|
-
assert config.indent == 3 * " "
|
|
29
|
-
assert config.linter_output_format == "{code} {message} {match} {filename}:{line}"
|
|
30
|
-
assert config.max_attribute_length == 10
|
|
31
|
-
assert config.max_line_length == 120
|
|
32
|
-
assert config.preserve_blank_lines is True
|
|
33
|
-
assert config.preserve_leading_space is True
|
|
34
|
-
assert config.profile == "django"
|
|
35
|
-
assert config.require_pragma is True
|
|
36
|
-
assert config.use_gitignore is True
|
|
37
|
-
|
|
38
|
-
assert config.js_config == {"indent_size": 5}
|
|
39
|
-
assert config.css_config == {"indent_size": 5}
|
|
40
|
-
|
|
41
|
-
assert config.per_file_ignores == {
|
|
42
|
-
"file.html": "H026,H025",
|
|
43
|
-
"file_two.html": "H001",
|
|
44
|
-
}
|
|
File without changes
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"""Test django asset tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_django/test_asset.py
|
|
4
|
-
"""
|
|
5
|
-
import pytest
|
|
6
|
-
|
|
7
|
-
from src.djlint.reformat import formatter
|
|
8
|
-
from tests.conftest import printer
|
|
9
|
-
|
|
10
|
-
test_data = [
|
|
11
|
-
pytest.param(
|
|
12
|
-
(
|
|
13
|
-
'{% block css %}{% assets "css_error" %}<link type="text/css" rel="stylesheet" href="{{ ASSET_URL }}" />{% endassets %}{% endblock css %}'
|
|
14
|
-
),
|
|
15
|
-
(
|
|
16
|
-
"{% block css %}\n"
|
|
17
|
-
' {% assets "css_error" %}\n'
|
|
18
|
-
' <link type="text/css" rel="stylesheet" href="{{ ASSET_URL }}" />\n'
|
|
19
|
-
" {% endassets %}\n"
|
|
20
|
-
"{% endblock css %}\n"
|
|
21
|
-
),
|
|
22
|
-
id="asset_tag",
|
|
23
|
-
),
|
|
24
|
-
]
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
28
|
-
def test_base(source, expected, django_config):
|
|
29
|
-
output = formatter(django_config, source)
|
|
30
|
-
|
|
31
|
-
printer(expected, source, output)
|
|
32
|
-
assert expected == output
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"""Test django autoescape tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_django/test_autoescape.py
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
import pytest
|
|
7
|
-
|
|
8
|
-
from src.djlint.reformat import formatter
|
|
9
|
-
from tests.conftest import printer
|
|
10
|
-
|
|
11
|
-
test_data = [
|
|
12
|
-
pytest.param(
|
|
13
|
-
("{% autoescape on %}{{ body }}{% endautoescape %}"),
|
|
14
|
-
("{% autoescape on %}\n" " {{ body }}\n" "{% endautoescape %}\n"),
|
|
15
|
-
id="autoescape_tag",
|
|
16
|
-
)
|
|
17
|
-
]
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
21
|
-
def test_base(source, expected, django_config):
|
|
22
|
-
output = formatter(django_config, source)
|
|
23
|
-
|
|
24
|
-
printer(expected, source, output)
|
|
25
|
-
assert expected == output
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
"""Test django block tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_django/test_block.py
|
|
4
|
-
"""
|
|
5
|
-
|
|
6
|
-
import pytest
|
|
7
|
-
|
|
8
|
-
from src.djlint.reformat import formatter
|
|
9
|
-
from tests.conftest import printer
|
|
10
|
-
|
|
11
|
-
test_data = [
|
|
12
|
-
pytest.param(
|
|
13
|
-
("{% block content %}{% block scripts %}{% endblock %}{% endblock %}"),
|
|
14
|
-
(
|
|
15
|
-
"{% block content %}\n"
|
|
16
|
-
" {% block scripts %}{% endblock %}\n"
|
|
17
|
-
"{% endblock %}\n"
|
|
18
|
-
),
|
|
19
|
-
id="asset_tag",
|
|
20
|
-
),
|
|
21
|
-
]
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
25
|
-
def test_base(source, expected, django_config):
|
|
26
|
-
output = formatter(django_config, source)
|
|
27
|
-
|
|
28
|
-
printer(expected, source, output)
|
|
29
|
-
assert expected == output
|
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
"""Test django blocktrans(late) tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_django/test_blocktrans.py
|
|
4
|
-
|
|
5
|
-
blocktrans/late contents cannot be touched.
|
|
6
|
-
|
|
7
|
-
leading tag can be indented, but not trailing tag.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
blocktrans/late "trimmed" can be fully formatted and are in separate tests
|
|
12
|
-
|
|
13
|
-
"""
|
|
14
|
-
import pytest
|
|
15
|
-
|
|
16
|
-
from src.djlint.reformat import formatter
|
|
17
|
-
from tests.conftest import printer
|
|
18
|
-
|
|
19
|
-
test_data = [
|
|
20
|
-
pytest.param(
|
|
21
|
-
("{% blocktranslate %} The width is: {{ width }}{% endblocktranslate %}"),
|
|
22
|
-
("{% blocktranslate %} The width is: {{ width }}{% endblocktranslate %}\n"),
|
|
23
|
-
id="blocktranslate_no_attr",
|
|
24
|
-
),
|
|
25
|
-
pytest.param(
|
|
26
|
-
("{% blocktranslate %}The width is: {{ width }} {% endblocktranslate %}"),
|
|
27
|
-
("{% blocktranslate %}The width is: {{ width }} {% endblocktranslate %}\n"),
|
|
28
|
-
id="blocktranslate_with_attr",
|
|
29
|
-
),
|
|
30
|
-
pytest.param(
|
|
31
|
-
("{% blocktrans %} The width is: {{ width }}{% endblocktrans %}"),
|
|
32
|
-
("{% blocktrans %} The width is: {{ width }}{% endblocktrans %}\n"),
|
|
33
|
-
id="blocktrans_no_attr",
|
|
34
|
-
),
|
|
35
|
-
pytest.param(
|
|
36
|
-
("{% blocktrans %}The width is: {{ width }} {% endblocktrans %}"),
|
|
37
|
-
("{% blocktrans %}The width is: {{ width }} {% endblocktrans %}\n"),
|
|
38
|
-
id="blocktrans_with_attr",
|
|
39
|
-
),
|
|
40
|
-
pytest.param(
|
|
41
|
-
(
|
|
42
|
-
"<p>\n"
|
|
43
|
-
" {% blocktrans %}If you have not created an account yet, then please\n"
|
|
44
|
-
' <a href="{{ signup_url }}">sign up</a> first.{% endblocktrans %}\n'
|
|
45
|
-
"</p>\n"
|
|
46
|
-
"<p>\n"
|
|
47
|
-
" {% blocktrans %} If you have not created an account yet, then please\n"
|
|
48
|
-
' <a href="{{ signup_url }}">sign up</a> first. {% endblocktrans %}\n'
|
|
49
|
-
"</p>\n"
|
|
50
|
-
),
|
|
51
|
-
(
|
|
52
|
-
"<p>\n"
|
|
53
|
-
" {% blocktrans %}If you have not created an account yet, then please\n"
|
|
54
|
-
' <a href="{{ signup_url }}">sign up</a> first.{% endblocktrans %}\n'
|
|
55
|
-
"</p>\n"
|
|
56
|
-
"<p>\n"
|
|
57
|
-
" {% blocktrans %} If you have not created an account yet, then please\n"
|
|
58
|
-
' <a href="{{ signup_url }}">sign up</a> first. {% endblocktrans %}\n'
|
|
59
|
-
"</p>\n"
|
|
60
|
-
),
|
|
61
|
-
id="blocktrans_with_nested_tags",
|
|
62
|
-
),
|
|
63
|
-
pytest.param(
|
|
64
|
-
(
|
|
65
|
-
"<div>\n"
|
|
66
|
-
' {% translate "View all" %}\n'
|
|
67
|
-
" <br />\n"
|
|
68
|
-
" ({% blocktranslate count counter=images|length %}\n"
|
|
69
|
-
" {{ counter }} photo\n"
|
|
70
|
-
" {% plural %}\n"
|
|
71
|
-
" {{ counter }} photos\n"
|
|
72
|
-
"{% endblocktranslate %})\n"
|
|
73
|
-
" ({% blocktrans count counter=images|length %}\n"
|
|
74
|
-
" {{ counter }} photo\n"
|
|
75
|
-
" {% plural %}\n"
|
|
76
|
-
" {{ counter }} photos\n"
|
|
77
|
-
" {% endblocktrans %})\n"
|
|
78
|
-
"</div>\n"
|
|
79
|
-
),
|
|
80
|
-
(
|
|
81
|
-
"<div>\n"
|
|
82
|
-
' {% translate "View all" %}\n'
|
|
83
|
-
" <br />\n"
|
|
84
|
-
" ({% blocktranslate count counter=images|length %}\n"
|
|
85
|
-
" {{ counter }} photo\n"
|
|
86
|
-
" {% plural %}\n"
|
|
87
|
-
" {{ counter }} photos\n"
|
|
88
|
-
"{% endblocktranslate %})\n"
|
|
89
|
-
" ({% blocktrans count counter=images|length %}\n"
|
|
90
|
-
" {{ counter }} photo\n"
|
|
91
|
-
" {% plural %}\n"
|
|
92
|
-
" {{ counter }} photos\n"
|
|
93
|
-
" {% endblocktrans %})\n"
|
|
94
|
-
"</div>\n"
|
|
95
|
-
),
|
|
96
|
-
id="blocktrans_indent",
|
|
97
|
-
),
|
|
98
|
-
pytest.param(
|
|
99
|
-
(
|
|
100
|
-
"<div>\n"
|
|
101
|
-
' {% translate "View all" %}\n'
|
|
102
|
-
" <br />\n"
|
|
103
|
-
" ({% blocktranslate count counter=images|length %}\n"
|
|
104
|
-
" {{ counter }} photo\n"
|
|
105
|
-
" {% plural %}\n"
|
|
106
|
-
"asdf\n"
|
|
107
|
-
" {{ counter }} photos\n"
|
|
108
|
-
" {% endblocktranslate %})\n"
|
|
109
|
-
" ({% blocktrans count counter=images|length %}\n"
|
|
110
|
-
" {{ counter }} photo\n"
|
|
111
|
-
" {% plural %}\n"
|
|
112
|
-
" {{ counter }} photos\n"
|
|
113
|
-
" {% endblocktrans %})\n"
|
|
114
|
-
"</div>\n"
|
|
115
|
-
),
|
|
116
|
-
(
|
|
117
|
-
"<div>\n"
|
|
118
|
-
' {% translate "View all" %}\n'
|
|
119
|
-
" <br />\n"
|
|
120
|
-
" ({% blocktranslate count counter=images|length %}\n"
|
|
121
|
-
" {{ counter }} photo\n"
|
|
122
|
-
" {% plural %}\n"
|
|
123
|
-
"asdf\n"
|
|
124
|
-
" {{ counter }} photos\n"
|
|
125
|
-
" {% endblocktranslate %})\n"
|
|
126
|
-
" ({% blocktrans count counter=images|length %}\n"
|
|
127
|
-
" {{ counter }} photo\n"
|
|
128
|
-
" {% plural %}\n"
|
|
129
|
-
" {{ counter }} photos\n"
|
|
130
|
-
" {% endblocktrans %})\n"
|
|
131
|
-
"</div>\n"
|
|
132
|
-
),
|
|
133
|
-
id="blocktrans_indent_2",
|
|
134
|
-
),
|
|
135
|
-
pytest.param(
|
|
136
|
-
(
|
|
137
|
-
"<tr>\n"
|
|
138
|
-
" {% if status.stage.value == 0 %}\n"
|
|
139
|
-
" {% blocktranslate with obj=status.scanned_objects %}{{ obj }} objects scanned{% endblocktranslate %}\n"
|
|
140
|
-
" {% elif status.stage.value == 2 %}\n"
|
|
141
|
-
" {% blocktranslate with obj=status.scanned_objects %} {{ obj }} objects scanned {% endblocktranslate %}\n"
|
|
142
|
-
" {% endif %}\n"
|
|
143
|
-
"</tr>\n"
|
|
144
|
-
),
|
|
145
|
-
(
|
|
146
|
-
"<tr>\n"
|
|
147
|
-
" {% if status.stage.value == 0 %}\n"
|
|
148
|
-
" {% blocktranslate with obj=status.scanned_objects %}{{ obj }} objects scanned{% endblocktranslate %}\n"
|
|
149
|
-
" {% elif status.stage.value == 2 %}\n"
|
|
150
|
-
" {% blocktranslate with obj=status.scanned_objects %} {{ obj }} objects scanned {% endblocktranslate %}\n"
|
|
151
|
-
" {% endif %}\n"
|
|
152
|
-
"</tr>\n"
|
|
153
|
-
),
|
|
154
|
-
id="blocktrans_indent_if",
|
|
155
|
-
),
|
|
156
|
-
pytest.param(
|
|
157
|
-
(
|
|
158
|
-
"<tr>\n"
|
|
159
|
-
" {% if status.stage.value == 0 %}\n"
|
|
160
|
-
" {% blocktranslate with obj=status.scanned_objects %}{{ obj }} objects scanned {% endblocktranslate %}\n"
|
|
161
|
-
" {% elif status.stage.value == 2 %}\n"
|
|
162
|
-
" {% blocktranslate with obj=status.scanned_objects %} {{ obj }} objects scanned{% endblocktranslate %}\n"
|
|
163
|
-
" {% endif %}\n"
|
|
164
|
-
"</tr>\n"
|
|
165
|
-
),
|
|
166
|
-
(
|
|
167
|
-
"<tr>\n"
|
|
168
|
-
" {% if status.stage.value == 0 %}\n"
|
|
169
|
-
" {% blocktranslate with obj=status.scanned_objects %}{{ obj }} objects scanned {% endblocktranslate %}\n"
|
|
170
|
-
" {% elif status.stage.value == 2 %}\n"
|
|
171
|
-
" {% blocktranslate with obj=status.scanned_objects %} {{ obj }} objects scanned{% endblocktranslate %}\n"
|
|
172
|
-
" {% endif %}\n"
|
|
173
|
-
"</tr>\n"
|
|
174
|
-
),
|
|
175
|
-
id="blocktrans_indent_if_2",
|
|
176
|
-
),
|
|
177
|
-
pytest.param(
|
|
178
|
-
("<p>{% trans 'Please do <b>Blah</b>.' %}</p>\n"),
|
|
179
|
-
("<p>\n" " {% trans 'Please do <b>Blah</b>.' %}\n" "</p>\n"),
|
|
180
|
-
id="blocktrans_indent_3",
|
|
181
|
-
),
|
|
182
|
-
pytest.param(
|
|
183
|
-
(
|
|
184
|
-
"{% autoescape off %}\n"
|
|
185
|
-
"\n"
|
|
186
|
-
" {% blocktrans %}\n"
|
|
187
|
-
" You're receiving this email because you requested a password reset for your user account at {{ site_name }}.\n"
|
|
188
|
-
" {% endblocktrans %}\n"
|
|
189
|
-
),
|
|
190
|
-
(
|
|
191
|
-
"{% autoescape off %}\n"
|
|
192
|
-
" {% blocktrans %}\n"
|
|
193
|
-
" You're receiving this email because you requested a password reset for your user account at {{ site_name }}.\n"
|
|
194
|
-
" {% endblocktrans %}\n"
|
|
195
|
-
),
|
|
196
|
-
id="blocktrans_autoescape",
|
|
197
|
-
),
|
|
198
|
-
pytest.param(
|
|
199
|
-
(
|
|
200
|
-
"{% autoescape off %}\n"
|
|
201
|
-
" {% blocktrans %}\n"
|
|
202
|
-
" You're receiving this email because you requested a password reset for your user account at {{ site_name }}.\n"
|
|
203
|
-
" {% endblocktrans %}\n"
|
|
204
|
-
),
|
|
205
|
-
(
|
|
206
|
-
"{% autoescape off %}\n"
|
|
207
|
-
" {% blocktrans %}\n"
|
|
208
|
-
" You're receiving this email because you requested a password reset for your user account at {{ site_name }}.\n"
|
|
209
|
-
" {% endblocktrans %}\n"
|
|
210
|
-
),
|
|
211
|
-
id="blocktrans_autoescape_two",
|
|
212
|
-
),
|
|
213
|
-
pytest.param(
|
|
214
|
-
(
|
|
215
|
-
"{% blocktranslate count counter=list|length %}\n"
|
|
216
|
-
"There is only one {{ name }} object.\n"
|
|
217
|
-
" {% plural %} There are {{ counter }} {{ name }} objects.\n"
|
|
218
|
-
"{% endblocktranslate %}\n"
|
|
219
|
-
),
|
|
220
|
-
(
|
|
221
|
-
"{% blocktranslate count counter=list|length %}\n"
|
|
222
|
-
"There is only one {{ name }} object.\n"
|
|
223
|
-
" {% plural %} There are {{ counter }} {{ name }} objects.\n"
|
|
224
|
-
"{% endblocktranslate %}\n"
|
|
225
|
-
),
|
|
226
|
-
id="plural not formatted",
|
|
227
|
-
),
|
|
228
|
-
]
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
232
|
-
def test_base(source, expected, django_config):
|
|
233
|
-
output = formatter(django_config, source)
|
|
234
|
-
|
|
235
|
-
printer(expected, source, output)
|
|
236
|
-
assert expected == output
|