[py-svn] r9645 - in py/branch/py-collect: c-extension misc/testing test2
hpk at codespeak.net
hpk at codespeak.net
Fri Mar 4 19:47:56 CET 2005
Author: hpk
Date: Fri Mar 4 19:47:56 2005
New Revision: 9645
Modified:
py/branch/py-collect/c-extension/ (props changed)
py/branch/py-collect/misc/testing/test_initpkg.py
py/branch/py-collect/test2/collect.py
py/branch/py-collect/test2/drive.py
py/branch/py-collect/test2/terminal.py
Log:
port some more reporting functionality to the driver
Modified: py/branch/py-collect/misc/testing/test_initpkg.py
==============================================================================
--- py/branch/py-collect/misc/testing/test_initpkg.py (original)
+++ py/branch/py-collect/misc/testing/test_initpkg.py Fri Mar 4 19:47:56 2005
@@ -50,6 +50,7 @@
yield check_import, modpath
def check_import(modpath):
+ #print "checking import", modpath
assert __import__(modpath)
def test_shahexdigest():
Modified: py/branch/py-collect/test2/collect.py
==============================================================================
--- py/branch/py-collect/test2/collect.py (original)
+++ py/branch/py-collect/test2/collect.py Fri Mar 4 19:47:56 2005
@@ -272,14 +272,23 @@
class Generator(Collector):
def run(self):
+ #def iterator():
+ # for i,x in py.builtin.enumerate(self.obj()):
+ # yield self.join("[%d]" % i)
+ #return py.builtin.collect(iterator())
+ self._objlist = list(self.obj())
return [self.join("[%d]" % i)
- for i in range(len(list(self.obj())))]
+ for i in range(len(self._objlist))]
def join(self, name):
if name[:1] != '[' or name[-1:] != ']':
raise NameError("%r is not an index" %(name,))
num = int(name[1:-1])
- for i, x in py.builtin.enumerate(self.obj()):
+ try:
+ objlist = self._objlist
+ except AttributeError:
+ self._objlist = objlist = list(self.obj())
+ for i, x in py.builtin.enumerate(objlist):
if i == num:
if isinstance(x, (Collector, )):
return x
Modified: py/branch/py-collect/test2/drive.py
==============================================================================
--- py/branch/py-collect/test2/drive.py (original)
+++ py/branch/py-collect/test2/drive.py Fri Mar 4 19:47:56 2005
@@ -82,7 +82,8 @@
excinfo = py.code.ExceptionInfo()
res = colitem.Failed(excinfo=excinfo)
else:
- assert res is None or isinstance(res, (list, colitem.Outcome))
+ assert (res is None or isinstance(res, (list, colitem.Outcome)) or
+ isinstance(res, py.builtin.collect))
finally:
self.finish(colitem, res)
Modified: py/branch/py-collect/test2/terminal.py
==============================================================================
--- py/branch/py-collect/test2/terminal.py (original)
+++ py/branch/py-collect/test2/terminal.py Fri Mar 4 19:47:56 2005
@@ -23,15 +23,36 @@
cols = self._opencollectors
self.out.line(' ' * len(cols) + repr(colitem))
cols.append(colitem)
- self._started[colitem] = now()
+ else:
+ if isinstance(colitem, py.test2.Module):
+ numunits = len(list(colitem.iteritems()))
+ if numunits > 0:
+ fspath = colitem.fspath
+ if self.option.verbose == 0:
+ parts = fspath.parts()
+ basename = parts.pop().basename
+ while parts and parts[-1].basename in ('testing', 'test'):
+ parts.pop()
+ base = parts[-1].basename
+ if len(base) < 13:
+ base = base + "_" * (13-len(base))
+ abbrev_fn = base + "_" + basename
+ self.out.write('%s[%d] ' % (abbrev_fn, numunits))
+ elif self.option.verbose > 0:
+ #curdir = py.path.local()
+ #if fspath.check(local=True, relto=curdir):
+ # fspath = fspath.relto(curdir)
+ self.out.line()
+ self.out.line("+ testmodule: %s" % fspath)
if self.option.verbose >= 1:
if isinstance(colitem, py.test2.Item):
realpath, lineno = colitem.getpathlineno()
location = "%s:%d" % (realpath.basename, lineno+1)
self.out.rewrite("%-20s %s " % (
location, colitem.reprcall()))
+ self._started[colitem] = now()
- def finish(self, colitem, res):
+ def finish(self, colitem, result):
end = now()
colitem.elapsedtime = end - self._started[colitem]
if self.option.collectonly:
@@ -39,21 +60,26 @@
last = cols.pop()
#assert last == colitem, "expected %r, got %r" %(last, colitem)
return
- super(TerminalDriver, self).finish(colitem, res)
+ super(TerminalDriver, self).finish(colitem, result)
if self.option.usepdb:
- if isinstance(res, Item.Failed):
+ if isinstance(result, Item.Failed):
print "dispatching to ppdb", colitem
- self.repr_failure(colitem, res)
+ self.repr_failure(colitem, result)
import pdb
self.out.rewrite(
'\n%s: %s\n'
- % (res.excinfo.type.__name__,
- res.excinfo.value))
- pdb.post_mortem(res.excinfo._excinfo[2])
- if isinstance(res, (colitem.Failed,)):
+ % (result.excinfo.type.__name__,
+ result.excinfo.value))
+ pdb.post_mortem(result.excinfo._excinfo[2])
+ if isinstance(result, (colitem.Failed,)):
if self.option.exitfirstproblem:
py.test2.exit("exit on first problem configured.", item=colitem)
- self.repr_result(colitem, res)
+ if result is None or not isinstance(colitem, py.test2.Item):
+ if isinstance(colitem, py.test2.Module) and self.option.verbose == 0:
+ self.out.line()
+ return
+ else:
+ self.repr_progress(colitem, result)
# -------------------
# HEADER information
@@ -118,10 +144,7 @@
else:
raise TypeError, "not a result instance: %r" % testresult
- def repr_result(self, colitem, result):
- if result is None or not isinstance(colitem, py.test2.Item):
- #print "colitem not represented", colitem
- return
+ def repr_progress(self, colitem, result):
restype, c = self._processresult(result)
if self.option.verbose >= 1:
resultstring = self.namemap.get(restype, result.__class__.__name__)
More information about the pytest-commit
mailing list