call site 5 for test.collect.Module.listnames
test/rsession/testing/test_reporter.py - line 140
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
   def test_failed_to_load(self):
       tmpdir = py.test.ensuretemp("failedtoload")
       tmpdir.ensure("__init__.py")
       tmpdir.ensure("test_three.py").write(py.code.Source("""
           sadsadsa
           """))
       def boxfun():
           config = py.test.config._reparse([str(tmpdir)])
           rootcol = py.test.collect.Directory(tmpdir)
           host = HostInfo('localhost')
           r = self.reporter(config, [host])
           r.report(repevent.TestStarted([host], config.topdir, ["a"]))
           r.report(repevent.RsyncFinished())
           list(rootcol._tryiter(reporterror=lambda x : AbstractSession.reporterror(r.report, x)))
           r.report(repevent.TestFinished())
           return r
           
       cap = py.io.StdCaptureFD()
->     r = boxfun()
       out, err = cap.reset()
       assert not err
       assert out.find("1 failed in") != -1
       assert out.find("NameError: name 'sadsadsa' is not defined") != -1
test/rsession/testing/test_reporter.py - line 135
128
129
130
131
132
133
134
135
136
137
   def boxfun():
       config = py.test.config._reparse([str(tmpdir)])
       rootcol = py.test.collect.Directory(tmpdir)
       host = HostInfo('localhost')
       r = self.reporter(config, [host])
       r.report(repevent.TestStarted([host], config.topdir, ["a"]))
       r.report(repevent.RsyncFinished())
->     list(rootcol._tryiter(reporterror=lambda x : AbstractSession.reporterror(r.report, x)))
       r.report(repevent.TestFinished())
       return r
test/collect.py - line 214
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
   def _tryiter(self, yieldtype=None, reporterror=None, keyword=None):
       """ yield stop item instances from flattening the collector. 
               XXX deprecated: this way of iteration is not safe in all
               cases. 
           """ 
       if yieldtype is None: 
           yieldtype = py.test.collect.Item 
       if isinstance(self, yieldtype):
           try:
               self._skipbykeyword(keyword)
               yield self
           except Skipped:
               if reporterror is not None:
                   excinfo = py.code.ExceptionInfo()
                   reporterror((excinfo, self))
       else:
           if not isinstance(self, py.test.collect.Item):
               try:
                   if reporterror is not None:
                       reporterror((None, self))
                   for x in self.run(): 
                       for y in self.join(x)._tryiter(yieldtype, 
->                                         reporterror, keyword): 
                           yield y
               except KeyboardInterrupt:
                   raise
               except: 
                   if reporterror is not None: 
                       excinfo = py.code.ExceptionInfo()
                       reporterror((excinfo, self)) 
test/collect.py - line 211
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
   def _tryiter(self, yieldtype=None, reporterror=None, keyword=None):
       """ yield stop item instances from flattening the collector. 
               XXX deprecated: this way of iteration is not safe in all
               cases. 
           """ 
       if yieldtype is None: 
           yieldtype = py.test.collect.Item 
       if isinstance(self, yieldtype):
           try:
               self._skipbykeyword(keyword)
               yield self
           except Skipped:
               if reporterror is not None:
                   excinfo = py.code.ExceptionInfo()
                   reporterror((excinfo, self))
       else:
           if not isinstance(self, py.test.collect.Item):
               try:
                   if reporterror is not None:
->                     reporterror((None, self))
                   for x in self.run(): 
                       for y in self.join(x)._tryiter(yieldtype, 
                                           reporterror, keyword): 
                           yield y
               except KeyboardInterrupt:
                   raise
               except: 
                   if reporterror is not None: 
                       excinfo = py.code.ExceptionInfo()
                       reporterror((excinfo, self)) 
test/rsession/testing/test_reporter.py - line 135
135
-> list(rootcol._tryiter(reporterror=lambda x : AbstractSession.reporterror(r.report, x)))
test/rsession/rsession.py - line 75
72
73
74
75
76
77
78
79
   def reporterror(reporter, data):
       excinfo, item = data
       if excinfo is None:
->         reporter(repevent.ItemStart(item))
       elif excinfo.type is Skipped:
           reporter(repevent.SkippedTryiter(excinfo, item))
       else:
           reporter(repevent.FailedTryiter(excinfo, item))
test/rsession/reporter.py - line 39
35
36
37
38
39
40
41
42
43
44
45
46
47
   def report(self, what):
       repfun = getattr(self, "report_" + what.__class__.__name__, 
                        self.report_unknown)
       try:
->         return repfun(what)
       except (KeyboardInterrupt, SystemExit):
           raise
       except:
           print "Internal reporting problem"
           excinfo = py.code.ExceptionInfo()
           for i in excinfo.traceback:
               print str(i)[2:-1]
           print excinfo
test/rsession/reporter.py - line 324
323
324
   def report_ItemStart(self, event):
->     self.show_item(event.item)
test/rsession/reporter.py - line 334
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
   def show_item(self, item, count_elems = True):
       if isinstance(item, py.test.collect.Module):
           # XXX This is a terrible hack, I don't like it
           #     and will rewrite it at some point
           #self.count = 0
           lgt = len(list(item._tryiter()))
           #self.lgt = lgt
           # print names relative to current workdir
->         name = "/".join(item.listnames())
           local = str(py.path.local())
           d = str(self.config.topdir)
           if local.startswith(d):
               local = local[len(d) + 1:]
           if local and name.startswith(local):
               name = name[len(local) + 1:]
           self.out.write("\n%s[%d] " % (name, lgt))