@@ -70,6 +70,8 @@ def test_function(arg):
70
70
assert_attr (node , errors = 1 , tests = 0 )
71
71
tnode = node .getElementsByTagName ("testcase" )[0 ]
72
72
assert_attr (tnode ,
73
+ file = "test_setup_error.py" ,
74
+ line = "2" ,
73
75
classname = "test_setup_error" ,
74
76
name = "test_function" )
75
77
fnode = tnode .getElementsByTagName ("error" )[0 ]
@@ -88,6 +90,8 @@ def test_skip():
88
90
assert_attr (node , skips = 1 )
89
91
tnode = node .getElementsByTagName ("testcase" )[0 ]
90
92
assert_attr (tnode ,
93
+ file = "test_skip_contains_name_reason.py" ,
94
+ line = "1" ,
91
95
classname = "test_skip_contains_name_reason" ,
92
96
name = "test_skip" )
93
97
snode = tnode .getElementsByTagName ("skipped" )[0 ]
@@ -108,6 +112,8 @@ def test_method(self):
108
112
assert_attr (node , failures = 1 )
109
113
tnode = node .getElementsByTagName ("testcase" )[0 ]
110
114
assert_attr (tnode ,
115
+ file = "test_classname_instance.py" ,
116
+ line = "1" ,
111
117
classname = "test_classname_instance.TestClass" ,
112
118
name = "test_method" )
113
119
@@ -120,6 +126,8 @@ def test_classname_nested_dir(self, testdir):
120
126
assert_attr (node , failures = 1 )
121
127
tnode = node .getElementsByTagName ("testcase" )[0 ]
122
128
assert_attr (tnode ,
129
+ file = os .path .join ("sub" , "test_hello.py" ),
130
+ line = "0" ,
123
131
classname = "sub.test_hello" ,
124
132
name = "test_func" )
125
133
@@ -151,6 +159,8 @@ def test_fail():
151
159
assert_attr (node , failures = 1 , tests = 1 )
152
160
tnode = node .getElementsByTagName ("testcase" )[0 ]
153
161
assert_attr (tnode ,
162
+ file = "test_failure_function.py" ,
163
+ line = "1" ,
154
164
classname = "test_failure_function" ,
155
165
name = "test_fail" )
156
166
fnode = tnode .getElementsByTagName ("failure" )[0 ]
@@ -193,6 +203,8 @@ def test_func(arg1):
193
203
194
204
tnode = node .getElementsByTagName ("testcase" )[index ]
195
205
assert_attr (tnode ,
206
+ file = "test_failure_escape.py" ,
207
+ line = "1" ,
196
208
classname = "test_failure_escape" ,
197
209
name = "test_func[%s]" % char )
198
210
sysout = tnode .getElementsByTagName ('system-out' )[0 ]
@@ -214,10 +226,14 @@ def test_hello(self):
214
226
assert_attr (node , failures = 1 , tests = 2 )
215
227
tnode = node .getElementsByTagName ("testcase" )[0 ]
216
228
assert_attr (tnode ,
229
+ file = "test_junit_prefixing.py" ,
230
+ line = "0" ,
217
231
classname = "xyz.test_junit_prefixing" ,
218
232
name = "test_func" )
219
233
tnode = node .getElementsByTagName ("testcase" )[1 ]
220
234
assert_attr (tnode ,
235
+ file = "test_junit_prefixing.py" ,
236
+ line = "3" ,
221
237
classname = "xyz.test_junit_prefixing."
222
238
"TestHello" ,
223
239
name = "test_hello" )
@@ -234,6 +250,8 @@ def test_xfail():
234
250
assert_attr (node , skips = 1 , tests = 0 )
235
251
tnode = node .getElementsByTagName ("testcase" )[0 ]
236
252
assert_attr (tnode ,
253
+ file = "test_xfailure_function.py" ,
254
+ line = "1" ,
237
255
classname = "test_xfailure_function" ,
238
256
name = "test_xfail" )
239
257
fnode = tnode .getElementsByTagName ("skipped" )[0 ]
@@ -253,6 +271,8 @@ def test_xpass():
253
271
assert_attr (node , skips = 1 , tests = 0 )
254
272
tnode = node .getElementsByTagName ("testcase" )[0 ]
255
273
assert_attr (tnode ,
274
+ file = "test_xfailure_xpass.py" ,
275
+ line = "1" ,
256
276
classname = "test_xfailure_xpass" ,
257
277
name = "test_xpass" )
258
278
fnode = tnode .getElementsByTagName ("skipped" )[0 ]
@@ -267,8 +287,10 @@ def test_collect_error(self, testdir):
267
287
assert_attr (node , errors = 1 , tests = 0 )
268
288
tnode = node .getElementsByTagName ("testcase" )[0 ]
269
289
assert_attr (tnode ,
290
+ file = "test_collect_error.py" ,
270
291
#classname="test_collect_error",
271
292
name = "test_collect_error" )
293
+ assert tnode .getAttributeNode ("line" ) is None
272
294
fnode = tnode .getElementsByTagName ("error" )[0 ]
273
295
assert_attr (fnode , message = "collection failure" )
274
296
assert "SyntaxError" in fnode .toxml ()
@@ -281,8 +303,10 @@ def test_collect_skipped(self, testdir):
281
303
assert_attr (node , skips = 1 , tests = 0 )
282
304
tnode = node .getElementsByTagName ("testcase" )[0 ]
283
305
assert_attr (tnode ,
306
+ file = "test_collect_skipped.py" ,
284
307
#classname="test_collect_error",
285
308
name = "test_collect_skipped" )
309
+ assert tnode .getAttributeNode ("line" ) is None # py.test doesn't give us a line here.
286
310
fnode = tnode .getElementsByTagName ("skipped" )[0 ]
287
311
assert_attr (fnode , message = "collection skipped" )
288
312
@@ -510,6 +534,7 @@ class Report(BaseReport):
510
534
longrepr = ustr
511
535
sections = []
512
536
nodeid = "something"
537
+ location = 'tests/filename.py' , 42 , 'TestClass.method'
513
538
report = Report ()
514
539
515
540
# hopefully this is not too brittle ...
0 commit comments