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,34 +0,0 @@
|
|
|
1
|
-
"""Test text.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_html/test_text.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
|
-
"<a-long-long-long-element>foo bar foo bar\n"
|
|
14
|
-
" foo bar foo bar foo bar foo bar foo bar\n"
|
|
15
|
-
" foo bar foo bar</a-long-long-long-element>\n"
|
|
16
|
-
"<!-- The end tag should stay in 80 print width -->\n"
|
|
17
|
-
),
|
|
18
|
-
(
|
|
19
|
-
"<a-long-long-long-element>foo bar foo bar\n"
|
|
20
|
-
" foo bar foo bar foo bar foo bar foo bar\n"
|
|
21
|
-
" foo bar foo bar</a-long-long-long-element>\n"
|
|
22
|
-
" <!-- The end tag should stay in 80 print width -->\n"
|
|
23
|
-
),
|
|
24
|
-
id="tag_should_in_fill",
|
|
25
|
-
),
|
|
26
|
-
]
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
30
|
-
def test_base(source, expected, basic_config):
|
|
31
|
-
output = formatter(basic_config, source)
|
|
32
|
-
|
|
33
|
-
printer(expected, source, output)
|
|
34
|
-
assert expected == output
|
|
@@ -1,477 +0,0 @@
|
|
|
1
|
-
"""Test whitespace.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_html/test_whitespace.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
|
-
"<a>Lorem</a>, ispum dolor sit <strong>amet</strong>.\n"
|
|
14
|
-
"<div><a>Lorem</a>, ispum dolor sit <strong>amet</strong>.</div>\n"
|
|
15
|
-
"<div><div><a>Lorem</a>, ispum dolor sit <strong>amet</strong>.</div></div>\n"
|
|
16
|
-
),
|
|
17
|
-
(
|
|
18
|
-
"<a>Lorem</a>, ispum dolor sit <strong>amet</strong>.\n"
|
|
19
|
-
"<div>\n"
|
|
20
|
-
" <a>Lorem</a>, ispum dolor sit <strong>amet</strong>.\n"
|
|
21
|
-
"</div>\n"
|
|
22
|
-
"<div>\n"
|
|
23
|
-
" <div>\n"
|
|
24
|
-
" <a>Lorem</a>, ispum dolor sit <strong>amet</strong>.\n"
|
|
25
|
-
" </div>\n"
|
|
26
|
-
"</div>\n"
|
|
27
|
-
),
|
|
28
|
-
id="break_tags",
|
|
29
|
-
),
|
|
30
|
-
pytest.param(
|
|
31
|
-
(
|
|
32
|
-
"<button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
33
|
-
"<button>\n"
|
|
34
|
-
"Click here! Click here! Click here! Click here! Click here! Click here!\n"
|
|
35
|
-
"</button>\n"
|
|
36
|
-
"<div>\n"
|
|
37
|
-
"<button>Click here! Click here! Click here! Click here! Click here! Click here!</button><button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
38
|
-
"</div>\n"
|
|
39
|
-
"<div>\n"
|
|
40
|
-
"<button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
41
|
-
"<button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
42
|
-
"</div>\n"
|
|
43
|
-
'<video src="brave.webm"><track kind=subtitles src=brave.en.vtt srclang=en label="English"><track kind=subtitles src=brave.en.vtt srclang=en label="English"></video>\n'
|
|
44
|
-
),
|
|
45
|
-
(
|
|
46
|
-
"<button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
47
|
-
"<button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
48
|
-
"<div>\n"
|
|
49
|
-
" <button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
50
|
-
" <button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
51
|
-
"</div>\n"
|
|
52
|
-
"<div>\n"
|
|
53
|
-
" <button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
54
|
-
" <button>Click here! Click here! Click here! Click here! Click here! Click here!</button>\n"
|
|
55
|
-
"</div>\n"
|
|
56
|
-
'<video src="brave.webm">\n'
|
|
57
|
-
' <track kind=subtitles src=brave.en.vtt srclang=en label="English">\n'
|
|
58
|
-
' <track kind=subtitles src=brave.en.vtt srclang=en label="English">\n'
|
|
59
|
-
"</video>\n"
|
|
60
|
-
),
|
|
61
|
-
id="display_inline_block",
|
|
62
|
-
),
|
|
63
|
-
pytest.param(
|
|
64
|
-
(
|
|
65
|
-
'<!DOCTYPE html><HTML CLASS="no-js mY-ClAsS"><HEAD><META CHARSET="utf-8"><TITLE>My tITlE</TITLE><META NAME="description" content="My CoNtEnT"></HEAD></HTML>\n'
|
|
66
|
-
),
|
|
67
|
-
(
|
|
68
|
-
"<!DOCTYPE html>\n"
|
|
69
|
-
'<html CLASS="no-js mY-ClAsS">\n'
|
|
70
|
-
" <head>\n"
|
|
71
|
-
' <meta CHARSET="utf-8">\n'
|
|
72
|
-
" <title>My tITlE</title>\n"
|
|
73
|
-
' <meta NAME="description" content="My CoNtEnT">\n'
|
|
74
|
-
" </head>\n"
|
|
75
|
-
"</html>\n"
|
|
76
|
-
),
|
|
77
|
-
id="display_none",
|
|
78
|
-
),
|
|
79
|
-
pytest.param(
|
|
80
|
-
(
|
|
81
|
-
"<p>\n"
|
|
82
|
-
" <img\n"
|
|
83
|
-
' src="/images/pansies.jpg"\n'
|
|
84
|
-
' alt="about fedco bottom image"\n'
|
|
85
|
-
' style="float: left;"\n'
|
|
86
|
-
" /><strong>We are a cooperative</strong>, one of the few seed companies so organized\n"
|
|
87
|
-
" in the United States. Because we do not have an individual owner or beneficiary,\n"
|
|
88
|
-
" profit is not our primary goal. Consumers own 60% of the cooperative and worker\n"
|
|
89
|
-
" members 40%. Consumer and worker members share proportionately in the cooperative’s\n"
|
|
90
|
-
" profits through our annual patronage dividends.\n"
|
|
91
|
-
"</p>\n"
|
|
92
|
-
),
|
|
93
|
-
(
|
|
94
|
-
"<p>\n"
|
|
95
|
-
' <img src="/images/pansies.jpg"\n'
|
|
96
|
-
' alt="about fedco bottom image"\n'
|
|
97
|
-
' style="float: left" />\n'
|
|
98
|
-
" <strong>We are a cooperative</strong>, one of the few seed companies so organized\n"
|
|
99
|
-
" in the United States. Because we do not have an individual owner or beneficiary,\n"
|
|
100
|
-
" profit is not our primary goal. Consumers own 60% of the cooperative and worker\n"
|
|
101
|
-
" members 40%. Consumer and worker members share proportionately in the cooperative’s\n"
|
|
102
|
-
" profits through our annual patronage dividends.\n"
|
|
103
|
-
"</p>\n"
|
|
104
|
-
),
|
|
105
|
-
id="fill",
|
|
106
|
-
),
|
|
107
|
-
pytest.param(
|
|
108
|
-
("<span> 321 </span>\n" "\n" "<span> <a>321</a> </span>\n"),
|
|
109
|
-
("<span>321</span>\n" "<span> <a>321</a> </span>\n"),
|
|
110
|
-
id="inline_leading_trailing_spaces",
|
|
111
|
-
),
|
|
112
|
-
pytest.param(
|
|
113
|
-
(
|
|
114
|
-
"<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce cursus massa vel augue\n"
|
|
115
|
-
"vestibulum facilisis in porta turpis. Ut faucibus lectus sit amet urna consectetur dignissim.\n"
|
|
116
|
-
"Sam vitae neque quis ex dapibus faucibus at sed ligula. Nulla sit amet aliquet nibh.\n"
|
|
117
|
-
"Vestibulum at congue mi. Suspendisse vitae odio vitae massa hendrerit mattis sed eget dui.\n"
|
|
118
|
-
"Sed eu scelerisque neque. Donec <b>maximus</b> rhoncus pellentesque. Aenean purus turpis, vehicula\n"
|
|
119
|
-
"euismod ante vel, ultricies eleifend dui. Class aptent taciti sociosqu ad litora torquent per\n"
|
|
120
|
-
"conubia nostra, per inceptos himenaeos. Donec in ornare velit.</p>\n"
|
|
121
|
-
"<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce cursus massa vel augue\n"
|
|
122
|
-
"vestibulum facilisis in porta turpis. Ut faucibus lectus sit amet urna consectetur dignissim.\n"
|
|
123
|
-
"Sam vitae neque quis ex dapibus faucibus at sed ligula. Nulla sit amet aliquet nibh.\n"
|
|
124
|
-
"Vestibulum at congue mi. Suspendisse vitae odio vitae massa hendrerit mattis sed eget dui.\n"
|
|
125
|
-
'Sed eu scelerisque neque. Donec <a href="#"><b>maximus</b></a> rhoncus pellentesque. Aenean purus turpis, vehicula\n'
|
|
126
|
-
"euismod ante vel, ultricies eleifend dui. Class aptent taciti sociosqu ad litora torquent per\n"
|
|
127
|
-
"conubia nostra, per inceptos himenaeos. Donec in ornare velit.</p>\n"
|
|
128
|
-
),
|
|
129
|
-
(
|
|
130
|
-
"<p>\n"
|
|
131
|
-
" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce cursus massa vel augue\n"
|
|
132
|
-
" vestibulum facilisis in porta turpis. Ut faucibus lectus sit amet urna consectetur dignissim.\n"
|
|
133
|
-
" Sam vitae neque quis ex dapibus faucibus at sed ligula. Nulla sit amet aliquet nibh.\n"
|
|
134
|
-
" Vestibulum at congue mi. Suspendisse vitae odio vitae massa hendrerit mattis sed eget dui.\n"
|
|
135
|
-
" Sed eu scelerisque neque. Donec <b>maximus</b> rhoncus pellentesque. Aenean purus turpis, vehicula\n"
|
|
136
|
-
" euismod ante vel, ultricies eleifend dui. Class aptent taciti sociosqu ad litora torquent per\n"
|
|
137
|
-
" conubia nostra, per inceptos himenaeos. Donec in ornare velit.\n"
|
|
138
|
-
"</p>\n"
|
|
139
|
-
"<p>\n"
|
|
140
|
-
" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce cursus massa vel augue\n"
|
|
141
|
-
" vestibulum facilisis in porta turpis. Ut faucibus lectus sit amet urna consectetur dignissim.\n"
|
|
142
|
-
" Sam vitae neque quis ex dapibus faucibus at sed ligula. Nulla sit amet aliquet nibh.\n"
|
|
143
|
-
" Vestibulum at congue mi. Suspendisse vitae odio vitae massa hendrerit mattis sed eget dui.\n"
|
|
144
|
-
' Sed eu scelerisque neque. Donec <a href="#"><b>maximus</b></a> rhoncus pellentesque. Aenean purus turpis, vehicula\n'
|
|
145
|
-
" euismod ante vel, ultricies eleifend dui. Class aptent taciti sociosqu ad litora torquent per\n"
|
|
146
|
-
" conubia nostra, per inceptos himenaeos. Donec in ornare velit.\n"
|
|
147
|
-
"</p>\n"
|
|
148
|
-
),
|
|
149
|
-
id="inline_nodes",
|
|
150
|
-
),
|
|
151
|
-
pytest.param(
|
|
152
|
-
(
|
|
153
|
-
' <a href="/wiki/Help:IPA/English" title="Help:IPA/English">/<span style="border-bottom:1px dotted"><span title="/ˌ/: secondary stress follows">ˌ</span\n'
|
|
154
|
-
'><span title="/ɪ/: 'i' in 'kit'">ɪ</span\n'
|
|
155
|
-
'><span title="'l' in 'lie'">l</span\n'
|
|
156
|
-
'><span title="/ə/: 'a' in 'about'">ə</span\n'
|
|
157
|
-
'><span title="/ˈ/: primary stress follows">ˈ</span\n'
|
|
158
|
-
'><span title="'n' in 'nigh'">n</span\n'
|
|
159
|
-
'><span title="/ɔɪ/: 'oi' in 'choice'">ɔɪ</span></span>/</a>\n'
|
|
160
|
-
'<span class="word"><span class="syllable"><span class="letter vowel">i</span><span class="letter consonant">p</span></span\n'
|
|
161
|
-
'><span class="syllable"><span class="letter consonant onset">s</span><span class="letter vowel">u</span><span class="letter consonant">m</span></span></span>\n'
|
|
162
|
-
),
|
|
163
|
-
(
|
|
164
|
-
'<a href="/wiki/Help:IPA/English" title="Help:IPA/English">/<span style="border-bottom:1px dotted"><span title="/ˌ/: secondary stress follows">ˌ</span><span title="/ɪ/: 'i' in 'kit'">ɪ</span><span title="'l' in 'lie'">l</span><span title="/ə/: 'a' in 'about'">ə</span><span title="/ˈ/: primary stress follows">ˈ</span><span title="'n' in 'nigh'">n</span><span title="/ɔɪ/: 'oi' in 'choice'">ɔɪ</span></span>/</a>\n'
|
|
165
|
-
'<span class="word"><span class="syllable"><span class="letter vowel">i</span><span class="letter consonant">p</span></span><span class="syllable"><span class="letter consonant onset">s</span><span class="letter vowel">u</span><span class="letter consonant">m</span></span></span>\n'
|
|
166
|
-
),
|
|
167
|
-
id="nested_inline_without_whitespace",
|
|
168
|
-
),
|
|
169
|
-
pytest.param(
|
|
170
|
-
(
|
|
171
|
-
"<!-- normal whitespaces -->\n"
|
|
172
|
-
"<span>Nihil aut odit omnis. Quam maxime est molestiae. Maxime dolorem dolores voluptas quaerat ut qui sunt vitae error.</span>\n"
|
|
173
|
-
"<!-- non-breaking whitespaces -->\n"
|
|
174
|
-
"<span>Nihil aut odit omnis. Quam maxime est molestiae. Maxime dolorem dolores voluptas quaerat ut qui sunt vitae error.</span>\n"
|
|
175
|
-
"<!-- non-breaking narrow whitespaces -->\n"
|
|
176
|
-
"<span>Prix : 32 €</span>\n"
|
|
177
|
-
" )\n"
|
|
178
|
-
"\n"
|
|
179
|
-
" html_out = (\n"
|
|
180
|
-
"<!-- normal whitespaces -->\n"
|
|
181
|
-
"<span\n"
|
|
182
|
-
" >Nihil aut odit omnis. Quam maxime est molestiae. Maxime dolorem dolores\n"
|
|
183
|
-
" voluptas quaerat ut qui sunt vitae error.</span\n"
|
|
184
|
-
">\n"
|
|
185
|
-
"<!-- non-breaking whitespaces -->\n"
|
|
186
|
-
"<span\n"
|
|
187
|
-
" >Nihil aut odit omnis. Quam maxime est molestiae. Maxime dolorem dolores voluptas quaerat ut qui sunt vitae error.</span\n"
|
|
188
|
-
">\n"
|
|
189
|
-
"<!-- non-breaking narrow whitespaces -->\n"
|
|
190
|
-
"<span>Prix : 32 €</span>\n"
|
|
191
|
-
),
|
|
192
|
-
(
|
|
193
|
-
"<!-- normal whitespaces -->\n"
|
|
194
|
-
"<span>Nihil aut odit omnis. Quam maxime est molestiae. Maxime dolorem dolores voluptas quaerat ut qui sunt vitae error.</span>\n"
|
|
195
|
-
"<!-- non-breaking whitespaces -->\n"
|
|
196
|
-
"<span>Nihil aut odit omnis. Quam maxime est molestiae. Maxime dolorem dolores voluptas quaerat ut qui sunt vitae error.</span>\n"
|
|
197
|
-
"<!-- non-breaking narrow whitespaces -->\n"
|
|
198
|
-
"<span>Prix : 32 €</span>\n"
|
|
199
|
-
")\n"
|
|
200
|
-
"html_out = (\n"
|
|
201
|
-
"<!-- normal whitespaces -->\n"
|
|
202
|
-
"<span>Nihil aut odit omnis. Quam maxime est molestiae. Maxime dolorem dolores\n"
|
|
203
|
-
"voluptas quaerat ut qui sunt vitae error.</span>\n"
|
|
204
|
-
"<!-- non-breaking whitespaces -->\n"
|
|
205
|
-
"<span>Nihil aut odit omnis. Quam maxime est molestiae. Maxime dolorem dolores voluptas quaerat ut qui sunt vitae error.</span>\n"
|
|
206
|
-
"<!-- non-breaking narrow whitespaces -->\n"
|
|
207
|
-
"<span>Prix : 32 €</span>\n"
|
|
208
|
-
),
|
|
209
|
-
id="non_breaking_whitespace",
|
|
210
|
-
),
|
|
211
|
-
pytest.param(
|
|
212
|
-
("<div> </div>\n"),
|
|
213
|
-
("<div></div>\n"),
|
|
214
|
-
id="snippet_18",
|
|
215
|
-
),
|
|
216
|
-
pytest.param(
|
|
217
|
-
("<div> </div>\n"),
|
|
218
|
-
("<div></div>\n"),
|
|
219
|
-
id="snippet_19",
|
|
220
|
-
),
|
|
221
|
-
pytest.param(
|
|
222
|
-
("<div> </div>\n"),
|
|
223
|
-
("<div></div>\n"),
|
|
224
|
-
id="snippet_20",
|
|
225
|
-
),
|
|
226
|
-
pytest.param(
|
|
227
|
-
("<div> </div>\n"),
|
|
228
|
-
("<div></div>\n"),
|
|
229
|
-
id="snippet_21",
|
|
230
|
-
),
|
|
231
|
-
pytest.param(
|
|
232
|
-
("<span> </span>\n"),
|
|
233
|
-
("<span></span>\n"),
|
|
234
|
-
id="snippet_22",
|
|
235
|
-
),
|
|
236
|
-
pytest.param(
|
|
237
|
-
("<span> </span>\n"),
|
|
238
|
-
("<span></span>\n"),
|
|
239
|
-
id="snippet_23",
|
|
240
|
-
),
|
|
241
|
-
pytest.param(
|
|
242
|
-
("<span> </span>\n"),
|
|
243
|
-
("<span></span>\n"),
|
|
244
|
-
id="snippet_24",
|
|
245
|
-
),
|
|
246
|
-
pytest.param(
|
|
247
|
-
("<span> </span>\n"),
|
|
248
|
-
("<span></span>\n"),
|
|
249
|
-
id="snippet_25",
|
|
250
|
-
),
|
|
251
|
-
pytest.param(
|
|
252
|
-
("<img/> <img/>\n"),
|
|
253
|
-
("<img /> \n" "<img />\n"),
|
|
254
|
-
id="snippet_26",
|
|
255
|
-
),
|
|
256
|
-
pytest.param(
|
|
257
|
-
("<img/> <img/>\n"),
|
|
258
|
-
("<img /> \n" "<img />\n"),
|
|
259
|
-
id="snippet_27",
|
|
260
|
-
),
|
|
261
|
-
pytest.param(
|
|
262
|
-
("<img/> <img/>\n"),
|
|
263
|
-
("<img /> \n" "<img />\n"),
|
|
264
|
-
id="snippet_28",
|
|
265
|
-
),
|
|
266
|
-
pytest.param(
|
|
267
|
-
("<img/> <img/>\n"),
|
|
268
|
-
("<img /> \n" "<img />\n"),
|
|
269
|
-
id="snippet_29",
|
|
270
|
-
),
|
|
271
|
-
pytest.param(
|
|
272
|
-
("<i /> | <i />\n"),
|
|
273
|
-
("<i /> | <i />\n"),
|
|
274
|
-
id="snippet_30",
|
|
275
|
-
),
|
|
276
|
-
pytest.param(
|
|
277
|
-
("<p><span>X</span> or <span>Y</span></p><p>X or Y</p>\n"),
|
|
278
|
-
(
|
|
279
|
-
"<p>\n"
|
|
280
|
-
" <span>X</span> or <span>Y</span>\n"
|
|
281
|
-
"</p>\n"
|
|
282
|
-
"<p>X or Y</p>\n"
|
|
283
|
-
),
|
|
284
|
-
id="snippet_31",
|
|
285
|
-
),
|
|
286
|
-
pytest.param(
|
|
287
|
-
(
|
|
288
|
-
"<!-- U+2005 -->\n"
|
|
289
|
-
"<div>before<span> </span>afterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafter</div>\n"
|
|
290
|
-
"<!-- U+005F -->\n"
|
|
291
|
-
"<div>before<span>_</span>afterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafter</div>\n"
|
|
292
|
-
"<!-- U+0020 -->\n"
|
|
293
|
-
"<div>before<span> </span>afterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafter</div>\n"
|
|
294
|
-
),
|
|
295
|
-
(
|
|
296
|
-
"<!-- U+2005 -->\n"
|
|
297
|
-
"<div>\n"
|
|
298
|
-
" before<span></span>afterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafter\n"
|
|
299
|
-
"</div>\n"
|
|
300
|
-
"<!-- U+005F -->\n"
|
|
301
|
-
"<div>\n"
|
|
302
|
-
" before<span>_</span>afterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafter\n"
|
|
303
|
-
"</div>\n"
|
|
304
|
-
"<!-- U+0020 -->\n"
|
|
305
|
-
"<div>\n"
|
|
306
|
-
" before<span></span>afterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafterafter\n"
|
|
307
|
-
"</div>\n"
|
|
308
|
-
),
|
|
309
|
-
id="snippet_2005",
|
|
310
|
-
),
|
|
311
|
-
pytest.param(
|
|
312
|
-
(
|
|
313
|
-
"<!-- U+2005 -->\n"
|
|
314
|
-
'<script type="text/unknown" lang="unknown">\n'
|
|
315
|
-
" // comment\n"
|
|
316
|
-
" // comment\n"
|
|
317
|
-
" // comment\n"
|
|
318
|
-
" // comment\n"
|
|
319
|
-
"</script>\n"
|
|
320
|
-
"<!-- U+005F -->\n"
|
|
321
|
-
'<script type="text/unknown" lang="unknown">\n'
|
|
322
|
-
" _ // comment\n"
|
|
323
|
-
" // comment\n"
|
|
324
|
-
" // comment\n"
|
|
325
|
-
" // comment\n"
|
|
326
|
-
"</script>\n"
|
|
327
|
-
"<!-- U+0020 -->\n"
|
|
328
|
-
'<script type="text/unknown" lang="unknown">\n'
|
|
329
|
-
" // comment\n"
|
|
330
|
-
" // comment\n"
|
|
331
|
-
" // comment\n"
|
|
332
|
-
" // comment\n"
|
|
333
|
-
"</script>\n"
|
|
334
|
-
),
|
|
335
|
-
(
|
|
336
|
-
"<!-- U+2005 -->\n"
|
|
337
|
-
'<script type="text/unknown" lang="unknown">\n'
|
|
338
|
-
" // comment\n"
|
|
339
|
-
" // comment\n"
|
|
340
|
-
" // comment\n"
|
|
341
|
-
" // comment\n"
|
|
342
|
-
"</script>\n"
|
|
343
|
-
"<!-- U+005F -->\n"
|
|
344
|
-
'<script type="text/unknown" lang="unknown">\n'
|
|
345
|
-
" _ // comment\n"
|
|
346
|
-
" // comment\n"
|
|
347
|
-
" // comment\n"
|
|
348
|
-
" // comment\n"
|
|
349
|
-
"</script>\n"
|
|
350
|
-
"<!-- U+0020 -->\n"
|
|
351
|
-
'<script type="text/unknown" lang="unknown">\n'
|
|
352
|
-
" // comment\n"
|
|
353
|
-
" // comment\n"
|
|
354
|
-
" // comment\n"
|
|
355
|
-
" // comment\n"
|
|
356
|
-
"</script>\n"
|
|
357
|
-
),
|
|
358
|
-
id="snippet_2005_2",
|
|
359
|
-
),
|
|
360
|
-
pytest.param(
|
|
361
|
-
(
|
|
362
|
-
"<span>123</span>\n"
|
|
363
|
-
"<span>\n"
|
|
364
|
-
"123</span>\n"
|
|
365
|
-
"<span>123\n"
|
|
366
|
-
"</span>\n"
|
|
367
|
-
"<span>\n"
|
|
368
|
-
"123\n"
|
|
369
|
-
"</span>\n"
|
|
370
|
-
"<div>123</div>\n"
|
|
371
|
-
"<div>\n"
|
|
372
|
-
"123</div>\n"
|
|
373
|
-
"<div>123\n"
|
|
374
|
-
"</div>\n"
|
|
375
|
-
"<div>\n"
|
|
376
|
-
"123\n"
|
|
377
|
-
"</div>\n"
|
|
378
|
-
),
|
|
379
|
-
(
|
|
380
|
-
"<span>123</span>\n"
|
|
381
|
-
"<span>123</span>\n"
|
|
382
|
-
"<span>123</span>\n"
|
|
383
|
-
"<span>123</span>\n"
|
|
384
|
-
"<div>123</div>\n"
|
|
385
|
-
"<div>123</div>\n"
|
|
386
|
-
"<div>123</div>\n"
|
|
387
|
-
"<div>123</div>\n"
|
|
388
|
-
),
|
|
389
|
-
id="surrounding_linebreak",
|
|
390
|
-
),
|
|
391
|
-
pytest.param(
|
|
392
|
-
(
|
|
393
|
-
"<table>\n"
|
|
394
|
-
" <thead>\n"
|
|
395
|
-
" <tr>\n"
|
|
396
|
-
" <th>A</th>\n"
|
|
397
|
-
" <th>B</th>\n"
|
|
398
|
-
" <th>C</th>\n"
|
|
399
|
-
" </tr>\n"
|
|
400
|
-
" </thead>\n"
|
|
401
|
-
"</table>\n"
|
|
402
|
-
"\n"
|
|
403
|
-
"<table><thead><tr><th>A</th><th>B</th><th>C</th></tr></thead></table>\n"
|
|
404
|
-
"\n"
|
|
405
|
-
"<table> <thead> <tr> <th> A </th> <th> B </th> <th> C </th> </tr> </thead> </table>\n"
|
|
406
|
-
"\n"
|
|
407
|
-
"<table>\n"
|
|
408
|
-
" <thead>\n"
|
|
409
|
-
" <tr>\n"
|
|
410
|
-
" </tr>\n"
|
|
411
|
-
" </thead>\n"
|
|
412
|
-
"</table>\n"
|
|
413
|
-
),
|
|
414
|
-
(
|
|
415
|
-
"<table>\n"
|
|
416
|
-
" <thead>\n"
|
|
417
|
-
" <tr>\n"
|
|
418
|
-
" <th>A</th>\n"
|
|
419
|
-
" <th>B</th>\n"
|
|
420
|
-
" <th>C</th>\n"
|
|
421
|
-
" </tr>\n"
|
|
422
|
-
" </thead>\n"
|
|
423
|
-
"</table>\n"
|
|
424
|
-
"<table>\n"
|
|
425
|
-
" <thead>\n"
|
|
426
|
-
" <tr>\n"
|
|
427
|
-
" <th>A</th>\n"
|
|
428
|
-
" <th>B</th>\n"
|
|
429
|
-
" <th>C</th>\n"
|
|
430
|
-
" </tr>\n"
|
|
431
|
-
" </thead>\n"
|
|
432
|
-
"</table>\n"
|
|
433
|
-
"<table>\n"
|
|
434
|
-
" <thead>\n"
|
|
435
|
-
" <tr>\n"
|
|
436
|
-
" <th>A</th>\n"
|
|
437
|
-
" <th>B</th>\n"
|
|
438
|
-
" <th>C</th>\n"
|
|
439
|
-
" </tr>\n"
|
|
440
|
-
" </thead>\n"
|
|
441
|
-
"</table>\n"
|
|
442
|
-
"<table>\n"
|
|
443
|
-
" <thead>\n"
|
|
444
|
-
" <tr></tr>\n"
|
|
445
|
-
" </thead>\n"
|
|
446
|
-
"</table>\n"
|
|
447
|
-
),
|
|
448
|
-
id="table",
|
|
449
|
-
),
|
|
450
|
-
pytest.param(
|
|
451
|
-
(
|
|
452
|
-
"<template>\n"
|
|
453
|
-
" <template>foo</template>\n"
|
|
454
|
-
"</template>\n"
|
|
455
|
-
"<template>\n"
|
|
456
|
-
" <template>foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo</template>\n"
|
|
457
|
-
"</template>\n"
|
|
458
|
-
),
|
|
459
|
-
(
|
|
460
|
-
"<template>\n"
|
|
461
|
-
" <template>foo</template>\n"
|
|
462
|
-
"</template>\n"
|
|
463
|
-
"<template>\n"
|
|
464
|
-
" <template>foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo</template>\n"
|
|
465
|
-
"</template>\n"
|
|
466
|
-
),
|
|
467
|
-
id="template",
|
|
468
|
-
),
|
|
469
|
-
]
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
@pytest.mark.parametrize(("source", "expected"), test_data)
|
|
473
|
-
def test_base(source, expected, basic_config):
|
|
474
|
-
output = formatter(basic_config, source)
|
|
475
|
-
|
|
476
|
-
printer(expected, source, output)
|
|
477
|
-
assert expected == output
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
"""Test yaml front matter.
|
|
2
|
-
|
|
3
|
-
poetry run pytest tests/test_html/test_yaml.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
|
-
(
|
|
13
|
-
"---\n"
|
|
14
|
-
" invalid:\n"
|
|
15
|
-
"invalid:\n"
|
|
16
|
-
"---\n"
|
|
17
|
-
"\n"
|
|
18
|
-
"\n"
|
|
19
|
-
"\n"
|
|
20
|
-
"<html><head></head><body></body></html>\n"
|
|
21
|
-
),
|
|
22
|
-
(
|
|
23
|
-
"---\n"
|
|
24
|
-
" invalid:\n"
|
|
25
|
-
"invalid:\n"
|
|
26
|
-
"---\n"
|
|
27
|
-
"\n"
|
|
28
|
-
"<html>\n"
|
|
29
|
-
" <head></head>\n"
|
|
30
|
-
" <body></body>\n"
|
|
31
|
-
"</html>\n"
|
|
32
|
-
),
|
|
33
|
-
({}),
|
|
34
|
-
id="invalid",
|
|
35
|
-
),
|
|
36
|
-
pytest.param(
|
|
37
|
-
(
|
|
38
|
-
"---\n"
|
|
39
|
-
"hello: world\n"
|
|
40
|
-
"---\n"
|
|
41
|
-
"<html><head></head><body></body></html>\n"
|
|
42
|
-
),
|
|
43
|
-
(
|
|
44
|
-
"---\n"
|
|
45
|
-
"hello: world\n"
|
|
46
|
-
"---\n"
|
|
47
|
-
"\n"
|
|
48
|
-
"<html>\n"
|
|
49
|
-
" <head></head>\n"
|
|
50
|
-
" <body></body>\n"
|
|
51
|
-
"</html>\n"
|
|
52
|
-
),
|
|
53
|
-
({}),
|
|
54
|
-
id="valid",
|
|
55
|
-
),
|
|
56
|
-
pytest.param(
|
|
57
|
-
("---\n" "layout: <div><div></div></div>\n" "---\n" "<div></div>\n"),
|
|
58
|
-
("---\n" "layout: <div><div></div></div>\n" "---\n" "\n" "<div></div>\n"),
|
|
59
|
-
({}),
|
|
60
|
-
id="more",
|
|
61
|
-
),
|
|
62
|
-
pytest.param(
|
|
63
|
-
(
|
|
64
|
-
"---mycustomparser\n"
|
|
65
|
-
"title: Hello\n"
|
|
66
|
-
"slug: home\n"
|
|
67
|
-
"---\n"
|
|
68
|
-
"<h1>\n"
|
|
69
|
-
" Hello world!</h1>\n"
|
|
70
|
-
),
|
|
71
|
-
(
|
|
72
|
-
"---mycustomparser\n"
|
|
73
|
-
"title: Hello\n"
|
|
74
|
-
"slug: home\n"
|
|
75
|
-
"---\n"
|
|
76
|
-
"\n"
|
|
77
|
-
"<h1>Hello world!</h1>\n"
|
|
78
|
-
),
|
|
79
|
-
({}),
|
|
80
|
-
id="custom_parser",
|
|
81
|
-
),
|
|
82
|
-
pytest.param(
|
|
83
|
-
("---\n" "---\n" "<h1>\n" " Hello world!</h1>\n"),
|
|
84
|
-
("---\n" "---\n" "\n" "<h1>Hello world!</h1>\n"),
|
|
85
|
-
({}),
|
|
86
|
-
id="empty",
|
|
87
|
-
),
|
|
88
|
-
pytest.param(
|
|
89
|
-
("---\n" "---\n" "<div>\n" "---\n" "</div>\n"),
|
|
90
|
-
("---\n" "---\n" "\n" "<div>---</div>\n"),
|
|
91
|
-
({}),
|
|
92
|
-
id="empty_2",
|
|
93
|
-
),
|
|
94
|
-
pytest.param(
|
|
95
|
-
("---\n" "---\n\n\n" "<div>\n" "---\n" "</div>\n"),
|
|
96
|
-
("---\n" "---\n" "\n" "<div>---</div>\n"),
|
|
97
|
-
({}),
|
|
98
|
-
id="blank_lines",
|
|
99
|
-
),
|
|
100
|
-
pytest.param(
|
|
101
|
-
("---\n" "---\n\n\n\n" "{{ this }}\n"),
|
|
102
|
-
("---\n" "---\n" "\n" "{{ this }}\n"),
|
|
103
|
-
({}),
|
|
104
|
-
id="blank_lines_2",
|
|
105
|
-
),
|
|
106
|
-
pytest.param(
|
|
107
|
-
(
|
|
108
|
-
"---\n"
|
|
109
|
-
"layout: foo\n"
|
|
110
|
-
"---\n"
|
|
111
|
-
"Test <a\n"
|
|
112
|
-
'href="https://djlint.com">abc</a>.\n'
|
|
113
|
-
),
|
|
114
|
-
(
|
|
115
|
-
"---\n"
|
|
116
|
-
"layout: foo\n"
|
|
117
|
-
"---\n"
|
|
118
|
-
"\n"
|
|
119
|
-
'Test <a href="https://djlint.com">abc</a>.\n'
|
|
120
|
-
),
|
|
121
|
-
({}),
|
|
122
|
-
id="issue_9042_no_empty_line",
|
|
123
|
-
),
|
|
124
|
-
pytest.param(
|
|
125
|
-
(
|
|
126
|
-
"---\n"
|
|
127
|
-
"layout: foo\n"
|
|
128
|
-
"---\n"
|
|
129
|
-
"Test <a\n"
|
|
130
|
-
'href="https://djlint.com">abc</a>.\n'
|
|
131
|
-
),
|
|
132
|
-
(
|
|
133
|
-
"---\n"
|
|
134
|
-
"layout: foo\n"
|
|
135
|
-
"---\n"
|
|
136
|
-
"\n"
|
|
137
|
-
'Test <a href="https://djlint.com">abc</a>.\n'
|
|
138
|
-
),
|
|
139
|
-
({}),
|
|
140
|
-
id="issue_9042",
|
|
141
|
-
),
|
|
142
|
-
pytest.param(
|
|
143
|
-
("---\n" "---\n\n\n\n" "{{ this }}\n"),
|
|
144
|
-
("---\n" "---\n" "{{ this }}\n"),
|
|
145
|
-
({"no_line_after_yaml": True}),
|
|
146
|
-
id="blank_lines_2",
|
|
147
|
-
),
|
|
148
|
-
]
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
@pytest.mark.parametrize(("source", "expected", "args"), test_data)
|
|
152
|
-
def test_base(source, expected, args):
|
|
153
|
-
output = formatter(config_builder(args), source)
|
|
154
|
-
|
|
155
|
-
printer(expected, source, output)
|
|
156
|
-
assert expected == output
|
|
File without changes
|