Skip to content

Commit 7245a1b

Browse files
committed
Failing test cases
1 parent e201fb4 commit 7245a1b

File tree

3 files changed

+127
-0
lines changed

3 files changed

+127
-0
lines changed

liquid/golden/__init__.py

+2
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
from . import truncate_filter
7373
from . import truncatewords_filter
7474
from . import uniq_filter
75+
from . import universal_end_tags
7576
from . import unless_tag
7677
from . import upcase_filter
7778
from . import url_decode_filter
@@ -154,6 +155,7 @@
154155
truncate_filter,
155156
truncatewords_filter,
156157
uniq_filter,
158+
universal_end_tags,
157159
unless_tag,
158160
upcase_filter,
159161
url_decode_filter,

liquid/golden/universal_end_tags.py

+118
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
"""Universal `end` tag test cases."""
2+
3+
from liquid.golden.case import Case
4+
5+
cases = [
6+
Case(
7+
description="end if",
8+
template=r"{% if true %}foo{% end %}",
9+
expect="foo",
10+
future=True,
11+
),
12+
Case(
13+
description="end if, else",
14+
template=r"{% if false %}foo{% else %}bar{% end %}",
15+
expect="bar",
16+
future=True,
17+
),
18+
Case(
19+
description="end if, elsif",
20+
template=r"{% if false %}foo{% elsif true %}bar{% end %}",
21+
expect="bar",
22+
future=True,
23+
),
24+
Case(
25+
description="end if, whitespace control",
26+
template="{% if true -%}\nfoo\n{%- end %}",
27+
expect="foo",
28+
future=True,
29+
),
30+
Case(
31+
description="end for",
32+
template=r"{% for x in (1..2) %}{{ x }},{% end %}",
33+
expect="1,2,",
34+
future=True,
35+
),
36+
Case(
37+
description="end for, else",
38+
template=r"{% for x in a %}{{ x }},{% else %}bar{% end %}",
39+
expect="bar",
40+
future=True,
41+
globals={"a": []},
42+
),
43+
Case(
44+
description="end if, nested universal",
45+
template="\n".join(
46+
[
47+
r"{% if true %}",
48+
r"foo",
49+
r"{% if true %}",
50+
r"bar",
51+
r"{% end %}",
52+
r"{% end %}",
53+
]
54+
),
55+
expect="\nfoo\n\nbar\n\n",
56+
future=True,
57+
),
58+
Case(
59+
description="end if, alternative, nested universal",
60+
template="\n".join(
61+
[
62+
r"{% if false %}",
63+
r"foo",
64+
r"{% else %}",
65+
r"{% if true %}",
66+
r"bar",
67+
r"{% end %}",
68+
r"{% end %}",
69+
]
70+
),
71+
expect="\n\nbar\n\n",
72+
future=True,
73+
),
74+
Case(
75+
description="end if, nested inner",
76+
template="\n".join(
77+
[
78+
r"{% if true %}",
79+
r"foo",
80+
r"{% if true %}",
81+
r"bar",
82+
r"{% end %}",
83+
r"{% endif %}",
84+
]
85+
),
86+
expect="\nfoo\n\nbar\n\n",
87+
future=True,
88+
),
89+
Case(
90+
description="end if, nested outer",
91+
template="\n".join(
92+
[
93+
r"{% if true %}",
94+
r"foo",
95+
r"{% if true %}",
96+
r"bar",
97+
r"{% endif %}",
98+
r"{% end %}",
99+
]
100+
),
101+
expect="\nfoo\n\nbar\n\n",
102+
future=True,
103+
),
104+
Case(
105+
description="liquid, end if",
106+
template="\n".join(
107+
[
108+
r"{% liquid ",
109+
r"if true",
110+
r" echo 'foo'",
111+
r"end",
112+
r"%}",
113+
]
114+
),
115+
expect="foo",
116+
future=True,
117+
),
118+
]

tests/test_render.py

+7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
"""Liquid render tests."""
2+
23
import asyncio
34
import unittest
45
from typing import List
@@ -14,6 +15,8 @@
1415
from liquid.template import BoundTemplate
1516
from liquid.template import FutureAwareBoundTemplate
1617

18+
# mypy: disable-error-code="no-untyped-def"
19+
1720

1821
class RenderTestCase(unittest.TestCase):
1922
def _test(
@@ -438,3 +441,7 @@ def test_special_properties(self):
438441
def test_identifiers(self):
439442
"""Test permitted identifiers."""
440443
self._test(golden.identifiers.cases)
444+
445+
def test_universal_end_tags(self) -> None:
446+
"""Test universal aka anonymous end tags."""
447+
self._test(golden.universal_end_tags.cases)

0 commit comments

Comments
 (0)