Skip to content

Commit b337234

Browse files
committed
Simplify the assertions from two to one
1 parent e4d6966 commit b337234

File tree

4 files changed

+61
-85
lines changed

4 files changed

+61
-85
lines changed

tests/plugin_test.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,24 @@ def get_analysis(self, name=None):
117117
_, executable, _, missing, _ = analysis
118118
return executable, missing
119119

120+
def assert_analysis(self, executable, missing=None, name=None):
121+
"""Assert that the analysis for `name` is right."""
122+
actual_executable, actual_missing = self.get_analysis(name)
123+
self.assertEqual(
124+
executable,
125+
actual_executable,
126+
"Executable lines aren't as expected: %r != %r" % (
127+
executable, actual_executable,
128+
),
129+
)
130+
self.assertEqual(
131+
missing or [],
132+
actual_missing,
133+
"Missing lines aren't as expected: %r != %r" % (
134+
missing, actual_missing,
135+
),
136+
)
137+
120138
def get_html_report(self, name=None):
121139
"""Get the html report for a template.
122140

tests/test_extends.py

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ def test_empty_block(self):
1212

1313
text = self.run_django_coverage()
1414
self.assertEqual(text.strip(), '')
15-
self.assertEqual(self.get_line_data(), [1])
16-
self.assertEqual(self.get_analysis(), ([1], []))
15+
self.assert_analysis([1])
1716

1817
def test_empty_block_with_text_inside(self):
1918
self.make_template("""\
@@ -22,8 +21,7 @@ def test_empty_block_with_text_inside(self):
2221

2322
text = self.run_django_coverage()
2423
self.assertEqual(text.strip(), 'Hello')
25-
self.assertEqual(self.get_line_data(), [1])
26-
self.assertEqual(self.get_analysis(), ([1], []))
24+
self.assert_analysis([1])
2725

2826
def test_empty_block_with_text_outside(self):
2927
self.make_template("""\
@@ -33,8 +31,7 @@ def test_empty_block_with_text_outside(self):
3331

3432
text = self.run_django_coverage()
3533
self.assertEqual(text.strip(), 'Hello')
36-
self.assertEqual(self.get_line_data(), [1, 2])
37-
self.assertEqual(self.get_analysis(), ([1, 2], []))
34+
self.assert_analysis([1, 2])
3835

3936
def test_two_empty_blocks(self):
4037
self.make_template("""\
@@ -46,8 +43,7 @@ def test_two_empty_blocks(self):
4643

4744
text = self.run_django_coverage()
4845
self.assertEqual(text.strip(), 'X\n\nY')
49-
self.assertEqual(self.get_line_data(), [1, 2, 3, 4])
50-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 4], []))
46+
self.assert_analysis([1, 2, 3, 4])
5147

5248
def test_inheriting(self):
5349
self.make_template(name="base.html", text="""\
@@ -69,10 +65,8 @@ def test_inheriting(self):
6965

7066
text = self.run_django_coverage(name="specific.html")
7167
self.assertEqual(text, "PROLOG\nHello\n\nSECOND\n\nGoodbye\n")
72-
self.assertEqual(self.get_line_data("base.html"), [1, 2, 3])
73-
self.assertEqual(self.get_line_data("specific.html"), [1, 2, 5])
74-
self.assertEqual(self.get_analysis("base.html"), ([1, 2, 3], []))
75-
self.assertEqual(self.get_analysis("specific.html"), ([1, 2, 5], []))
68+
self.assert_analysis([1, 2, 3], name="base.html")
69+
self.assert_analysis([1, 2, 5], name="specific.html")
7670

7771
def test_inheriting_with_unused_blocks(self):
7872
self.make_template(name="base.html", text="""\
@@ -95,10 +89,8 @@ def test_inheriting_with_unused_blocks(self):
9589

9690
text = self.run_django_coverage(name="specific.html")
9791
self.assertEqual(text, "Hello\n\nSECOND\n\nGoodbye\n")
98-
self.assertEqual(self.get_line_data("base.html"), [1, 2, 3])
99-
self.assertEqual(self.get_line_data("specific.html"), [1, 4])
100-
self.assertEqual(self.get_analysis("base.html"), ([1, 2, 3], []))
101-
self.assertEqual(self.get_analysis("specific.html"), ([1, 4, 8], [8]))
92+
self.assert_analysis([1, 2, 3], name="base.html")
93+
self.assert_analysis([1, 4, 8], [8], name="specific.html")
10294

10395

10496
class LoadTest(DjangoPluginTestCase):
@@ -112,8 +104,7 @@ def test_load(self):
112104

113105
text = self.run_django_coverage(name="load.html")
114106
self.assertEqual(text, "\n\nFIRST\nSECOND\n")
115-
self.assertEqual(self.get_line_data("load.html"), [1, 2, 3, 4])
116-
self.assertEqual(self.get_analysis("load.html"), ([1, 2, 3, 4], []))
107+
self.assert_analysis([1, 2, 3, 4], name="load.html")
117108

118109
def test_load_with_extends(self):
119110
self.make_template(name="base.html", text="""\
@@ -132,8 +123,7 @@ def test_load_with_extends(self):
132123

133124
text = self.run_django_coverage(name="specific.html")
134125
self.assertEqual(text, "Hello\n\nSPECIFIC\n\nGoodbye\n")
135-
self.assertEqual(self.get_line_data("specific.html"), [1, 4])
136-
self.assertEqual(self.get_analysis("specific.html"), ([1, 4], []))
126+
self.assert_analysis([1, 4], name="specific.html")
137127

138128

139129
class IncludeTest(DjangoPluginTestCase):
@@ -151,7 +141,5 @@ def test_include(self):
151141

152142
text = self.run_django_coverage(name="outer.html")
153143
self.assertEqual(text, "First\nInside\nJob\n\nLast\n")
154-
self.assertEqual(self.get_line_data("outer.html"), [1, 2, 3])
155-
self.assertEqual(self.get_line_data("nested.html"), [1, 2])
156-
self.assertEqual(self.get_analysis("outer.html"), ([1, 2, 3], []))
157-
self.assertEqual(self.get_analysis("nested.html"), ([1, 2], []))
144+
self.assert_analysis([1, 2, 3], name="outer.html")
145+
self.assert_analysis([1, 2], name="nested.html")

tests/test_flow.py

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,11 @@ def test_if(self):
1414

1515
text = self.run_django_coverage(context={'foo': True})
1616
self.assertEqual(text.strip(), 'Hello')
17-
self.assertEqual(self.get_line_data(), [1, 2])
17+
self.assert_analysis([1, 2])
1818

1919
text = self.run_django_coverage(context={'foo': False})
2020
self.assertEqual(text.strip(), '')
21-
self.assertEqual(self.get_line_data(), [1])
22-
self.assertEqual(self.get_analysis(), ([1, 2], [2]))
21+
self.assert_analysis([1, 2], [2])
2322

2423
def test_if_else(self):
2524
self.make_template("""\
@@ -32,13 +31,11 @@ def test_if_else(self):
3231

3332
text = self.run_django_coverage(context={'foo': True})
3433
self.assertEqual(text.strip(), 'Hello')
35-
self.assertEqual(self.get_line_data(), [1, 2])
36-
self.assertEqual(self.get_analysis(), ([1, 2, 4], [4]))
34+
self.assert_analysis([1, 2, 4], [4])
3735

3836
text = self.run_django_coverage(context={'foo': False})
3937
self.assertEqual(text.strip(), 'Goodbye')
40-
self.assertEqual(self.get_line_data(), [1, 4])
41-
self.assertEqual(self.get_analysis(), ([1, 2, 4], [2]))
38+
self.assert_analysis([1, 2, 4], [2])
4239

4340
def test_if_elif_else(self):
4441
self.make_template("""\
@@ -53,18 +50,15 @@ def test_if_elif_else(self):
5350

5451
text = self.run_django_coverage(context={'foo': True, 'bar': False})
5552
self.assertEqual(text.strip(), 'Hello')
56-
self.assertEqual(self.get_line_data(), [1, 2])
57-
self.assertEqual(self.get_analysis(), ([1, 2, 4, 6], [4, 6]))
53+
self.assert_analysis([1, 2, 4, 6], [4, 6])
5854

5955
text = self.run_django_coverage(context={'foo': False, 'bar': True})
6056
self.assertEqual(text.strip(), 'Aloha')
61-
self.assertEqual(self.get_line_data(), [1, 4])
62-
self.assertEqual(self.get_analysis(), ([1, 2, 4, 6], [2, 6]))
57+
self.assert_analysis([1, 2, 4, 6], [2, 6])
6358

6459
text = self.run_django_coverage(context={'foo': False, 'bar': False})
6560
self.assertEqual(text.strip(), 'Goodbye')
66-
self.assertEqual(self.get_line_data(), [1, 6])
67-
self.assertEqual(self.get_analysis(), ([1, 2, 4, 6], [2, 4]))
61+
self.assert_analysis([1, 2, 4, 6], [2, 4])
6862

6963

7064
class LoopTest(DjangoPluginTestCase):
@@ -79,13 +73,11 @@ def test_loop(self):
7973

8074
text = self.run_django_coverage(context={'items': "ABC"})
8175
self.assertEqual(text, "Before\n\n-A\n\n+B\n\n-C\n\nAfter\n")
82-
self.assertEqual(self.get_line_data(), [1, 2, 3, 5])
83-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 5], []))
76+
self.assert_analysis([1, 2, 3, 5])
8477

8578
text = self.run_django_coverage(context={'items': ""})
8679
self.assertEqual(text, "Before\n\nAfter\n")
87-
self.assertEqual(self.get_line_data(), [1, 2, 5])
88-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 5], [3]))
80+
self.assert_analysis([1, 2, 3, 5], [3])
8981

9082
def test_loop_with_empty_clause(self):
9183
self.make_template("""\
@@ -100,13 +92,11 @@ def test_loop_with_empty_clause(self):
10092

10193
text = self.run_django_coverage(context={'items': "ABC"})
10294
self.assertEqual(text, "Before\n\n-A\n\n-B\n\n-C\n\nAfter\n")
103-
self.assertEqual(self.get_line_data(), [1, 2, 3, 7])
104-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 5, 7], [5]))
95+
self.assert_analysis([1, 2, 3, 5, 7], [5])
10596

10697
text = self.run_django_coverage(context={'items': ""})
10798
self.assertEqual(text, "Before\n\nNONE\n\nAfter\n")
108-
self.assertEqual(self.get_line_data(), [1, 2, 5, 7])
109-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 5, 7], [3]))
99+
self.assert_analysis([1, 2, 3, 5, 7], [3])
110100

111101

112102
class IfChangedTest(DjangoPluginTestCase):
@@ -125,8 +115,7 @@ def test_ifchanged(self):
125115
'items': ["AX", "AY", "BZ", "BW"],
126116
})
127117
self.assertEqual(squashed(text), 'AXYBZW')
128-
self.assertEqual(self.get_line_data(), [1, 2, 3, 4, 5])
129-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 4, 5], []))
118+
self.assert_analysis([1, 2, 3, 4, 5])
130119

131120
def test_ifchanged_variable(self):
132121
self.make_template("""\
@@ -142,8 +131,7 @@ def test_ifchanged_variable(self):
142131
'items': ["AX", "AY", "BZ", "BW"],
143132
})
144133
self.assertEqual(squashed(text), 'AXYBZW')
145-
self.assertEqual(self.get_line_data(), [1, 2, 3, 4, 5])
146-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 4, 5], []))
134+
self.assert_analysis([1, 2, 3, 4, 5])
147135

148136

149137
class IfEqualTest(DjangoPluginTestCase):
@@ -162,8 +150,7 @@ def test_ifequal(self):
162150
'items': [(0, 'A'), (1, 'X'), (2, 'X'), (3, 'B')],
163151
})
164152
self.assertEqual(squashed(text), '0X1X23')
165-
self.assertEqual(self.get_line_data(), [1, 2, 3, 4, 5])
166-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 4, 5], []))
153+
self.assert_analysis([1, 2, 3, 4, 5])
167154

168155
def test_ifnotequal(self):
169156
self.make_template("""\
@@ -179,5 +166,4 @@ def test_ifnotequal(self):
179166
'items': [(0, 'A'), (1, 'X'), (2, 'X'), (3, 'B')],
180167
})
181168
self.assertEqual(squashed(text), 'X012X3')
182-
self.assertEqual(self.get_line_data(), [1, 2, 3, 4, 5])
183-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 4, 5], []))
169+
self.assert_analysis([1, 2, 3, 4, 5])

tests/test_simple.py

Lines changed: 16 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,21 @@ def test_one_line(self):
1212
self.make_template('Hello')
1313
text = self.run_django_coverage()
1414
self.assertEqual(text, 'Hello')
15-
self.assertEqual(self.get_line_data(), [1])
16-
self.assertEqual(self.get_analysis(), ([1], []))
15+
self.assert_analysis([1])
1716

1817
def test_plain_text(self):
1918
self.make_template('Hello\nWorld\n\nGoodbye')
2019
text = self.run_django_coverage()
2120
self.assertEqual(text, 'Hello\nWorld\n\nGoodbye')
22-
self.assertEqual(self.get_line_data(), [1, 2, 3, 4])
23-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 4], []))
21+
self.assert_analysis([1, 2, 3, 4])
2422

2523
def test_variable(self):
2624
self.make_template("""\
2725
Hello, {{name}}
2826
""")
2927
text = self.run_django_coverage(context={'name': 'John'})
3028
self.assertEqual(text, "Hello, John\n")
31-
self.assertEqual(self.get_line_data(), [1])
32-
self.assertEqual(self.get_analysis(), ([1], []))
29+
self.assert_analysis([1])
3330

3431
def test_variable_on_second_line(self):
3532
self.make_template("""\
@@ -38,24 +35,21 @@ def test_variable_on_second_line(self):
3835
""")
3936
text = self.run_django_coverage(context={'name': 'John'})
4037
self.assertEqual(text, "Hello,\nJohn\n")
41-
self.assertEqual(self.get_line_data(), [1, 2])
42-
self.assertEqual(self.get_analysis(), ([1, 2], []))
38+
self.assert_analysis([1, 2])
4339

4440
def test_lone_variable(self):
4541
self.make_template("""\
4642
{{name}}
4743
""")
4844
text = self.run_django_coverage(context={'name': 'John'})
4945
self.assertEqual(text, "John\n")
50-
self.assertEqual(self.get_line_data(), [1])
51-
self.assertEqual(self.get_analysis(), ([1], []))
46+
self.assert_analysis([1])
5247

5348
def test_long_text(self):
5449
self.make_template("line\n"*50)
5550
text = self.run_django_coverage()
5651
self.assertEqual(text, "line\n"*50)
57-
self.assertEqual(self.get_line_data(), list(range(1, 51)))
58-
self.assertEqual(self.get_analysis(), (list(range(1, 51)), []))
52+
self.assert_analysis(list(range(1, 51)))
5953

6054
def test_non_ascii(self):
6155
self.make_template("""\
@@ -64,8 +58,7 @@ def test_non_ascii(self):
6458
""")
6559
text = self.run_django_coverage(context={'more': u'ɘboɔinU'})
6660
self.assertEqual(text, u'υηιcσɗє ιѕ тяιcку\nɘboɔinU!\n')
67-
self.assertEqual(self.get_line_data(), [1, 2])
68-
self.assertEqual(self.get_analysis(), ([1, 2], []))
61+
self.assert_analysis([1, 2])
6962
self.assertEqual(self.get_html_report(), 100)
7063
self.assertEqual(self.get_xml_report(), 100)
7164

@@ -82,8 +75,7 @@ def test_simple(self):
8275
""")
8376
text = self.run_django_coverage()
8477
self.assertEqual(text, "First\n\nLast\n")
85-
self.assertEqual(self.get_line_data(), [1, 2, 5])
86-
self.assertEqual(self.get_analysis(), ([1, 2, 5], []))
78+
self.assert_analysis([1, 2, 5])
8779

8880
def test_with_stuff_inside(self):
8981
self.make_template("""\
@@ -97,8 +89,7 @@ def test_with_stuff_inside(self):
9789
""")
9890
text = self.run_django_coverage()
9991
self.assertEqual(text, "First\n\nLast\n")
100-
self.assertEqual(self.get_line_data(), [1, 2, 7])
101-
self.assertEqual(self.get_analysis(), ([1, 2, 7], []))
92+
self.assert_analysis([1, 2, 7])
10293

10394
def test_inline_comment(self):
10495
self.make_template("""\
@@ -108,8 +99,7 @@ def test_inline_comment(self):
10899
""")
109100
text = self.run_django_coverage()
110101
self.assertEqual(text, "First\n\nLast\n")
111-
self.assertEqual(self.get_line_data(), [1, 3])
112-
self.assertEqual(self.get_analysis(), ([1, 3], []))
102+
self.assert_analysis([1, 3])
113103

114104

115105
class OtherTest(DjangoPluginTestCase):
@@ -127,8 +117,7 @@ def test_autoescape(self):
127117
""")
128118
text = self.run_django_coverage(context={'body': '<Hello>'})
129119
self.assertEqual(text, "First\n\n&lt;Hello&gt;\n\n\n<Hello>\n\nLast\n")
130-
self.assertEqual(self.get_line_data(), [1, 2, 3, 5, 6, 8])
131-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 5, 6, 8], []))
120+
self.assert_analysis([1, 2, 3, 5, 6, 8])
132121

133122
def test_filter(self):
134123
self.make_template("""\
@@ -140,8 +129,7 @@ def test_filter(self):
140129
""")
141130
text = self.run_django_coverage()
142131
self.assertEqual(text, "First\n\n look: 1 &lt; 2\n\nLast\n")
143-
self.assertEqual(self.get_line_data(), [1, 2, 3, 5])
144-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 5], []))
132+
self.assert_analysis([1, 2, 3, 5])
145133

146134
def test_firstof(self):
147135
self.make_template("""\
@@ -151,13 +139,11 @@ def test_firstof(self):
151139
""")
152140
text = self.run_django_coverage(context={'var1': 'A'})
153141
self.assertEqual(text, "A\nplugh\nquux\n")
154-
self.assertEqual(self.get_line_data(), [1, 2, 3])
155-
self.assertEqual(self.get_analysis(), ([1, 2, 3], []))
142+
self.assert_analysis([1, 2, 3])
156143

157144
text = self.run_django_coverage(context={'var2': 'B'})
158145
self.assertEqual(text, "B\nB\nquux\n")
159-
self.assertEqual(self.get_line_data(), [1, 2, 3])
160-
self.assertEqual(self.get_analysis(), ([1, 2, 3], []))
146+
self.assert_analysis([1, 2, 3])
161147

162148
@needs_django(1, 8)
163149
def test_lorem(self):
@@ -168,8 +154,7 @@ def test_lorem(self):
168154
""")
169155
text = self.run_django_coverage()
170156
self.assertEqual(text, "First\nlorem ipsum dolor\nLast\n")
171-
self.assertEqual(self.get_line_data(), [1, 2, 3])
172-
self.assertEqual(self.get_analysis(), ([1, 2, 3], []))
157+
self.assert_analysis([1, 2, 3])
173158

174159

175160
class StringTemplateTest(DjangoPluginTestCase):
@@ -193,5 +178,4 @@ def test_with_branch_enabled(self):
193178
options={'source': ["."], 'branch': True}
194179
)
195180
self.assertEqual(text, 'Hello\nWorld\n\nGoodbye')
196-
self.assertEqual(self.get_line_data(), [1, 2, 3, 4])
197-
self.assertEqual(self.get_analysis(), ([1, 2, 3, 4], []))
181+
self.assert_analysis([1, 2, 3, 4])

0 commit comments

Comments
 (0)