Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc12b08f

Browse files
committed
Refactored unit tests
1 parent24ecb5b commitc12b08f

File tree

1 file changed

+189
-91
lines changed

1 file changed

+189
-91
lines changed

‎html5lib/tests/test_jinja.py‎

Lines changed: 189 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -15,137 +15,145 @@ def dump(tree, tabs=0):
1515

1616
classJinjaTestCase(unittest.TestCase):
1717
defsetUp(self):
18-
self.parser=html5lib.HTMLParser(strict=False,namespaceHTMLElements=False)
18+
self.parser=html5lib.HTMLParser(strict=True,namespaceHTMLElements=False)
1919

2020
deftest_var_1(self):
2121
html_string="""<h1>{{ hi }}</h1>"""
2222

2323
tree=self.parser.parseFragment(html_string)
2424

25-
h1=tree[0]
26-
jt=h1[0]
27-
var1=jt[0]
28-
self.assertEqual(h1.tag,"h1")
29-
self.assertEqual(var1.tag,'jinjavariable')
30-
self.assertEqual(var1.attrib['value'],'hi')
25+
self.assertTree(tree, [{
26+
'tag':'h1',
27+
'children': [{
28+
'tag':'jinjavariabletag',
29+
'children': [{
30+
'tag':'jinjavariable',
31+
'value':'hi'
32+
}]
33+
}]
34+
}])
3135

3236
deftest_var_2(self):
3337
html_string="""<h1>{{ a.b }}</h1>"""
3438

3539
tree=self.parser.parseFragment(html_string)
3640

37-
h1=tree[0]
38-
jt=h1[0]
39-
var1=jt[0]
40-
self.assertEqual(h1.tag,"h1")
41-
self.assertEqual(var1.tag,'jinjavariable')
42-
self.assertEqual(var1.attrib['value'],'a.b')
41+
self.assertTree(tree, [{
42+
'tag':'h1',
43+
'children': [{
44+
'tag':'jinjavariabletag',
45+
'children': [{
46+
'tag':'jinjavariable',
47+
'value':'a.b'
48+
}]
49+
}]
50+
}])
4351

4452
deftest_filter_1(self):
4553
html_string="""<h1>{{ hi | yo }}</h1>"""
4654

4755
tree=self.parser.parseFragment(html_string)
4856

49-
h1=tree[0]
50-
self.assertEqual(h1.tag,"h1")
51-
52-
jt=h1[0]
53-
54-
hi=jt[0]
55-
pipe1=jt[1]
56-
yo=jt[2]
57-
58-
self.assertEqual(hi.tag,'jinjavariable')
59-
self.assertEqual(hi.attrib['value'],'hi')
60-
self.assertEqual(pipe1.tag,'jinjapipe')
61-
self.assertEqual(pipe1.attrib['value'],'|')
62-
self.assertEqual(yo.tag,'jinjafilter')
63-
self.assertEqual(yo.attrib['value'],'yo')
57+
self.assertTree(tree, [{
58+
'tag':'h1',
59+
'children': [{
60+
'tag':'jinjavariabletag',
61+
'children': [{
62+
'tag':'jinjavariable',
63+
'value':'hi'
64+
}, {
65+
'tag':'jinjapipe',
66+
'value':'|'
67+
}, {
68+
'tag':'jinjafilter',
69+
'value':'yo'
70+
}]
71+
}]
72+
}])
6473

6574
deftest_filter_2(self):
6675
html_string="""<h1>{{ hi | yo("hi") }}</h1>"""
6776

6877
tree=self.parser.parseFragment(html_string)
6978
dump(tree)
7079

71-
h1=tree[0]
72-
self.assertEqual(h1.tag,"h1")
73-
74-
jt=h1[0]
75-
76-
hi=jt[0]
77-
pipe1=jt[1]
78-
yo=jt[2]
79-
80-
self.assertEqual(hi.tag,'jinjavariable')
81-
self.assertEqual(hi.attrib['value'],'hi')
82-
self.assertEqual(pipe1.tag,'jinjapipe')
83-
self.assertEqual(pipe1.attrib['value'],'|')
84-
self.assertEqual(yo.tag,'jinjafilter')
85-
self.assertEqual(yo.attrib['value'],'yo')
86-
87-
arg1=yo[0]
88-
89-
self.assertEqual(arg1.tag,'jinjaargument')
90-
self.assertEqual(arg1.attrib['value'],'"hi"')
80+
self.assertTree(tree, [{
81+
'tag':'h1',
82+
'children': [{
83+
'tag':'jinjavariabletag',
84+
'children': [{
85+
'tag':'jinjavariable',
86+
'value':'hi'
87+
}, {
88+
'tag':'jinjapipe',
89+
'value':'|'
90+
}, {
91+
'tag':'jinjafilter',
92+
'value':'yo',
93+
'children': [{
94+
'tag':'jinjaargument',
95+
'value':'"hi"'
96+
}]
97+
}]
98+
}]
99+
}])
91100

92101
deftest_filter_3(self):
93102
html_string="""<h1>{{ hi | yo("hi", "mike") }}</h1>"""
94103

95104
tree=self.parser.parseFragment(html_string)
96105
dump(tree)
97106

98-
h1=tree[0]
99-
self.assertEqual(h1.tag,"h1")
100-
101-
jt=h1[0]
102-
103-
hi=jt[0]
104-
pipe1=jt[1]
105-
yo=jt[2]
106-
107-
self.assertEqual(hi.tag,'jinjavariable')
108-
self.assertEqual(hi.attrib['value'],'hi')
109-
self.assertEqual(pipe1.tag,'jinjapipe')
110-
self.assertEqual(pipe1.attrib['value'],'|')
111-
self.assertEqual(yo.tag,'jinjafilter')
112-
self.assertEqual(yo.attrib['value'],'yo')
113-
114-
arg1=yo[0]
115-
arg2=yo[1]
116-
117-
self.assertEqual(arg1.tag,'jinjaargument')
118-
self.assertEqual(arg1.attrib['value'],'"hi"')
119-
self.assertEqual(arg2.tag,'jinjaargument')
120-
self.assertEqual(arg2.attrib['value'],'"mike"')
107+
self.assertTree(tree, [{
108+
'tag':'h1',
109+
'children': [{
110+
'tag':'jinjavariabletag',
111+
'children': [{
112+
'tag':'jinjavariable',
113+
'value':'hi'
114+
}, {
115+
'tag':'jinjapipe',
116+
'value':'|'
117+
}, {
118+
'tag':'jinjafilter',
119+
'value':'yo',
120+
'children': [{
121+
'tag':'jinjaargument',
122+
'value':'"hi"'
123+
}, {
124+
'tag':'jinjaargument',
125+
'value':'"mike"'
126+
}]
127+
}]
128+
}]
129+
}])
121130

122131
deftest_jinja_block(self):
123132
html_string="""
124133
{% block title %}Hi{% endblock %}
125134
"""
126135

127136
tree=self.parser.parseFragment(html_string)
128-
dump(tree)
129-
130-
block=tree[0]
131137

132-
self.assertEqual(block.tag,'jinjablock')
133-
self.assertEqual(block.text,'Hi')
138+
self.assertTree(tree, [{
139+
'tag':'jinjablock',
140+
'text':'Hi'
141+
}])
134142

135143
deftest_jinja_block_in_title(self):
136144
html_string="""
137145
<title>{% block title %}{% endblock %}</title>
138146
"""
139147

140148
tree=self.parser.parseFragment(html_string)
141-
dump(tree)
142-
143-
title=tree[0]
144-
block=title[0]
145149

146-
self.assertEqual(title.tag,'title')
147-
self.assertEqual(block.tag,'jinjablock')
148-
self.assertEqual(block.attrib['value'],'title')
150+
self.assertTree(tree, [{
151+
'tag':'title',
152+
'children': [{
153+
'tag':'jinjablock',
154+
'value':'title'
155+
}]
156+
}])
149157

150158
deftest_jinja_for(self):
151159
html_string="""
@@ -155,14 +163,104 @@ def test_jinja_for(self):
155163
"""
156164

157165
tree=self.parser.parseFragment(html_string)
166+
167+
self.assertTree(tree, [{
168+
'tag':'jinjafor',
169+
'value':'a in b',
170+
'children': [{
171+
'tag':'jinjavariabletag',
172+
'children': [{
173+
'tag':'jinjavariable',
174+
'value':'a'
175+
}]
176+
}]
177+
}])
178+
179+
deftest_complete_doc(self):
180+
html_string="""
181+
<!DOCTYPE html>
182+
<html lang="en">
183+
<head>
184+
<title>My Webpage</title>
185+
</head>
186+
<body>
187+
<ul id="navigation">
188+
{% for item in navigation %}
189+
<li><a href="{{ item.href }}">{{ item.caption }}</a></li>
190+
{% endfor %}
191+
</ul>
192+
193+
<h1>My Webpage</h1>
194+
{{ a_variable }}
195+
</body>
196+
</html>
197+
"""
198+
199+
tree=self.parser.parse(html_string)
158200
dump(tree)
201+
self.assertTree(tree, [{
202+
'tag':'head',
203+
'children': [{
204+
'tag':'title',
205+
'text':'My Webpage'
206+
}]
207+
}, {
208+
'tag':'body',
209+
'children': [{
210+
'tag':'ul',
211+
'children': [{
212+
'tag':'jinjafor',
213+
'value':'item in navigation',
214+
'children': [{
215+
'tag':'li',
216+
'children': [{
217+
'tag':'a',
218+
'children': [{
219+
'tag':'jinjavariabletag',
220+
'children': [{
221+
'tag':'jinjavariable',
222+
'value':'item.caption'
223+
}]
224+
}]
225+
}]
226+
}]
227+
}]
228+
}, {
229+
'tag':'h1',
230+
'text':'My Webpage'
231+
}, {
232+
'tag':'jinjavariabletag',
233+
'children': [{
234+
'tag':'jinjavariable',
235+
'value':'a_variable'
236+
}]
237+
}]
238+
}])
239+
240+
deftest_jinja_if(self):
241+
html_string="""
242+
{% if True %}yay{% endif %}
243+
"""
244+
245+
tree=self.parser.parseFragment(html_string)
246+
dump(tree)
247+
248+
self.assertTree(tree, [{
249+
'tag':'jinjaif',
250+
'text':'yay'
251+
}])
252+
253+
defassertTree(self,root,spec):
254+
self.assertEqual(len(root),len(spec))
255+
256+
forchild,spec_childinzip(root,spec):
257+
self.assertEqual(child.tag,spec_child['tag'])
258+
259+
if'text'inspec_child:
260+
self.assertEqual(child.text,spec_child['text'])
159261

160-
block=tree[0]
161-
var=block[0]
162-
var1=var[0]
262+
if'value'inspec_child:
263+
self.assertEqual(child.attrib['value'],spec_child['value'])
163264

164-
self.assertEqual(block.tag,'jinjafor')
165-
self.assertEqual(block.attrib['value'],'a in b')
166-
self.assertEqual(var.tag,'jinjavariabletag')
167-
self.assertEqual(var1.tag,'jinjavariable')
168-
self.assertEqual(var1.attrib['value'],'a')
265+
if'children'inspec_child:
266+
self.assertTree(child,spec_child['children'])

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp