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,31 +0,0 @@
|
|
|
1
|
-
"""Test for custom html.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_config/test_close_void_tags.py
|
|
4
|
-
"""
|
|
5
|
-
import pytest
|
|
6
|
-
|
|
7
|
-
from src.djlint.reformat import formatter
|
|
8
|
-
from tests.conftest import config_builder, printer
|
|
9
|
-
|
|
10
|
-
test_data = [
|
|
11
|
-
pytest.param(
|
|
12
|
-
("<img><meta>"),
|
|
13
|
-
("<img>\n" "<meta>\n"),
|
|
14
|
-
({}),
|
|
15
|
-
id="default",
|
|
16
|
-
),
|
|
17
|
-
pytest.param(
|
|
18
|
-
("<img><div><meta>"),
|
|
19
|
-
("<img />\n" "<div>\n" " <meta />\n"),
|
|
20
|
-
({"close_void_tags": True}),
|
|
21
|
-
id="config",
|
|
22
|
-
),
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
@pytest.mark.parametrize(("source", "expected", "args"), test_data)
|
|
27
|
-
def test_base(source, expected, args):
|
|
28
|
-
output = formatter(config_builder(args), source)
|
|
29
|
-
|
|
30
|
-
printer(expected, source, output)
|
|
31
|
-
assert expected == output
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
"""Test for custom blocks.
|
|
2
|
-
|
|
3
|
-
--custom-blocks 'toc'
|
|
4
|
-
|
|
5
|
-
poetry run pytest tests/test_config/test_custom_blocks.py
|
|
6
|
-
"""
|
|
7
|
-
import pytest
|
|
8
|
-
|
|
9
|
-
from src.djlint.reformat import formatter
|
|
10
|
-
from tests.conftest import config_builder, printer
|
|
11
|
-
|
|
12
|
-
test_data = [
|
|
13
|
-
pytest.param(
|
|
14
|
-
(
|
|
15
|
-
"{% example stuff %}<p>this is a very very long paragraph that does nothing except be a long paragraph asdfasdfasdfasdfasdf fasdf asdfasdfasdf</p>{% endexample %}\n"
|
|
16
|
-
"\n"
|
|
17
|
-
"{% verylongexampletagthatiskindaneattolookat stuff%}{{ tag }}{% endverylongexampletagthatiskindaneattolookat %}"
|
|
18
|
-
),
|
|
19
|
-
(
|
|
20
|
-
"{% example stuff %}\n"
|
|
21
|
-
" <p>\n"
|
|
22
|
-
" this is a very very long paragraph that does nothing except be a long paragraph asdfasdfasdfasdfasdf fasdf asdfasdfasdf\n"
|
|
23
|
-
" </p>\n"
|
|
24
|
-
"{% endexample %}\n"
|
|
25
|
-
"{% verylongexampletagthatiskindaneattolookat stuff %}\n"
|
|
26
|
-
" {{ tag }}\n"
|
|
27
|
-
"{% endverylongexampletagthatiskindaneattolookat %}\n"
|
|
28
|
-
),
|
|
29
|
-
({"custom_blocks": "toc,example,verylongexampletagthatiskindaneattolookat"}),
|
|
30
|
-
id="one",
|
|
31
|
-
),
|
|
32
|
-
pytest.param(
|
|
33
|
-
(
|
|
34
|
-
"{% custom_block %}\n"
|
|
35
|
-
" {% custom_block_but_different %}\n"
|
|
36
|
-
" <p>some other content</p>\n"
|
|
37
|
-
"{% endcustom_block %}\n"
|
|
38
|
-
),
|
|
39
|
-
(
|
|
40
|
-
"{% custom_block %}\n"
|
|
41
|
-
" {% custom_block_but_different %}\n"
|
|
42
|
-
" <p>some other content</p>\n"
|
|
43
|
-
"{% endcustom_block %}\n"
|
|
44
|
-
),
|
|
45
|
-
({"custom_blocks": "custom_block"}),
|
|
46
|
-
id="custom_block_with_similar_tag",
|
|
47
|
-
),
|
|
48
|
-
]
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
@pytest.mark.parametrize(("source", "expected", "args"), test_data)
|
|
52
|
-
def test_base(source, expected, args):
|
|
53
|
-
output = formatter(config_builder(args), source)
|
|
54
|
-
|
|
55
|
-
printer(expected, source, output)
|
|
56
|
-
assert expected == output
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"""Test for custom html.
|
|
2
|
-
|
|
3
|
-
--custom-html 'dov'
|
|
4
|
-
|
|
5
|
-
poetry run pytest tests/test_config/test_custom_html.py
|
|
6
|
-
"""
|
|
7
|
-
import pytest
|
|
8
|
-
|
|
9
|
-
from src.djlint.reformat import formatter
|
|
10
|
-
from tests.conftest import config_builder, printer
|
|
11
|
-
|
|
12
|
-
test_data = [
|
|
13
|
-
pytest.param(
|
|
14
|
-
("<mjml><mj-body>this is a email text</mj-body></mjml>"),
|
|
15
|
-
(
|
|
16
|
-
"<mjml>\n"
|
|
17
|
-
" <mj-body>\n"
|
|
18
|
-
" this is a email text\n"
|
|
19
|
-
" </mj-body>\n"
|
|
20
|
-
"</mjml>\n"
|
|
21
|
-
),
|
|
22
|
-
({"custom_html": "mjml,mj-body"}),
|
|
23
|
-
id="with_flag",
|
|
24
|
-
),
|
|
25
|
-
pytest.param(
|
|
26
|
-
("<mjml><mj-body>this is a email text</mj-body></mjml>"),
|
|
27
|
-
("<mjml><mj-body>this is a email text</mj-body></mjml>\n"),
|
|
28
|
-
(),
|
|
29
|
-
id="without_flag",
|
|
30
|
-
),
|
|
31
|
-
pytest.param(
|
|
32
|
-
("<some-long-custom-element></some-long-custom-element>"),
|
|
33
|
-
("<some-long-custom-element></some-long-custom-element>\n"),
|
|
34
|
-
({"custom_html": "mjml,mj-body"}),
|
|
35
|
-
id="other tag",
|
|
36
|
-
),
|
|
37
|
-
]
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
@pytest.mark.parametrize(("source", "expected", "args"), test_data)
|
|
41
|
-
def test_base(source, expected, args):
|
|
42
|
-
output = formatter(config_builder(args), source)
|
|
43
|
-
|
|
44
|
-
printer(expected, source, output)
|
|
45
|
-
assert expected == output
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"blank_line_after_tag": "load,extends,include",
|
|
3
|
-
"blank_line_before_tag": "load,extends,include",
|
|
4
|
-
"custom_blocks": "toc,example",
|
|
5
|
-
"files": [
|
|
6
|
-
"index.html"
|
|
7
|
-
],
|
|
8
|
-
"custom_html": "mjml,simple-greeting,mj-\\w+",
|
|
9
|
-
"exclude": ".venv,venv,.tox,.eggs,...",
|
|
10
|
-
"extend_exclude": ".custom",
|
|
11
|
-
"extension": "html.dj",
|
|
12
|
-
"format_attribute_template_tags": true,
|
|
13
|
-
"format_css": true,
|
|
14
|
-
"css": {
|
|
15
|
-
"indent_size": 5
|
|
16
|
-
},
|
|
17
|
-
"format_js": true,
|
|
18
|
-
"js": {
|
|
19
|
-
"indent_size": 5
|
|
20
|
-
},
|
|
21
|
-
"ignore": "H014,H015",
|
|
22
|
-
"ignore_blocks": "raw,example",
|
|
23
|
-
"ignore_case": true,
|
|
24
|
-
"include": "H014,H015",
|
|
25
|
-
"indent": "3",
|
|
26
|
-
"linter_output_format": "{filename}:{line}: {code} {message} {match}",
|
|
27
|
-
"max_attribute_length": "10",
|
|
28
|
-
"max_line_length": "120",
|
|
29
|
-
"per-file-ignores": {
|
|
30
|
-
"file.html": "H026,H025",
|
|
31
|
-
"file_two.html":"H001"
|
|
32
|
-
},
|
|
33
|
-
"preserve_blank_lines": true,
|
|
34
|
-
"preserve_leading_space": true,
|
|
35
|
-
"profile": "django",
|
|
36
|
-
"require_pragma": true,
|
|
37
|
-
"use_gitignore": true
|
|
38
|
-
}
|
|
File without changes
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
"""Test djlintrc config.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_config/test_djlintrc
|
|
4
|
-
|
|
5
|
-
"""
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
|
|
8
|
-
from src.djlint.settings import Config
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def test_default() -> None:
|
|
12
|
-
config = Config(str(Path(__file__).parent / "blank.html"))
|
|
13
|
-
|
|
14
|
-
assert config.exclude == ".venv,venv,.tox,.eggs,... | .custom"
|
|
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 == "{filename}:{line}: {code} {message} {match}"
|
|
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
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"blank_line_after_tag": "load,extends,include",
|
|
3
|
-
"blank_line_before_tag": "load,extends,include",
|
|
4
|
-
"custom_blocks": "toc,example",
|
|
5
|
-
"files": [
|
|
6
|
-
"index.html"
|
|
7
|
-
],
|
|
8
|
-
"custom_html": "mjml,simple-greeting,mj-\\w+",
|
|
9
|
-
"exclude": ".venv,venv,.tox,.egg,...",
|
|
10
|
-
"extend_exclude": ".customs",
|
|
11
|
-
"extension": "html.dj",
|
|
12
|
-
"format_attribute_template_tags": true,
|
|
13
|
-
"format_css": true,
|
|
14
|
-
"css": {
|
|
15
|
-
"indent_size": 4
|
|
16
|
-
},
|
|
17
|
-
"format_js": true,
|
|
18
|
-
"js": {
|
|
19
|
-
"indent_size": 4
|
|
20
|
-
},
|
|
21
|
-
"ignore": "H014,H015",
|
|
22
|
-
"ignore_blocks": "raw,example",
|
|
23
|
-
"ignore_case": true,
|
|
24
|
-
"include": "H014,H015",
|
|
25
|
-
"indent": "4",
|
|
26
|
-
"linter_output_format": "{filename}:{line}: {code} {message} {match}",
|
|
27
|
-
"max_attribute_length": "10",
|
|
28
|
-
"max_line_length": "120",
|
|
29
|
-
"per-file-ignores": {
|
|
30
|
-
"file.html": "H026,H025",
|
|
31
|
-
"file_two.html":"H001"
|
|
32
|
-
},
|
|
33
|
-
"preserve_blank_lines": true,
|
|
34
|
-
"preserve_leading_space": true,
|
|
35
|
-
"profile": "django",
|
|
36
|
-
"require_pragma": true,
|
|
37
|
-
"use_gitignore": true
|
|
38
|
-
}
|
|
File without changes
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"""Test djlintrc custom config.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_config/test_djlintrc_custom
|
|
4
|
-
|
|
5
|
-
"""
|
|
6
|
-
from pathlib import Path
|
|
7
|
-
|
|
8
|
-
from src.djlint.settings import Config
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
def test_custom() -> None:
|
|
12
|
-
config = Config(
|
|
13
|
-
str(Path(__file__).parent / "blank.html"),
|
|
14
|
-
configuration=str(Path(__file__).parent / ".djlint-cust"),
|
|
15
|
-
)
|
|
16
|
-
|
|
17
|
-
print(config.exclude)
|
|
18
|
-
assert config.exclude == ".venv,venv,.tox,.egg,... | .customs"
|
|
19
|
-
assert config.blank_line_after_tag == "load,extends,include"
|
|
20
|
-
assert config.blank_line_before_tag == "load,extends,include"
|
|
21
|
-
assert config.custom_blocks == r"|endexample\b|endtoc\b|example\b|toc\b"
|
|
22
|
-
assert config.custom_html == r"|mjml|simple-greeting|mj-\w+"
|
|
23
|
-
assert config.extension == "html.dj"
|
|
24
|
-
assert config.files == ["index.html"]
|
|
25
|
-
assert config.format_attribute_template_tags is True
|
|
26
|
-
assert config.format_css is True
|
|
27
|
-
assert config.format_js is True
|
|
28
|
-
assert config.ignore == "H014,H015"
|
|
29
|
-
assert config.ignore_blocks == r"endexample\b|endraw\b|example\b|raw\b"
|
|
30
|
-
assert config.ignore_case is True
|
|
31
|
-
assert config.include == "H014,H015"
|
|
32
|
-
assert config.indent == 4 * " "
|
|
33
|
-
assert config.linter_output_format == "{filename}:{line}: {code} {message} {match}"
|
|
34
|
-
assert config.max_attribute_length == 10
|
|
35
|
-
assert config.max_line_length == 120
|
|
36
|
-
assert config.preserve_blank_lines is True
|
|
37
|
-
assert config.preserve_leading_space is True
|
|
38
|
-
assert config.profile == "django"
|
|
39
|
-
assert config.require_pragma is True
|
|
40
|
-
assert config.use_gitignore is True
|
|
41
|
-
|
|
42
|
-
assert config.js_config == {"indent_size": 4}
|
|
43
|
-
assert config.css_config == {"indent_size": 4}
|
|
44
|
-
|
|
45
|
-
assert config.per_file_ignores == {
|
|
46
|
-
"file.html": "H026,H025",
|
|
47
|
-
"file_two.html": "H001",
|
|
48
|
-
}
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{{missing_space}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<h1>bad</h2>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{{missing_space}}
|
|
@@ -1,30 +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_exclude(runner: CliRunner) -> None:
|
|
23
|
-
result = runner.invoke(
|
|
24
|
-
djlint, ["tests/test_config/test_excludes", "--profile", "django"]
|
|
25
|
-
)
|
|
26
|
-
print(result.output)
|
|
27
|
-
assert """html.html""" in result.output
|
|
28
|
-
assert """excluded.html""" not in result.output
|
|
29
|
-
assert """foo/excluded.html""" not in result.output
|
|
30
|
-
assert result.exit_code == 1
|
|
File without changes
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<div></div>
|
|
@@ -1,27 +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_extension(runner: CliRunner) -> None:
|
|
23
|
-
result = runner.invoke(djlint, ["tests/test_config/test_extension", "--check"])
|
|
24
|
-
assert """Checking""" in result.output
|
|
25
|
-
assert """1/1""" in result.output
|
|
26
|
-
assert """0 files would be updated.""" in result.output
|
|
27
|
-
assert result.exit_code == 0
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"""Djlint tests specific to custom file path.
|
|
2
|
-
|
|
3
|
-
run::
|
|
4
|
-
|
|
5
|
-
pytest tests/test_config/test_files/test_config.py --cov=src/djlint --cov-branch \
|
|
6
|
-
--cov-report xml:coverage.xml --cov-report term-missing
|
|
7
|
-
|
|
8
|
-
pytest tests/test_config/test_files/test_config.py::test_global_override
|
|
9
|
-
|
|
10
|
-
"""
|
|
11
|
-
# pylint: disable=C0116
|
|
12
|
-
|
|
13
|
-
import os
|
|
14
|
-
|
|
15
|
-
from click.testing import CliRunner
|
|
16
|
-
|
|
17
|
-
from src.djlint import main as djlint
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def test_check_custom_file_src(runner: CliRunner) -> None:
|
|
21
|
-
result = runner.invoke(
|
|
22
|
-
djlint,
|
|
23
|
-
[
|
|
24
|
-
"-",
|
|
25
|
-
"--check",
|
|
26
|
-
"--configuration",
|
|
27
|
-
"tests/test_config/test_files/.djlintrc_global",
|
|
28
|
-
],
|
|
29
|
-
)
|
|
30
|
-
assert """Checking 2/2 files""" in result.output
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
def test_lint_custom_file_src(runner: CliRunner) -> None:
|
|
34
|
-
result = runner.invoke(
|
|
35
|
-
djlint,
|
|
36
|
-
[
|
|
37
|
-
"-",
|
|
38
|
-
"--lint",
|
|
39
|
-
"--configuration",
|
|
40
|
-
"tests/test_config/test_files/.djlintrc_global",
|
|
41
|
-
],
|
|
42
|
-
)
|
|
43
|
-
assert """Linting 2/2 files""" in result.output
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
def test_reformat_custom_file_src(runner: CliRunner) -> None:
|
|
47
|
-
result = runner.invoke(
|
|
48
|
-
djlint,
|
|
49
|
-
[
|
|
50
|
-
"-",
|
|
51
|
-
"--reformat",
|
|
52
|
-
"--configuration",
|
|
53
|
-
"tests/test_config/test_files/.djlintrc_global",
|
|
54
|
-
],
|
|
55
|
-
)
|
|
56
|
-
assert """Reformatting 2/2 files""" in result.output
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
def test_global_override(runner: CliRunner) -> None:
|
|
60
|
-
result = runner.invoke(
|
|
61
|
-
djlint,
|
|
62
|
-
[
|
|
63
|
-
"-",
|
|
64
|
-
"--lint",
|
|
65
|
-
"--configuration",
|
|
66
|
-
"tests/test_config/test_files/.djlintrc_global",
|
|
67
|
-
],
|
|
68
|
-
)
|
|
69
|
-
# fails
|
|
70
|
-
assert result.exit_code == 1
|
|
71
|
-
|
|
72
|
-
# check cli override
|
|
73
|
-
result = runner.invoke(
|
|
74
|
-
djlint,
|
|
75
|
-
[
|
|
76
|
-
"-",
|
|
77
|
-
"--lint",
|
|
78
|
-
"--configuration",
|
|
79
|
-
"tests/test_config/test_files/.djlintrc_global",
|
|
80
|
-
"--ignore",
|
|
81
|
-
"H025,H020",
|
|
82
|
-
],
|
|
83
|
-
)
|
|
84
|
-
# passes
|
|
85
|
-
assert result.exit_code == 0
|
|
86
|
-
|
|
87
|
-
# check project settings override
|
|
88
|
-
|
|
89
|
-
# create project settings folder
|
|
90
|
-
# add a gitignore file
|
|
91
|
-
with open(
|
|
92
|
-
"tests/test_config/test_files/.djlintrc", "w", encoding="utf8"
|
|
93
|
-
) as local_settings:
|
|
94
|
-
local_settings.write('{ "ignore":"H025"}')
|
|
95
|
-
|
|
96
|
-
result = runner.invoke(
|
|
97
|
-
djlint,
|
|
98
|
-
[
|
|
99
|
-
"tests/test_config/test_files/test_two.html",
|
|
100
|
-
"--lint",
|
|
101
|
-
"--configuration",
|
|
102
|
-
"tests/test_config/test_files/.djlintrc_global",
|
|
103
|
-
],
|
|
104
|
-
)
|
|
105
|
-
|
|
106
|
-
result_two = runner.invoke(
|
|
107
|
-
djlint,
|
|
108
|
-
[
|
|
109
|
-
"tests/test_config/test_files/test.html",
|
|
110
|
-
"--lint",
|
|
111
|
-
"--configuration",
|
|
112
|
-
"tests/test_config/test_files/.djlintrc_global",
|
|
113
|
-
],
|
|
114
|
-
)
|
|
115
|
-
try:
|
|
116
|
-
os.remove("tests/test_config/test_files/.djlintrc")
|
|
117
|
-
except BaseException as e:
|
|
118
|
-
print("cleanup failed")
|
|
119
|
-
print(e)
|
|
120
|
-
|
|
121
|
-
# H025 should be ignored, but H022 not
|
|
122
|
-
assert "H025" not in result.output
|
|
123
|
-
assert "H020" in result_two.output
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<div>
|