[py-svn] r9649 - in py/branch/py-collect: c-extension misc/testing test test/report test/report/text test/testing test/tool test2
hpk at codespeak.net
hpk at codespeak.net
Fri Mar 4 20:28:06 CET 2005
Author: hpk
Date: Fri Mar 4 20:28:06 2005
New Revision: 9649
Added:
py/branch/py-collect/test/
- copied from r9616, py/branch/py-collect/test2/
py/branch/py-collect/test/__init__.py
- copied unchanged from r9648, py/branch/py-collect/test2/__init__.py
py/branch/py-collect/test/cmdline.py
- copied unchanged from r9648, py/branch/py-collect/test2/cmdline.py
py/branch/py-collect/test/collect.py
- copied unchanged from r9648, py/branch/py-collect/test2/collect.py
py/branch/py-collect/test/config.py
- copied unchanged from r9648, py/branch/py-collect/test2/config.py
py/branch/py-collect/test/defaultconfig.py
- copied, changed from r9648, py/branch/py-collect/test2/defaultconfig.py
py/branch/py-collect/test/drive.py
- copied unchanged from r9648, py/branch/py-collect/test2/drive.py
py/branch/py-collect/test/item.py
- copied unchanged from r9648, py/branch/py-collect/test2/item.py
py/branch/py-collect/test/raises.py
- copied unchanged from r9648, py/branch/py-collect/test2/raises.py
py/branch/py-collect/test/report/
- copied from r9648, py/branch/py-collect/test2/report/
py/branch/py-collect/test/run.py
- copied unchanged from r9648, py/branch/py-collect/test2/run.py
py/branch/py-collect/test/terminal.py
- copied, changed from r9648, py/branch/py-collect/test2/terminal.py
py/branch/py-collect/test/testing/
- copied from r9648, py/branch/py-collect/test2/testing/
py/branch/py-collect/test/tool/
- copied from r9648, py/branch/py-collect/test2/tool/
Removed:
py/branch/py-collect/test/report/text/reporter.py
py/branch/py-collect/test/report/text/summary.py
py/branch/py-collect/test2/
Modified:
py/branch/py-collect/c-extension/conftest.py
py/branch/py-collect/misc/testing/test_initpkg.py
Log:
move new stuff to py.test
Modified: py/branch/py-collect/c-extension/conftest.py
==============================================================================
--- py/branch/py-collect/c-extension/conftest.py (original)
+++ py/branch/py-collect/c-extension/conftest.py Fri Mar 4 20:28:06 2005
@@ -1,8 +1,8 @@
import py
-class Directory(py.test.collect.Directory):
- def rec(self, path):
+class Directory(py.test.Directory):
+ def recfilter(self, path):
if py.std.sys.platform == 'linux2':
if path.basename == 'greenlet':
return False
- return super(Directory, self).rec(path)
+ return super(Directory, self).recfilter(path)
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 20:28:06 2005
@@ -29,7 +29,7 @@
def test_importall():
base = py.path.local(py.__file__).dirpath()
nodirs = (
- base.join('test', 'testing', 'test'),
+ base.join('test', 'testing', 'data'),
base.join('path', 'extpy', 'testing', 'test_data'),
base.join('path', 'gateway',),
base.join('documentation',),
Copied: py/branch/py-collect/test/defaultconfig.py (from r9648, py/branch/py-collect/test2/defaultconfig.py)
==============================================================================
--- py/branch/py-collect/test2/defaultconfig.py (original)
+++ py/branch/py-collect/test/defaultconfig.py Fri Mar 4 20:28:06 2005
@@ -8,9 +8,6 @@
Function = py.test.Function
Instance = py.test.Instance
-def getreporter():
- return py.test.TextReporter()
-
additionalinfo = None
options = ('py.test standard options', [
Deleted: /py/branch/py-collect/test2/report/text/reporter.py
==============================================================================
--- /py/branch/py-collect/test2/report/text/reporter.py Fri Mar 4 20:28:06 2005
+++ (empty file)
@@ -1,202 +0,0 @@
-from __future__ import generators
-import py
-Item = py.test.Item
-Collector = py.test.collect.Collector
-
-from time import time as now
-# lazy relative Implementation imports
-from summary import Summary
-from out import getout
-
-class TextReporter(object):
- Summary = Summary
- typemap = {
- Item.Passed: '.',
- Item.Skipped: 's',
- Item.Failed: 'F',
- Collector.Error: 'C',
- }
- namemap = {
- Item.Passed: 'ok',
- Item.Skipped: 'SKIP',
- Item.Failed: 'FAIL',
- Collector.Error: 'COLLECT ERROR',
- }
-
- def __init__(self, f=None):
- if f is None:
- f = py.std.sys.stdout
- self.out = getout(f)
- self._started = {}
- self.summary = self.Summary(self.out)
- self.summary.option = self.option = py.test.config.option
-
- def start(self):
- self.out.sep("=", "test process starts")
- option = py.test.config.option
- if option.session:
- mode = 'session/child process'
- elif option.executable:
- mode = 'child process'
- else:
- mode = 'inprocess'
- self.out.line("testing-mode: %s" % mode)
- self.out.line("executable : %s (%s)" %
- (py.std.sys.executable, repr_pythonversion()))
-
- rev = py.__package__.getrev()
- self.out.line("using py lib: %s <rev %s>" % (
- py.path.local(py.__file__).dirpath(), rev))
-
- for i, x in py.builtin.enumerate(py.test.config.configpaths):
- self.out.line("initial testconfig %d: %s" %(i, x))
- additional = py.test.config.getfirst('additionalinfo')
- if additional:
- for key, descr in additional():
- self.out.line("%s: %s" %(key, descr))
- self.out.sep("=")
- if not self.option.nomagic:
- py.magic.invoke(assertion=1)
- self.summary.starttime = now()
-
- def end(self):
- if not self.option.nomagic:
- py.magic.revoke(assertion=1)
- self.summary.endtime = now()
- self.summary.render()
-
- def open(self, collector):
- if self.option.collectonly:
- cols = self.__dict__.setdefault('_opencollectors', [])
- print ' ' * len(cols), repr(collector)
- cols.append(collector)
- return cols.pop
-
- cls = getattr(collector, '__class__', None)
- if cls is None:
- return
- for typ in py.std.inspect.getmro(cls):
- meth = getattr(self, 'open_%s' % typ.__name__, None)
- if meth:
- return meth(collector)
-
- def open_Module(self, collector):
- verbose = self.option.verbose
- numunits = len(list(collector.iterunits()))
- if numunits > 0:
- fspath = collector.extpy.root
- if 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))
- return self.out.line
- elif 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)
-
- def open_Directory(self, collector):
- return
-
- def startitem(self, item):
- if self.option.collectonly:
- cols = self._opencollectors
- if len(cols):
- print ' ' * len(cols),
- print "Item", item.extpy.modpath
- return
- if not self.option.nocapture:
- from py.__impl__.test.tool.outerrcapture import SimpleOutErrCapture
- item.iocapture = SimpleOutErrCapture()
- if self.out.tty:
- realpath, lineno = item.extpy.getfilelineno()
- location = "running %s:%d %s" % (realpath.basename, lineno, str(item.extpy.modpath))
- self.out.rewrite(location)
- self._started[item] = now()
-
- def enditem(self, result):
- if self.option.collectonly:
- return
- endtime = now()
- item = result.item
- starttime = self._started[item]
- del self._started[item]
- elapsed = endtime - starttime
- item.elapsed = elapsed
-
- if not self.option.nocapture:
- result.out, result.err = item.iocapture.reset()
-
- restype, c = self.processresult(result)
- writeinfo = None
- if self.out.tty:
- if not isinstance(result, py.test.Item.Passed) or self.option.verbose >=1:
- writeinfo = '\n'
- elif isinstance(result, py.test.Item.Passed):
- writeinfo = ''
- elif self.option.verbose >= 1:
- writeinfo = '\n'
- else:
- self.out.write(c)
-
- if writeinfo is not None:
- realpath, lineno = item.extpy.getfilelineno()
- location = "%s:%d" % (realpath.basename, lineno+1)
- resultstring = self.namemap.get(restype, result.__class__.__name__)
- self.out.rewrite("%.3f %-2s %-20s %s%s" % (
- elapsed, resultstring, location, item.reprcall(), writeinfo
- ))
- if self.option.usepdb:
- if (issubclass(restype, Collector.Error) or
- issubclass(restype, Item.Failed)):
- self.summary.repr_failure(result.excinfo)
- import pdb
- self.out.rewrite(
- '\n%s: %s\n'
- % (result.excinfo.type.__name__,
- result.excinfo.value))
- pdb.post_mortem(result.excinfo._excinfo[2])
-
- def report_collect_error(self, error):
- restype, c = self.processresult(error)
- writeinfo = None
- if self.out.tty:
- if not isinstance(result, Item.Passed) or self.option.verbose >=1:
- writeinfo = '\n'
- elif isinstance(result, Item.Passed):
- writeinfo = ''
- elif self.option.verbose >= 1:
- writeinfo = '\n'
- else:
- self.out.write(c)
-
- if writeinfo is not None:
- #exc, frame, filename,lineno = self.summary.getexinfo(error)
- tbentries = error.excinfo.traceback
- filename = tbentries[-1].frame.code.path
- lineno = tbentries[-1].lineno
- self.out.line('CollectError: %s:%d' % (filename, lineno) )
-
- def processresult(self, testresult):
- for restype, c in self.typemap.items():
- if isinstance(testresult, restype):
- self.summary.append(restype, testresult)
- return restype, c
- else:
- raise TypeError, "not a result instance: %r" % testresult
-
-def repr_pythonversion():
- v = py.std.sys.version_info
- try:
- return "%s.%s.%s-%s-%s" % v
- except ValueError:
- return str(v)
-
Deleted: /py/branch/py-collect/test2/report/text/summary.py
==============================================================================
--- /py/branch/py-collect/test2/report/text/summary.py Fri Mar 4 20:28:06 2005
+++ (empty file)
@@ -1,80 +0,0 @@
-from __future__ import generators
-import py
-Item = py.test.Item
-from py.__impl__.magic import exprinfo, assertion
-
-class Summary(object):
- def __init__(self, out):
- self.out = out
-
- def append(self, restype, testresult):
- self.getlist(restype).append(testresult)
-
- def getlist(self, restype):
- name = restype.__name__.lower()
- return self.__dict__.setdefault(name, [])
-
- def repr_collect_error(self, error):
- self.out.line()
- self.out.sep("_")
- self.out.sep("_", "Collect Error")
- self.out.line()
- if isinstance(error.excinfo.value, SyntaxError):
- self.repr_syntaxerror(error.excinfo)
- else:
- self.repr_failure(error.excinfo)
-
- def repr_syntaxerror(self, excinfo):
- err = excinfo.value
- self.out.line(err.text)
- self.out.line("SyntaxError: %s" %(err.msg))
- self.out.line("[%s:%d]" % (err.filename, err.lineno))
-
- def summary_collect_errors(self):
- for error in self.getlist(py.test.collect.Error):
- self.repr_collect_error(error)
-
- def render(self):
- self.out.write('\n')
- self.skippedreasons()
- self.failures()
- self.summary_collect_errors()
- outlist = []
- sum = 0
- for typ in Item.Passed, Item.Failed, Item.Skipped:
- l = self.getlist(typ)
- if l:
- outlist.append('%d %s' % (len(l), typ.__name__.lower()))
- sum += len(l)
- elapsed = self.endtime-self.starttime
- status = "%s" % ", ".join(outlist)
- self.out.sep('=', 'tests finished: %s in %4.2f seconds' %
- (status, elapsed))
-
-
- def Xrepr_traceback_raw(self, traceback):
- recursioncache = {}
- for tb in tbentries:
- if first:
- first = False
- else:
- self.out.sep('-')
- #self.out.line("%-10s = %r" %(name, value))
- key = (path, lineno)
- if key not in recursioncache:
- recursioncache.setdefault(key, []).append(tb.frame.f_locals)
- else:
- f = tb.frame
- loc = f.f_locals
- for x in recursioncache[key]:
- if f.is_true(f.eval(co_equal, __recursioncache_locals_1=loc,
- __recursioncache_locals_2=x)):
- self.out.line("Recursion detected (same locals & position)")
- break
- else:
- #self.out.sep('-')
- continue
- break
-
-co_equal = compile('__recursioncache_locals_1 == __recursioncache_locals_2',
- '?', 'eval')
Copied: py/branch/py-collect/test/terminal.py (from r9648, py/branch/py-collect/test2/terminal.py)
==============================================================================
--- py/branch/py-collect/test2/terminal.py (original)
+++ py/branch/py-collect/test/terminal.py Fri Mar 4 20:28:06 2005
@@ -315,13 +315,42 @@
if self.option.showlocals:
self.out.sep('- ', 'locals')
for name, value in entry.frame.f_locals.items():
- if len(repr(value)) < 70 or not isinstance(value,
+ if name == '__builtins__':
+ self.out.line("__builtins__ = <builtins>")
+ elif len(repr(value)) < 70 or not isinstance(value,
(list, tuple, dict)):
self.out.line("%-10s = %r" %(name, value))
else:
self.out.line("%-10s =\\" % (name,))
py.std.pprint.pprint(value, stream=self.out)
+ def Xrepr_traceback_raw(self, traceback):
+ recursioncache = {}
+ for tb in tbentries:
+ if first:
+ first = False
+ else:
+ self.out.sep('-')
+ #self.out.line("%-10s = %r" %(name, value))
+ key = (path, lineno)
+ if key not in recursioncache:
+ recursioncache.setdefault(key, []).append(tb.frame.f_locals)
+ else:
+ f = tb.frame
+ loc = f.f_locals
+ for x in recursioncache[key]:
+ if f.is_true(f.eval(co_equal, __recursioncache_locals_1=loc,
+ __recursioncache_locals_2=x)):
+ self.out.line("Recursion detected (same locals & position)")
+ break
+ else:
+ #self.out.sep('-')
+ continue
+ break
+
+co_equal = compile('__recursioncache_locals_1 == __recursioncache_locals_2',
+ '?', 'eval')
+
def repr_pythonversion():
v = py.std.sys.version_info
try:
More information about the pytest-commit
mailing list