call site 0 for code.ExceptionInfo.exconly
test/testing/test_session.py - line 92
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
   def test_select_extra_keywords(self): 
       o = tmpdir.ensure('selecttest', dir=1)
       tfile = o.join('test_select.py').write(py.code.Source("""
               def test_1():
                   pass 
               class TestClass: 
                   def test_2(self): 
                       pass
           """))
       conftest = o.join('conftest.py').write(py.code.Source("""
               import py
               class Class(py.test.collect.Class): 
                   def _haskeyword(self, keyword): 
                       return keyword == 'xxx' or \
                              super(Class, self)._haskeyword(keyword) 
           """))
       for keyword in ('xxx', 'xxx test_2', 'TestClass', 'xxx -test_1', 
                       'TestClass test_2', 'xxx TestClass test_2',): 
           f = py.std.StringIO.StringIO()
           config = py.test.config._reparse([o, '-k', keyword]) 
           session = config._getsessionclass()(config, f) 
->         session.main()
           print "keyword", repr(keyword)
           l = session.getitemoutcomepairs(Passed)
           assert len(l) == 1
           assert l[0][0].name == 'test_2'
           l = session.getitemoutcomepairs(Skipped)
           assert l[0][0].name == 'test_1' 
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 162
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 239
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
   def skippedreasons(self):
       texts = {}
       for colitem, outcome in self.getitemoutcomepairs(Skipped):
           raisingtb = self.getlastvisible(outcome.excinfo.traceback) 
           fn = raisingtb.frame.code.path
           lineno = raisingtb.lineno
->         d = texts.setdefault(outcome.excinfo.exconly(), {})
           d[(fn,lineno)] = outcome 
                   
       if texts:
           self.out.line()
           self.out.sep('_', 'reasons for skipped tests')
           for text, dict in texts.items():
               for (fn, lineno), outcome in dict.items(): 
                   self.out.line('Skipped in %s:%d' %(fn, lineno+1))
               self.out.line("reason: %s" % text) 
               self.out.line()