call site 7 for code.Traceback.__init__
doc/example/pytest/test_failures.py - line 9
6
7
8
9
10
11
12
13
   def test_failure_demo_fails_properly(): 
       config = py.test.config._reparse([failure_demo]) 
       session = config.initsession()
->     session.main()
       l = session.getitemoutcomepairs(Failed)
       assert len(l) == 21 
       l = session.getitemoutcomepairs(Passed)
       assert not l 
test/session.py - line 67
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
   def main(self): 
       """ main loop for running tests. """
       colitems = self.config.getcolitems()
       try:
           self.header(colitems) 
           try:
               try:
                   for colitem in colitems: 
                       self.runtraced(colitem)
               except KeyboardInterrupt: 
                   raise 
           finally: 
->             self.footer(colitems) 
       except Exit, ex:
           pass
       return self.getitemoutcomepairs(Failed)
test/terminal/terminal.py - line 163
158
159
160
161
162
163
164
   def footer(self, colitems):
       super(TerminalSession, self).footer(colitems) 
       self.endtime = now()
       self.out.line() 
       self.skippedreasons()
->     self.failures()
       self.summaryline()
test/terminal/terminal.py - line 258
251
252
253
254
255
256
257
258
   def failures(self):
       if self.config.option.tbstyle == 'no':
           return   # skip the detailed failure reports altogether
       l = self.getitemoutcomepairs(Failed)
       if l: 
           self.out.sep('_')
           for colitem, outcome in l: 
->             self.repr_failure(colitem, outcome) 
test/terminal/terminal.py - line 268
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
   def repr_failure(self, item, outcome): 
       excinfo = outcome.excinfo 
       traceback = excinfo.traceback
       #print "repr_failures sees item", item
       #print "repr_failures sees traceback"
       #py.std.pprint.pprint(traceback)
       if item and not self.config.option.fulltrace: 
           path, firstlineno = item._getpathlineno()
->         ntraceback = traceback.cut(path=path, firstlineno=firstlineno)
           if ntraceback == traceback:
               ntraceback = ntraceback.cut(path=path)
           traceback = ntraceback.filter()
       if not traceback: 
           self.out.line("empty traceback from item %r" % (item,)) 
           return
       handler = getattr(self.presenter, 'repr_failure_tb%s' % self.config.option.tbstyle)
       handler(item, excinfo, traceback, lambda : self.repr_out_err(item))
code/traceback2.py - line 131
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
   def cut(self, path=None, lineno=None, firstlineno=None):
       """ return a Traceback instance wrapping part of this Traceback
   
               by provding any combination of path, lineno and firstlineno, the
               first frame to start the to-be-returned traceback is determined
   
               this allows cutting the first part of a Traceback instance e.g.
               for formatting reasons (removing some uninteresting bits that deal
               with handling of the exception/traceback)
           """
       for x in self:
           if ((path is None or x.frame.code.path == path) and
               (lineno is None or x.lineno == lineno) and
               (firstlineno is None or x.frame.code.firstlineno == firstlineno)):
->             return Traceback(x._rawentry)
       return self