djLint/tests/test_nunjucks.py
Christopher Pickering a10ac08686
added fix for #152
2021-11-29 12:19:07 +01:00

71 lines
1.8 KiB
Python

"""Djlint tests specific to nunjucks.
run::
pytest tests/test_nunjucks.py --cov=src/djlint --cov-branch \
--cov-report xml:coverage.xml --cov-report term-missing
pytest tests/test_nunjucks.py::test_macro --cov=src/djlint --cov-branch \
--cov-report xml:coverage.xml --cov-report term-missing
"""
# pylint: disable=C0116
from pathlib import Path
from typing import TextIO
from click.testing import CliRunner
from src.djlint import main as djlint
from .conftest import reformat, write_to_file
def test_template_tags(runner: CliRunner, tmp_file: TextIO) -> None:
write_to_file(
tmp_file.name,
b"""{%- set posts = collections.docs -%}""",
)
runner.invoke(djlint, [tmp_file.name, "--reformat"])
assert (
Path(tmp_file.name).read_text() == """{%- set posts = collections.docs -%}\n"""
)
# ensure spaces are added
write_to_file(
tmp_file.name,
b"""{%-set posts = collections.docs-%}\n{%asdf%}""",
)
runner.invoke(djlint, [tmp_file.name, "--reformat"])
assert (
Path(tmp_file.name).read_text()
== """{%- set posts = collections.docs -%}\n{% asdf %}\n"""
)
def test_spaceless(runner: CliRunner, tmp_file: TextIO) -> None:
output = reformat(
tmp_file,
runner,
b"""{%- if entry.children.length -%}<strong>{%- endif -%}""",
)
assert output.exit_code == 0
assert (
output.text
== r"""{%- if entry.children.length -%}<strong>{%- endif -%}
"""
)
def test_macro(runner: CliRunner, tmp_file: TextIO) -> None:
output = reformat(
tmp_file, runner, b"{% macro 'cool' %}<div>some html</div>{% endmacro %}"
)
assert output.exit_code == 1
assert (
output.text
== r"""{% macro 'cool' %}
<div>some html</div>
{% endmacro %}
"""
)