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,30 +0,0 @@
|
|
|
1
|
-
"""Test django spaceless tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_django/test_spaceless.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
|
-
('{% spaceless %}<p><a href="foo/">Foo</a></p>{% endspaceless %}'),
|
|
13
|
-
(
|
|
14
|
-
"{% spaceless %}\n"
|
|
15
|
-
" <p>\n"
|
|
16
|
-
' <a href="foo/">Foo</a>\n'
|
|
17
|
-
" </p>\n"
|
|
18
|
-
"{% endspaceless %}\n"
|
|
19
|
-
),
|
|
20
|
-
id="spaceless_tag",
|
|
21
|
-
),
|
|
22
|
-
]
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
26
|
-
def test_base(source, expected, django_config):
|
|
27
|
-
output = formatter(django_config, source)
|
|
28
|
-
|
|
29
|
-
printer(expected, source, output)
|
|
30
|
-
assert expected == output
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"""Test django spaceless tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_django/test_tag_spaces.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
|
-
("{% a %}\n" "{%b %}{%+c%}{%-d+%}\n" "{#a}{{g {%a%}}}{%l{{q}}+%}"),
|
|
13
|
-
(
|
|
14
|
-
"{% a %}\n"
|
|
15
|
-
"{% b %}{%+ c %}{%- d +%}\n"
|
|
16
|
-
"{#a}{{ g {% a % }}}{% l{{ q }} +%}\n"
|
|
17
|
-
),
|
|
18
|
-
({}),
|
|
19
|
-
id="messy stuff",
|
|
20
|
-
),
|
|
21
|
-
pytest.param(
|
|
22
|
-
("{% a %}\n" "{%b%}{%c%}{%-d+%}\n" "{#a}{{g {%a%}}}{%l{{q}}+%}"),
|
|
23
|
-
("{% a %}\n" "{%b%}{%c%}{%-d+%}\n" "{#a}{{g {%a%}}}{%l{{q}}+%}\n"),
|
|
24
|
-
({"profile": "handlebars"}),
|
|
25
|
-
id="messy stuff",
|
|
26
|
-
),
|
|
27
|
-
]
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
@pytest.mark.parametrize(("source", "expected", "args"), test_data)
|
|
31
|
-
def test_base(source, expected, args):
|
|
32
|
-
output = formatter(config_builder(args), source)
|
|
33
|
-
|
|
34
|
-
printer(expected, source, output)
|
|
35
|
-
assert expected == output
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"""Test django templatetags.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_django/test_templatetag.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
|
-
("{% if stuff %}\n{% endif %}"),
|
|
13
|
-
("{% if stuff %}{% endif %}\n"),
|
|
14
|
-
id="tags_on_one_line",
|
|
15
|
-
),
|
|
16
|
-
pytest.param(
|
|
17
|
-
("{% templatetag openblock %} url 'entry_list' {% templatetag closeblock %}"),
|
|
18
|
-
("{% templatetag openblock %} url 'entry_list' {% templatetag closeblock %}\n"),
|
|
19
|
-
id="tags_random_text",
|
|
20
|
-
),
|
|
21
|
-
pytest.param(
|
|
22
|
-
(
|
|
23
|
-
"{% if messages|length %}{% for message in messages %}{{ message }}{% endfor %}{% endif %}"
|
|
24
|
-
),
|
|
25
|
-
(
|
|
26
|
-
"{% if messages|length %}\n"
|
|
27
|
-
" {% for message in messages %}{{ message }}{% endfor %}\n"
|
|
28
|
-
"{% endif %}\n"
|
|
29
|
-
),
|
|
30
|
-
id="single_liner",
|
|
31
|
-
),
|
|
32
|
-
]
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
36
|
-
def test_base(source, expected, django_config):
|
|
37
|
-
output = formatter(django_config, source)
|
|
38
|
-
|
|
39
|
-
printer(expected, source, output)
|
|
40
|
-
assert expected == output
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"""Test django verbatim tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_django/test_verbatim.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
|
-
("{% verbatim %}Still alive.{% endverbatim %}"),
|
|
13
|
-
("{% verbatim %}\n" " Still alive.\n" "{% endverbatim %}\n"),
|
|
14
|
-
id="verbatim_tag",
|
|
15
|
-
),
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
20
|
-
def test_base(source, expected, django_config):
|
|
21
|
-
output = formatter(django_config, source)
|
|
22
|
-
|
|
23
|
-
printer(expected, source, output)
|
|
24
|
-
assert expected == output
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"""Test django with tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_django/test_with.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
|
-
"{% with total=business.employees.count %}{{ total }}<div>employee</div>{{ total|pluralize }}{% endwith %}"
|
|
14
|
-
),
|
|
15
|
-
(
|
|
16
|
-
"{% with total=business.employees.count %}\n"
|
|
17
|
-
" {{ total }}\n"
|
|
18
|
-
" <div>employee</div>\n"
|
|
19
|
-
" {{ total|pluralize }}\n"
|
|
20
|
-
"{% endwith %}\n"
|
|
21
|
-
),
|
|
22
|
-
id="with_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
|
package/tests/test_djlint/-.html
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<div>
|
|
File without changes
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
My first name is {{ htmlfirst_name }}. My last name is {{ last_name }}.
|
|
2
|
-
{% extends 'base_generic.html" %}
|
|
3
|
-
{% block body %}{% endblock %}
|
|
4
|
-
<link rel="stylesheet" href="/static/css/nav.scss" type="text/x-scss" charset="utf-8"/>
|
|
5
|
-
<script type="text/javascript" src="/static/lib/markdown-it/markdown-it.js"></script>
|
|
6
|
-
<img src="/static/images/hi.jpg" alt="Hi!">
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
{%this%}
|
|
2
|
-
{{ is}}
|
|
3
|
-
|
|
4
|
-
<a href="/junk"></a>
|
|
5
|
-
|
|
6
|
-
<footer class="ft">
|
|
7
|
-
© {% now "Y" %} - {{settings.ORG_NAME }}
|
|
8
|
-
</footer>
|
|
9
|
-
|
|
10
|
-
<BODY>
|
|
11
|
-
<P>This is a paragraph.</P>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<a HREF="https://www.w3schools.com/html/">Visit our HTML tutorial</a>
|
|
15
|
-
|
|
16
|
-
<table class=striped></table>
|
|
17
|
-
|
|
18
|
-
</BODY>
|
|
19
|
-
|
|
20
|
-
<img src="html5.gif">
|
|
21
|
-
<link rel = "stylesheet" href = "styles.css">
|
|
22
|
-
|
|
23
|
-
<div class="this is a really line long of random stuff... how long can we make it? hopefully over 99 chars long!"><p>close that div out!</p></div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{{fail}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{{fail}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{{fail}}
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
"""Djlint base tests.
|
|
2
|
-
|
|
3
|
-
run::
|
|
4
|
-
|
|
5
|
-
pytest tests/test_djlint/test_djlint.py --cov=src/djlint --cov-branch --cov-report xml:coverage.xml --cov-report term-missing
|
|
6
|
-
|
|
7
|
-
pytest tests/test_djlint/test_djlint.py::test_hyphen_file
|
|
8
|
-
|
|
9
|
-
or::
|
|
10
|
-
|
|
11
|
-
tox
|
|
12
|
-
|
|
13
|
-
"""
|
|
14
|
-
# pylint: disable=W1510
|
|
15
|
-
import subprocess
|
|
16
|
-
import sys
|
|
17
|
-
|
|
18
|
-
try:
|
|
19
|
-
from importlib import metadata
|
|
20
|
-
except ImportError:
|
|
21
|
-
# Running on pre-3.8 Python; use importlib-metadata package
|
|
22
|
-
import importlib_metadata as metadata # type: ignore
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
# pylint: disable=C0116
|
|
26
|
-
from pathlib import Path
|
|
27
|
-
from typing import TextIO
|
|
28
|
-
|
|
29
|
-
from click.testing import CliRunner
|
|
30
|
-
|
|
31
|
-
from src.djlint import main as djlint
|
|
32
|
-
from tests.conftest import write_to_file
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
def test_help(runner: CliRunner) -> None:
|
|
36
|
-
result = runner.invoke(djlint, ["-h"])
|
|
37
|
-
assert result.exit_code == 0
|
|
38
|
-
assert "djLint · HTML template linter and formatter." in result.output
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
def test_bad_args(runner: CliRunner) -> None:
|
|
42
|
-
result = runner.invoke(djlint, ["-a"])
|
|
43
|
-
assert result.exit_code == 2
|
|
44
|
-
assert "Error: No such option: -a" in result.output
|
|
45
|
-
|
|
46
|
-
result = runner.invoke(djlint, ["--aasdf"])
|
|
47
|
-
assert result.exit_code == 2
|
|
48
|
-
assert "Error: No such option: --aasdf" in result.output
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
def test_nonexisting_file(runner: CliRunner) -> None:
|
|
52
|
-
result = runner.invoke(djlint, ["not_a_file.html"])
|
|
53
|
-
assert result.exit_code == 2
|
|
54
|
-
assert "Path 'not_a_file.html' does not exist." in result.output
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
def test_existing_file(runner: CliRunner) -> None:
|
|
58
|
-
result = runner.invoke(djlint, ["tests/test_djlint/bad.html"])
|
|
59
|
-
assert result.exit_code == 1
|
|
60
|
-
assert str(Path("tests/test_djlint/bad.html")) in result.output
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
def test_hyphen_file(runner: CliRunner) -> None:
|
|
64
|
-
result = runner.invoke(djlint, ["tests/test_djlint/-.html"])
|
|
65
|
-
assert result.exit_code == 1
|
|
66
|
-
print(result.output)
|
|
67
|
-
assert str(Path("tests/test_djlint/-.html")) in result.output
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def test_multiple_files(runner: CliRunner) -> None:
|
|
71
|
-
result = runner.invoke(
|
|
72
|
-
djlint,
|
|
73
|
-
[
|
|
74
|
-
"tests/test_djlint/multiple_files/a",
|
|
75
|
-
"tests/test_djlint/multiple_files/b",
|
|
76
|
-
"--check",
|
|
77
|
-
],
|
|
78
|
-
)
|
|
79
|
-
assert result.exit_code == 1
|
|
80
|
-
assert "3 files would be updated." in result.output
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
def test_bad_path(runner: CliRunner) -> None:
|
|
84
|
-
result = runner.invoke(djlint, ["tests/nowhere"])
|
|
85
|
-
assert result.exit_code == 2
|
|
86
|
-
assert "does not exist." in result.output
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
def test_good_path_with_e(runner: CliRunner) -> None:
|
|
90
|
-
result = runner.invoke(djlint, ["tests/test_djlint/", "-e", "html"])
|
|
91
|
-
assert result.exit_code == 1
|
|
92
|
-
assert str(Path("tests/test_djlint/bad.html")) in result.output
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
def test_good_path_with_extension(runner: CliRunner) -> None:
|
|
96
|
-
result = runner.invoke(djlint, ["tests/test_djlint/", "--extension", "html*"])
|
|
97
|
-
assert result.exit_code == 1
|
|
98
|
-
assert str(Path("tests/test_djlint/bad.html")) in result.output
|
|
99
|
-
assert str(Path("tests/test_djlint/bad.html.dj")) in result.output
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
def test_good_path_with_bad_ext(runner: CliRunner) -> None:
|
|
103
|
-
result = runner.invoke(djlint, ["tests/test_djlint/", "-e", "html.alphabet"])
|
|
104
|
-
assert result.exit_code == 0
|
|
105
|
-
assert "No files to check!" in result.output
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
def test_empty_file(runner: CliRunner, tmp_file: TextIO) -> None:
|
|
109
|
-
write_to_file(tmp_file.name, b"")
|
|
110
|
-
result = runner.invoke(djlint, [tmp_file.name])
|
|
111
|
-
assert result.exit_code == 0
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
def test_stdin(runner: CliRunner) -> None:
|
|
115
|
-
result = runner.invoke(djlint, ["-"], input='<div><p id="a"></p></div>')
|
|
116
|
-
assert result.exit_code == 0
|
|
117
|
-
assert "Linted 1 file" in result.output
|
|
118
|
-
|
|
119
|
-
# check with multiple inputs
|
|
120
|
-
result = runner.invoke(djlint, ["-", "-"], input='<div><p id="a"></p></div>')
|
|
121
|
-
assert result.exit_code == 0
|
|
122
|
-
assert "Linted 1 file" in result.output
|
|
123
|
-
|
|
124
|
-
# check with reformat
|
|
125
|
-
result = runner.invoke(djlint, ["-", "--reformat"], input="<div></div>")
|
|
126
|
-
assert result.output == "<div></div>\n"
|
|
127
|
-
|
|
128
|
-
# check with check
|
|
129
|
-
result = runner.invoke(djlint, ["-", "--check"], input="<div></div>")
|
|
130
|
-
assert result.output == "<div></div>\n"
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
def test_stdin_non_ascii(runner: CliRunner) -> None:
|
|
134
|
-
result = runner.invoke(djlint, ["-", "--reformat"], input="必須")
|
|
135
|
-
assert result.output == "必須\n"
|
|
136
|
-
|
|
137
|
-
result = runner.invoke(djlint, ["-", "--reformat"], input="Вход")
|
|
138
|
-
assert result.output == "Вход\n"
|
|
139
|
-
|
|
140
|
-
result = runner.invoke(djlint, ["-", "--reformat"], input="çéâêîôûàèìòùëïü")
|
|
141
|
-
assert result.output == "çéâêîôûàèìòùëïü\n"
|
|
142
|
-
|
|
143
|
-
result = runner.invoke(djlint, ["-", "--reformat"], input="😀😂🤣😆🥰")
|
|
144
|
-
assert result.output == "😀😂🤣😆🥰\n"
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
def test_check(runner: CliRunner, tmp_file: TextIO) -> None:
|
|
148
|
-
write_to_file(tmp_file.name, b"<div></div>")
|
|
149
|
-
result = runner.invoke(djlint, [tmp_file.name, "--check"])
|
|
150
|
-
assert result.exit_code == 0
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
def test_check_non_existing_file(runner: CliRunner) -> None:
|
|
154
|
-
result = runner.invoke(djlint, ["tests/test_djlint/nothing.html", "--check"])
|
|
155
|
-
assert result.exit_code == 2
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
def test_check_non_existing_folder(runner: CliRunner) -> None:
|
|
159
|
-
result = runner.invoke(djlint, ["tests/nothing", "--check"])
|
|
160
|
-
assert result.exit_code == 2
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
def test_check_reformatter_simple_error(runner: CliRunner, tmp_file: TextIO) -> None:
|
|
164
|
-
write_to_file(tmp_file.name, b"<div><p>nice stuff here</p></div>")
|
|
165
|
-
result = runner.invoke(djlint, [tmp_file.name, "--check"])
|
|
166
|
-
assert result.exit_code == 1
|
|
167
|
-
assert "1 file would be updated." in result.output
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
def test_reformatter_simple_error(runner: CliRunner, tmp_file: TextIO) -> None:
|
|
171
|
-
write_to_file(tmp_file.name, b"<div><p>nice stuff here</p></div>")
|
|
172
|
-
result = runner.invoke(djlint, [tmp_file.name, "--reformat"])
|
|
173
|
-
assert result.exit_code == 1
|
|
174
|
-
assert "1 file was updated." in result.output
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
def test_check_reformatter_simple_error_quiet(
|
|
178
|
-
runner: CliRunner, tmp_file: TextIO
|
|
179
|
-
) -> None:
|
|
180
|
-
write_to_file(tmp_file.name, b"<div><p>nice stuff here</p></div>")
|
|
181
|
-
result = runner.invoke(djlint, [tmp_file.name, "--check", "--quiet"])
|
|
182
|
-
assert result.exit_code == 1
|
|
183
|
-
assert "1 file would be updated." not in result.output
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
def test_check_reformatter_no_error(runner: CliRunner, tmp_file: TextIO) -> None:
|
|
187
|
-
write_to_file(tmp_file.name, b"<div>\n <p>nice stuff here</p>\n</div>")
|
|
188
|
-
result = runner.invoke(djlint, [tmp_file.name, "--check"])
|
|
189
|
-
assert result.exit_code == 0
|
|
190
|
-
assert "0 files would be updated." in result.output
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
def test_warn(runner: CliRunner, tmp_file: TextIO) -> None:
|
|
194
|
-
write_to_file(
|
|
195
|
-
tmp_file.name, b"<div style='color:pink;'><p>nice stuff here</p></div>"
|
|
196
|
-
)
|
|
197
|
-
result = runner.invoke(djlint, [tmp_file.name, "--lint", "--warn"])
|
|
198
|
-
assert result.exit_code == 0
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
def test_version(runner: CliRunner) -> None:
|
|
202
|
-
result = runner.invoke(djlint, ["--version"])
|
|
203
|
-
assert metadata.version("djlint") in result.output
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
def test_python_call() -> None:
|
|
207
|
-
# give up fighting windows lol
|
|
208
|
-
if sys.platform != "win32":
|
|
209
|
-
py_sub = subprocess.run(
|
|
210
|
-
["python", "-m", "djlint", "-h"],
|
|
211
|
-
stdout=subprocess.PIPE,
|
|
212
|
-
stderr=subprocess.PIPE,
|
|
213
|
-
)
|
|
214
|
-
print(py_sub.stdout)
|
|
215
|
-
print(py_sub.returncode)
|
|
216
|
-
assert b"python -m djlint [OPTIONS] SRC ..." in py_sub.stdout
|
|
217
|
-
assert py_sub.returncode == 0
|
|
218
|
-
|
|
219
|
-
py_sub = subprocess.run(
|
|
220
|
-
["python", "-m", "djlint", "__init__", "-h"],
|
|
221
|
-
stdout=subprocess.PIPE,
|
|
222
|
-
stderr=subprocess.PIPE,
|
|
223
|
-
)
|
|
224
|
-
print(py_sub.stdout)
|
|
225
|
-
print(py_sub.returncode)
|
|
226
|
-
assert b"python -m djlint [OPTIONS] SRC ..." in py_sub.stdout
|
|
227
|
-
assert py_sub.returncode == 0
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
def test_line_ending(runner: CliRunner, tmp_file: TextIO) -> None:
|
|
231
|
-
# write a windows line ending to file
|
|
232
|
-
text_in = "<div></div>\r\n"
|
|
233
|
-
with open(tmp_file.name, "w", encoding="utf8", newline="") as windows:
|
|
234
|
-
windows.write(text_in)
|
|
235
|
-
|
|
236
|
-
# make sure line ending was still there
|
|
237
|
-
assert Path(tmp_file.name).read_bytes().decode("utf8") == text_in
|
|
238
|
-
|
|
239
|
-
# check formatting
|
|
240
|
-
result = runner.invoke(djlint, [tmp_file.name, "--check", "--quiet"])
|
|
241
|
-
|
|
242
|
-
assert result.exit_code == 0
|
|
File without changes
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"""Test golang if tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_golang/test_if.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
|
-
("{{ if .condition }} {{ else }} {{ end }}"),
|
|
13
|
-
("{{ if .condition }} {{ else }} {{ end }}\n"),
|
|
14
|
-
id="if_tag",
|
|
15
|
-
),
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
20
|
-
def test_base(source, expected, basic_config):
|
|
21
|
-
output = formatter(basic_config, source)
|
|
22
|
-
|
|
23
|
-
printer(expected, source, output)
|
|
24
|
-
assert expected == output
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"""Test golang range tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_golang/test_range.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
|
-
("{{ range .Items }} {{ end }}"),
|
|
13
|
-
("{{ range .Items }} {{ end }}\n"),
|
|
14
|
-
id="range_tag",
|
|
15
|
-
),
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
20
|
-
def test_base(source, expected, basic_config):
|
|
21
|
-
output = formatter(basic_config, source)
|
|
22
|
-
|
|
23
|
-
printer(expected, source, output)
|
|
24
|
-
assert expected == output
|
|
File without changes
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"""Test handlebars each tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_handlebars/test_each.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
|
-
("{{#each people}}{{print_person}} <p>and more long stuff</p>{{/each}}"),
|
|
13
|
-
(
|
|
14
|
-
"{{#each people }}\n"
|
|
15
|
-
" {{print_person}}\n"
|
|
16
|
-
" <p>and more long stuff</p>\n"
|
|
17
|
-
"{{/each}}\n"
|
|
18
|
-
),
|
|
19
|
-
id="each_tag",
|
|
20
|
-
),
|
|
21
|
-
pytest.param(
|
|
22
|
-
('{{#each (cprFindConfigObj "inventoryCategories") as |category c | }}'),
|
|
23
|
-
('{{#each (cprFindConfigObj "inventoryCategories") as |category c | }}\n'),
|
|
24
|
-
id="each_tag_with_pipe",
|
|
25
|
-
),
|
|
26
|
-
]
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
30
|
-
def test_base(source, expected, handlebars_config):
|
|
31
|
-
output = formatter(handlebars_config, source)
|
|
32
|
-
|
|
33
|
-
printer(expected, source, output)
|
|
34
|
-
assert expected == output
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"""Test handlebars else tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_handlebars/test_else.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
|
-
("{{^}}\n"),
|
|
14
|
-
id="else_tag",
|
|
15
|
-
),
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
20
|
-
def test_base(source, expected, handlebars_config):
|
|
21
|
-
output = formatter(handlebars_config, source)
|
|
22
|
-
|
|
23
|
-
printer(expected, source, output)
|
|
24
|
-
assert expected == output
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"""Test handlebars with tag.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_handlebars/test_with.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
|
-
("{{#with person}}<p>{{firstname}} {{lastname}}</p>{{/with}}"),
|
|
13
|
-
("{{#with person}}\n" " <p>{{firstname}} {{lastname}}</p>\n" "{{/with}}\n"),
|
|
14
|
-
id="with_tag",
|
|
15
|
-
),
|
|
16
|
-
]
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
20
|
-
def test_base(source, expected, handlebars_config):
|
|
21
|
-
output = formatter(handlebars_config, source)
|
|
22
|
-
|
|
23
|
-
printer(expected, source, output)
|
|
24
|
-
assert expected == output
|
|
File without changes
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"""Test for alpine.js.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_html/test_alpinejs.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
|
-
"<div\n"
|
|
14
|
-
' id="collapse"\n'
|
|
15
|
-
' x-data="{ show: true }"\n'
|
|
16
|
-
' x-show="show"\n'
|
|
17
|
-
" x-transition.duration.500ms\n"
|
|
18
|
-
' :disabled="!$store.userPreferences.deleteConfirm"\n'
|
|
19
|
-
' @click="clicked=true"\n'
|
|
20
|
-
"></div>\n"
|
|
21
|
-
),
|
|
22
|
-
(
|
|
23
|
-
'<div id="collapse"\n'
|
|
24
|
-
' x-data="{ show: true }"\n'
|
|
25
|
-
' x-show="show"\n'
|
|
26
|
-
" x-transition.duration.500ms\n"
|
|
27
|
-
' :disabled="!$store.userPreferences.deleteConfirm"\n'
|
|
28
|
-
' @click="clicked=true"></div>\n'
|
|
29
|
-
),
|
|
30
|
-
id="alpine_js",
|
|
31
|
-
),
|
|
32
|
-
pytest.param(
|
|
33
|
-
(
|
|
34
|
-
'<html lang="en">\n'
|
|
35
|
-
" <body>\n"
|
|
36
|
-
" <!-- x-data , x-text , x-html -->\n"
|
|
37
|
-
" <div x-data=\"{key: ' value', message:'hello <b>world</b> '}\">\n"
|
|
38
|
-
' <p x-text="key"></p>\n'
|
|
39
|
-
' <p x-html="message"></p>\n'
|
|
40
|
-
" </div>\n"
|
|
41
|
-
" </body>\n"
|
|
42
|
-
"</html>\n\n"
|
|
43
|
-
),
|
|
44
|
-
(
|
|
45
|
-
'<html lang="en">\n'
|
|
46
|
-
" <body>\n"
|
|
47
|
-
" <!-- x-data , x-text , x-html -->\n"
|
|
48
|
-
" <div x-data=\"{key: ' value', message:'hello <b>world</b> '}\">\n"
|
|
49
|
-
' <p x-text="key"></p>\n'
|
|
50
|
-
' <p x-html="message"></p>\n'
|
|
51
|
-
" </div>\n"
|
|
52
|
-
" </body>\n"
|
|
53
|
-
"</html>\n"
|
|
54
|
-
),
|
|
55
|
-
id="alpine_nested_html",
|
|
56
|
-
),
|
|
57
|
-
]
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
61
|
-
def test_base(source, expected, basic_config):
|
|
62
|
-
output = formatter(basic_config, source)
|
|
63
|
-
|
|
64
|
-
printer(expected, source, output)
|
|
65
|
-
assert expected == output
|