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.
Files changed (368) hide show
  1. package/package.json +3 -2
  2. package/.coveragerc +0 -9
  3. package/.editorconfig +0 -21
  4. package/.flake8 +0 -0
  5. package/.github/FUNDING.yml +0 -2
  6. package/.github/ISSUE_TEMPLATE/config.yml +0 -6
  7. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  8. package/.github/ISSUE_TEMPLATE/formatter_but_report.md +0 -30
  9. package/.github/ISSUE_TEMPLATE/linter_bug_report.md +0 -34
  10. package/.github/ISSUE_TEMPLATE/translation.md +0 -14
  11. package/.github/config.yml +0 -4
  12. package/.github/pull_request_template.md +0 -10
  13. package/.github/workflows/cancel.yml +0 -17
  14. package/.github/workflows/demo.yml +0 -98
  15. package/.github/workflows/issues.yml +0 -23
  16. package/.github/workflows/linkcheck.yaml +0 -21
  17. package/.github/workflows/lint.yml +0 -25
  18. package/.github/workflows/release.yml +0 -57
  19. package/.github/workflows/test.yml +0 -85
  20. package/.pre-commit-config.yaml +0 -45
  21. package/.pre-commit-hooks.yaml +0 -71
  22. package/.prettierignore +0 -7
  23. package/.prettierrc +0 -11
  24. package/.releaserc +0 -16
  25. package/CHANGELOG.md +0 -13
  26. package/MANIFEST.in +0 -2
  27. package/build_demo.sh +0 -17
  28. package/docs/.eleventy.js +0 -425
  29. package/docs/.eleventyignore +0 -2
  30. package/docs/.prettierignore +0 -3
  31. package/docs/.prettierrc +0 -11
  32. package/docs/package.json +0 -73
  33. package/docs/readme.md +0 -17
  34. package/docs/src/_data/configuration.json +0 -646
  35. package/docs/src/_data/eleventyComputed.js +0 -22
  36. package/docs/src/_data/i18n/index.js +0 -159
  37. package/docs/src/_data/js.js +0 -7
  38. package/docs/src/_data/locales.js +0 -17
  39. package/docs/src/_data/site.json +0 -8
  40. package/docs/src/_includes/demo.njk +0 -157
  41. package/docs/src/_includes/docs_layout.njk +0 -34
  42. package/docs/src/_includes/foot.njk +0 -26
  43. package/docs/src/_includes/index.njk +0 -187
  44. package/docs/src/_includes/languages_layout.njk +0 -11
  45. package/docs/src/_includes/layout.njk +0 -111
  46. package/docs/src/_includes/nav.njk +0 -85
  47. package/docs/src/_utils/minify-html.js +0 -14
  48. package/docs/src/_utils/rollupper.js +0 -91
  49. package/docs/src/_utils/scripts.11ty.js +0 -27
  50. package/docs/src/demo.njk +0 -4
  51. package/docs/src/docs/best-practices.md +0 -78
  52. package/docs/src/docs/changelog.md +0 -452
  53. package/docs/src/docs/configuration.md +0 -145
  54. package/docs/src/docs/docs.json +0 -4
  55. package/docs/src/docs/formatter.md +0 -82
  56. package/docs/src/docs/getting-started.md +0 -126
  57. package/docs/src/docs/ignoring-code.md +0 -75
  58. package/docs/src/docs/integrations.md +0 -120
  59. package/docs/src/docs/languages/angular.md +0 -31
  60. package/docs/src/docs/languages/django.md +0 -40
  61. package/docs/src/docs/languages/golang.md +0 -31
  62. package/docs/src/docs/languages/handlebars.md +0 -31
  63. package/docs/src/docs/languages/jinja.md +0 -39
  64. package/docs/src/docs/languages/languages.json +0 -3
  65. package/docs/src/docs/languages/mustache.md +0 -31
  66. package/docs/src/docs/languages/nunjucks.md +0 -39
  67. package/docs/src/docs/languages/twig.md +0 -41
  68. package/docs/src/docs/linter.md +0 -199
  69. package/docs/src/fr/demo.njk +0 -4
  70. package/docs/src/fr/docs/best-practices.md +0 -78
  71. package/docs/src/fr/docs/changelog.md +0 -452
  72. package/docs/src/fr/docs/configuration.md +0 -144
  73. package/docs/src/fr/docs/docs.json +0 -3
  74. package/docs/src/fr/docs/formatter.md +0 -83
  75. package/docs/src/fr/docs/getting-started.md +0 -127
  76. package/docs/src/fr/docs/ignoring-code.md +0 -75
  77. package/docs/src/fr/docs/integrations.md +0 -100
  78. package/docs/src/fr/docs/languages/angular.md +0 -31
  79. package/docs/src/fr/docs/languages/django.md +0 -31
  80. package/docs/src/fr/docs/languages/golang.md +0 -31
  81. package/docs/src/fr/docs/languages/handlebars.md +0 -31
  82. package/docs/src/fr/docs/languages/jinja.md +0 -31
  83. package/docs/src/fr/docs/languages/languages.json +0 -3
  84. package/docs/src/fr/docs/languages/mustache.md +0 -31
  85. package/docs/src/fr/docs/languages/nunjucks.md +0 -31
  86. package/docs/src/fr/docs/languages/twig.md +0 -31
  87. package/docs/src/fr/docs/linter.md +0 -207
  88. package/docs/src/fr/fr.json +0 -4
  89. package/docs/src/fr/index.njk +0 -4
  90. package/docs/src/index.njk +0 -4
  91. package/docs/src/lib/generate-content-hash.js +0 -13
  92. package/docs/src/robots.txt +0 -4
  93. package/docs/src/ru/demo.njk +0 -4
  94. package/docs/src/ru/docs/best-practices.md +0 -78
  95. package/docs/src/ru/docs/changelog.md +0 -453
  96. package/docs/src/ru/docs/configuration.md +0 -142
  97. package/docs/src/ru/docs/docs.json +0 -3
  98. package/docs/src/ru/docs/formatter.md +0 -82
  99. package/docs/src/ru/docs/getting-started.md +0 -127
  100. package/docs/src/ru/docs/ignoring-code.md +0 -75
  101. package/docs/src/ru/docs/integrations.md +0 -100
  102. package/docs/src/ru/docs/languages/angular.md +0 -31
  103. package/docs/src/ru/docs/languages/django.md +0 -31
  104. package/docs/src/ru/docs/languages/golang.md +0 -31
  105. package/docs/src/ru/docs/languages/handlebars.md +0 -31
  106. package/docs/src/ru/docs/languages/jinja.md +0 -31
  107. package/docs/src/ru/docs/languages/languages.json +0 -3
  108. package/docs/src/ru/docs/languages/mustache.md +0 -31
  109. package/docs/src/ru/docs/languages/nunjucks.md +0 -31
  110. package/docs/src/ru/docs/languages/twig.md +0 -31
  111. package/docs/src/ru/docs/linter.md +0 -126
  112. package/docs/src/ru/index.njk +0 -4
  113. package/docs/src/ru/ru.json +0 -4
  114. package/docs/src/sitemap.njk +0 -16
  115. package/docs/src/static/css/site.scss +0 -467
  116. package/docs/src/static/font/fontawesome/stylesheet.scss +0 -78
  117. package/docs/src/static/img/apple-touch-icon.png +0 -0
  118. package/docs/src/static/img/demo-min.gif +0 -0
  119. package/docs/src/static/img/demo.gif +0 -0
  120. package/docs/src/static/img/demo.webm +0 -0
  121. package/docs/src/static/img/favicon-16x16.png +0 -0
  122. package/docs/src/static/img/favicon-32x32.png +0 -0
  123. package/docs/src/static/img/favicon.ico +0 -0
  124. package/docs/src/static/img/icon-square.indd +0 -0
  125. package/docs/src/static/img/icon-square.png +0 -0
  126. package/docs/src/static/img/icon.png +0 -0
  127. package/docs/src/static/img/logo-192x192.png +0 -0
  128. package/docs/src/static/img/logo-512x512.png +0 -0
  129. package/docs/src/static/img/logos/angular.png +0 -0
  130. package/docs/src/static/img/logos/django.png +0 -0
  131. package/docs/src/static/img/logos/golang.png +0 -0
  132. package/docs/src/static/img/logos/handlebars.png +0 -0
  133. package/docs/src/static/img/logos/jinja.png +0 -0
  134. package/docs/src/static/img/logos/mustache.png +0 -0
  135. package/docs/src/static/img/logos/nunjucks.png +0 -0
  136. package/docs/src/static/img/logos/twig.png +0 -0
  137. package/docs/src/static/img/old_demo.gif +0 -0
  138. package/docs/src/static/img/style.css +0 -122
  139. package/docs/src/static/js/animate.js +0 -69
  140. package/docs/src/static/js/editor.js +0 -171
  141. package/docs/src/static/js/hamburger.js +0 -19
  142. package/docs/src/static/js/modal.js +0 -47
  143. package/docs/src/static/js/worker.js +0 -142
  144. package/docs/src/static/py/EditorConfig-99-py3-none-any.whl +0 -0
  145. package/docs/src/static/py/PyYAML-99-py3-none-any.whl +0 -0
  146. package/docs/src/static/py/click-99-py3-none-any.whl +0 -0
  147. package/docs/src/static/py/colorama-99-py3-none-any.whl +0 -0
  148. package/docs/src/static/py/cssbeautifier-99-py3-none-any.whl +0 -0
  149. package/docs/src/static/py/djlint-99-py3-none-any.whl +0 -0
  150. package/docs/src/static/py/html_tag_names-99-py3-none-any.whl +0 -0
  151. package/docs/src/static/py/html_void_elements-99-py3-none-any.whl +0 -0
  152. package/docs/src/static/py/jsbeautifier-99-py3-none-any.whl +0 -0
  153. package/docs/src/static/py/json5-99-py3-none-any.whl +0 -0
  154. package/docs/src/static/py/pathspec-99-py3-none-any.whl +0 -0
  155. package/docs/src/static/py/regex-2023.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +0 -0
  156. package/docs/src/static/py/six-1.16.0-py2.py3-none-any.whl +0 -0
  157. package/docs/src/static/py/tomli-2.0.1-py3-none-any.whl +0 -0
  158. package/docs/src/static/py/tqdm-4.65.0-py3-none-any.whl +0 -0
  159. package/icon.xcf +0 -0
  160. package/poetry.lock +0 -835
  161. package/pyproject.toml +0 -100
  162. package/renovate.json +0 -44
  163. package/scripts/updateVersion.js +0 -16
  164. package/src/djlint/__init__.py +0 -451
  165. package/src/djlint/__main__.py +0 -4
  166. package/src/djlint/formatter/__init__.py +0 -1
  167. package/src/djlint/formatter/attributes.py +0 -212
  168. package/src/djlint/formatter/compress.py +0 -64
  169. package/src/djlint/formatter/condense.py +0 -221
  170. package/src/djlint/formatter/css.py +0 -60
  171. package/src/djlint/formatter/expand.py +0 -111
  172. package/src/djlint/formatter/indent.py +0 -418
  173. package/src/djlint/formatter/js.py +0 -58
  174. package/src/djlint/helpers.py +0 -321
  175. package/src/djlint/lint.py +0 -128
  176. package/src/djlint/output.py +0 -220
  177. package/src/djlint/reformat.py +0 -63
  178. package/src/djlint/rules/H025.py +0 -65
  179. package/src/djlint/rules.yaml +0 -279
  180. package/src/djlint/settings.py +0 -969
  181. package/src/djlint/src.py +0 -91
  182. package/tests/__init__.py +0 -0
  183. package/tests/conftest.py +0 -239
  184. package/tests/test_cli.py +0 -71
  185. package/tests/test_config/__init__.py +0 -0
  186. package/tests/test_config/test_blank_line_after_tag.py +0 -135
  187. package/tests/test_config/test_blank_line_before_tag.py +0 -141
  188. package/tests/test_config/test_close_void_tags.py +0 -31
  189. package/tests/test_config/test_custom_blocks.py +0 -56
  190. package/tests/test_config/test_custom_html.py +0 -45
  191. package/tests/test_config/test_djlintrc/.djlintrc +0 -38
  192. package/tests/test_config/test_djlintrc/__init__.py +0 -0
  193. package/tests/test_config/test_djlintrc/test_config.py +0 -44
  194. package/tests/test_config/test_djlintrc_custom/.djlint-cust +0 -38
  195. package/tests/test_config/test_djlintrc_custom/.djlintrc +0 -2
  196. package/tests/test_config/test_djlintrc_custom/__init__.py +0 -0
  197. package/tests/test_config/test_djlintrc_custom/test_config.py +0 -48
  198. package/tests/test_config/test_excludes/__init__.py +0 -0
  199. package/tests/test_config/test_excludes/excluded.html +0 -1
  200. package/tests/test_config/test_excludes/foo/excluded.html +0 -1
  201. package/tests/test_config/test_excludes/html.html +0 -1
  202. package/tests/test_config/test_excludes/pyproject.toml +0 -3
  203. package/tests/test_config/test_excludes/test_config.py +0 -30
  204. package/tests/test_config/test_extension/__init__.py +0 -0
  205. package/tests/test_config/test_extension/html.test +0 -1
  206. package/tests/test_config/test_extension/pyproject.toml +0 -3
  207. package/tests/test_config/test_extension/test_config.py +0 -27
  208. package/tests/test_config/test_files/.djlintrc_global +0 -9
  209. package/tests/test_config/test_files/test.html +0 -3
  210. package/tests/test_config/test_files/test_config.py +0 -123
  211. package/tests/test_config/test_files/test_two.html +0 -1
  212. package/tests/test_config/test_format_attribute_template_tags.py +0 -280
  213. package/tests/test_config/test_format_css.py +0 -197
  214. package/tests/test_config/test_format_js.py +0 -220
  215. package/tests/test_config/test_gitignore/__init__.py +0 -0
  216. package/tests/test_config/test_gitignore/html_one.html +0 -1
  217. package/tests/test_config/test_gitignore/html_two.html +0 -1
  218. package/tests/test_config/test_gitignore/test_config.py +0 -142
  219. package/tests/test_config/test_ignore/__init__.py +0 -0
  220. package/tests/test_config/test_ignore/html.html +0 -1
  221. package/tests/test_config/test_ignore/html_two.html +0 -12
  222. package/tests/test_config/test_ignore/pyproject.toml +0 -3
  223. package/tests/test_config/test_ignore/test_config.py +0 -32
  224. package/tests/test_config/test_ignore_blocks.py +0 -45
  225. package/tests/test_config/test_ignore_case.py +0 -39
  226. package/tests/test_config/test_indent.py +0 -63
  227. package/tests/test_config/test_linter_output_format/__init__.py +0 -0
  228. package/tests/test_config/test_linter_output_format/html-one.html +0 -1
  229. package/tests/test_config/test_linter_output_format/html-two.html +0 -1
  230. package/tests/test_config/test_linter_output_format/pyproject.toml +0 -3
  231. package/tests/test_config/test_linter_output_format/test_config.py +0 -34
  232. package/tests/test_config/test_max_attribute_length.py +0 -100
  233. package/tests/test_config/test_max_line_length.py +0 -94
  234. package/tests/test_config/test_per_file_ignores/__init__.py +0 -0
  235. package/tests/test_config/test_per_file_ignores/html.html +0 -2
  236. package/tests/test_config/test_per_file_ignores/pyproject.toml +0 -2
  237. package/tests/test_config/test_per_file_ignores/test_config.py +0 -25
  238. package/tests/test_config/test_pragmas/__init__.py +0 -0
  239. package/tests/test_config/test_pragmas/html_five.html +0 -2
  240. package/tests/test_config/test_pragmas/html_four.html +0 -5
  241. package/tests/test_config/test_pragmas/html_one.html +0 -1
  242. package/tests/test_config/test_pragmas/html_six.html +0 -2
  243. package/tests/test_config/test_pragmas/html_three.html +0 -4
  244. package/tests/test_config/test_pragmas/html_two.html +0 -2
  245. package/tests/test_config/test_pragmas/pyproject.toml +0 -3
  246. package/tests/test_config/test_pragmas/test_config.py +0 -142
  247. package/tests/test_config/test_preserve_blank_lines.py +0 -109
  248. package/tests/test_config/test_preserve_leading_space.py +0 -159
  249. package/tests/test_config/test_profile/__init__.py +0 -0
  250. package/tests/test_config/test_profile/html.html +0 -2
  251. package/tests/test_config/test_profile/pyproject.toml +0 -3
  252. package/tests/test_config/test_profile/test_config.py +0 -64
  253. package/tests/test_config/test_pyproject/__init__.py +0 -0
  254. package/tests/test_config/test_pyproject/blank.html +0 -0
  255. package/tests/test_config/test_pyproject/pyproject.toml +0 -36
  256. package/tests/test_config/test_pyproject/test_config.py +0 -44
  257. package/tests/test_django/__init__.py +0 -0
  258. package/tests/test_django/test_asset.py +0 -32
  259. package/tests/test_django/test_autoescape.py +0 -25
  260. package/tests/test_django/test_block.py +0 -29
  261. package/tests/test_django/test_blocktrans.py +0 -236
  262. package/tests/test_django/test_blocktrans_trimmed.py +0 -283
  263. package/tests/test_django/test_comments.py +0 -164
  264. package/tests/test_django/test_filter.py +0 -30
  265. package/tests/test_django/test_for.py +0 -34
  266. package/tests/test_django/test_if.py +0 -34
  267. package/tests/test_django/test_ifchanged.py +0 -37
  268. package/tests/test_django/test_include.py +0 -24
  269. package/tests/test_django/test_load.py +0 -24
  270. package/tests/test_django/test_quoted.py +0 -34
  271. package/tests/test_django/test_spaceless.py +0 -30
  272. package/tests/test_django/test_tag_spaces.py +0 -35
  273. package/tests/test_django/test_templatetag.py +0 -40
  274. package/tests/test_django/test_verbatim.py +0 -24
  275. package/tests/test_django/test_with.py +0 -32
  276. package/tests/test_djlint/-.html +0 -1
  277. package/tests/test_djlint/__init__.py +0 -0
  278. package/tests/test_djlint/bad.html +0 -6
  279. package/tests/test_djlint/bad.html.dj +0 -23
  280. package/tests/test_djlint/bad.html.dj2 +0 -2
  281. package/tests/test_djlint/multiple_files/a/a.html +0 -1
  282. package/tests/test_djlint/multiple_files/b/b1.html +0 -1
  283. package/tests/test_djlint/multiple_files/b/b2.html +0 -1
  284. package/tests/test_djlint/test_djlint.py +0 -242
  285. package/tests/test_golang/__init__.py +0 -0
  286. package/tests/test_golang/test_if.py +0 -24
  287. package/tests/test_golang/test_range.py +0 -24
  288. package/tests/test_handlebars/__init__.py +0 -0
  289. package/tests/test_handlebars/test_each.py +0 -34
  290. package/tests/test_handlebars/test_else.py +0 -24
  291. package/tests/test_handlebars/test_with.py +0 -24
  292. package/tests/test_html/__init__.py +0 -0
  293. package/tests/test_html/test_alpinejs.py +0 -65
  294. package/tests/test_html/test_attributes.py +0 -935
  295. package/tests/test_html/test_aurelia.py +0 -24
  296. package/tests/test_html/test_basics.py +0 -905
  297. package/tests/test_html/test_bracket_same_line.py +0 -177
  298. package/tests/test_html/test_case.py +0 -81
  299. package/tests/test_html/test_cdata.py +0 -34
  300. package/tests/test_html/test_comments.py +0 -333
  301. package/tests/test_html/test_css.py +0 -193
  302. package/tests/test_html/test_doctype_declarations.py +0 -202
  303. package/tests/test_html/test_ignored.py +0 -193
  304. package/tests/test_html/test_interpolation.py +0 -56
  305. package/tests/test_html/test_line_break_after_multiline_tag.py +0 -95
  306. package/tests/test_html/test_next_line_empty.py +0 -53
  307. package/tests/test_html/test_selfclosing.py +0 -55
  308. package/tests/test_html/test_single_attribute_per_line.py +0 -87
  309. package/tests/test_html/test_srcset.py +0 -43
  310. package/tests/test_html/test_svg.py +0 -104
  311. package/tests/test_html/test_symbol_entities.py +0 -34
  312. package/tests/test_html/test_tag_code.py +0 -24
  313. package/tests/test_html/test_tag_dd.py +0 -24
  314. package/tests/test_html/test_tag_details_summary.py +0 -24
  315. package/tests/test_html/test_tag_dt.py +0 -24
  316. package/tests/test_html/test_tag_fig_caption.py +0 -29
  317. package/tests/test_html/test_tag_hr.py +0 -29
  318. package/tests/test_html/test_tag_picture.py +0 -32
  319. package/tests/test_html/test_tag_pre.py +0 -45
  320. package/tests/test_html/test_tag_script.py +0 -516
  321. package/tests/test_html/test_tag_small.py +0 -24
  322. package/tests/test_html/test_tag_span.py +0 -119
  323. package/tests/test_html/test_tag_textarea.py +0 -82
  324. package/tests/test_html/test_tags.py +0 -842
  325. package/tests/test_html/test_text.py +0 -34
  326. package/tests/test_html/test_whitespace.py +0 -477
  327. package/tests/test_html/test_yaml.py +0 -156
  328. package/tests/test_jinja/__init__.py +0 -0
  329. package/tests/test_jinja/test_call.py +0 -34
  330. package/tests/test_jinja/test_parenthesis.py +0 -24
  331. package/tests/test_linter/__init__.py +0 -0
  332. package/tests/test_linter/test_custom_rules/.djlint_rules.yaml +0 -6
  333. package/tests/test_linter/test_custom_rules/__init__.py +0 -0
  334. package/tests/test_linter/test_custom_rules/html.html +0 -1
  335. package/tests/test_linter/test_custom_rules/pyproject.toml +0 -1
  336. package/tests/test_linter/test_custom_rules/test_linter.py +0 -29
  337. package/tests/test_linter/test_custom_rules_bad/.djlint_rules.yaml +0 -24
  338. package/tests/test_linter/test_custom_rules_bad/__init__.py +0 -0
  339. package/tests/test_linter/test_custom_rules_bad/html.html +0 -1
  340. package/tests/test_linter/test_custom_rules_bad/pyproject.toml +0 -1
  341. package/tests/test_linter/test_custom_rules_bad/test_linter.py +0 -29
  342. package/tests/test_linter/test_django_linter.py +0 -476
  343. package/tests/test_linter/test_h005.py +0 -45
  344. package/tests/test_linter/test_h006.py +0 -81
  345. package/tests/test_linter/test_h007.py +0 -45
  346. package/tests/test_linter/test_h008.py +0 -60
  347. package/tests/test_linter/test_h009.py +0 -45
  348. package/tests/test_linter/test_h010.py +0 -44
  349. package/tests/test_linter/test_h037.py +0 -150
  350. package/tests/test_linter/test_ignore_rules.py +0 -45
  351. package/tests/test_linter/test_jinja_linter.py +0 -227
  352. package/tests/test_linter/test_linter.py +0 -691
  353. package/tests/test_linter/test_nunjucks_linter.py +0 -59
  354. package/tests/test_linter/test_python_module_rules/.djlint_rules.yaml +0 -4
  355. package/tests/test_linter/test_python_module_rules/__init__.py +0 -0
  356. package/tests/test_linter/test_python_module_rules/html_bad.html +0 -3
  357. package/tests/test_linter/test_python_module_rules/html_ok.html +0 -3
  358. package/tests/test_linter/test_python_module_rules/my_module.py +0 -32
  359. package/tests/test_linter/test_python_module_rules/pyproject.toml +0 -1
  360. package/tests/test_linter/test_python_module_rules/test_linter.py +0 -26
  361. package/tests/test_nunjucks/__init__.py +0 -0
  362. package/tests/test_nunjucks/test_functions.py +0 -94
  363. package/tests/test_nunjucks/test_macros.py +0 -41
  364. package/tests/test_nunjucks/test_set.py +0 -206
  365. package/tests/test_nunjucks/test_spaceless.py +0 -24
  366. package/tests/test_twig/__init__.py +0 -0
  367. package/tests/test_twig/test_comments.py +0 -51
  368. 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
- }
@@ -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,3 +0,0 @@
1
- [tool.djlint]
2
- exclude = "foo/excluded.html"
3
- extend_exclude = "excluded.html"
@@ -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,3 +0,0 @@
1
- [tool]
2
- [tool.djlint]
3
- extension = "test"
@@ -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,9 +0,0 @@
1
- {
2
- "profile": "django",
3
- "indent": 2,
4
- "ignore": "",
5
- "files": [
6
- "./tests/test_config/test_files/test.html",
7
- "./tests/test_config/test_files/test_two.html"
8
- ]
9
- }
@@ -1,3 +0,0 @@
1
- <div>
2
- <p></p>
3
- </div>
@@ -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>