[py-svn] r17671 - py/branch/monday/py/test/terminal
hpk at codespeak.net
hpk at codespeak.net
Mon Sep 19 21:06:44 CEST 2005
Author: hpk
Date: Mon Sep 19 21:06:43 2005
New Revision: 17671
Modified:
py/branch/monday/py/test/terminal/terminal.py
Log:
(jan, arigo)
Shuffled stuff around: preparation for methods that can more easily
move to a Reporter class.
Modified: py/branch/monday/py/test/terminal/terminal.py
==============================================================================
--- py/branch/monday/py/test/terminal/terminal.py (original)
+++ py/branch/monday/py/test/terminal/terminal.py Mon Sep 19 21:06:43 2005
@@ -277,11 +277,12 @@
self.out.line()
else:
self.out.line("")
+ source = self.getentrysource(entry)
if entry == last:
- indent = self.repr_source(entry, 'E')
- self.repr_failure_explanation(excinfo, indent)
+ self.repr_source(source, 'E')
+ self.repr_failure_explanation(excinfo, source)
else:
- self.repr_source(entry, '>')
+ self.repr_source(source, '>')
self.out.line("")
self.out.line("[%s:%d]" %(entry.frame.code.path, entry.lineno+1))
self.repr_locals(entry)
@@ -317,30 +318,27 @@
else:
self.out.sep("_", "entrypoint: %s %s" %(root.basename, modpath))
- def repr_source(self, entry, marker=">"):
+ def getentrysource(self, entry):
try:
source = entry.getsource()
except py.error.ENOENT:
- self.out.line("[failure to get at sourcelines from %r]\n" % entry)
- else:
- source = source.deindent()
- for line in source[:-1]:
- self.out.line(" " + line)
- lastline = source[-1]
- self.out.line(marker + " " + lastline)
- try:
- s = str(source.getstatement(len(source)-1))
- except KeyboardInterrupt:
- raise
- except:
- #self.out.line("[failed to get last statement]\n%s" %(source,))
- s = str(source[-1])
- #print "XXX %r" % s
- return 4 + (len(s) - len(s.lstrip()))
- return 0
+ source = py.code.Source("[failure to get at sourcelines from %r]\n" % entry)
+ return source.deindent()
- def repr_failure_explanation(self, excinfo, indent):
- indent = " " * indent
+ def repr_source(self, source, marker=">"):
+ for line in source[:-1]:
+ self.out.line(" " + line)
+ lastline = source[-1]
+ self.out.line(marker + " " + lastline)
+
+ def repr_failure_explanation(self, excinfo, source):
+ try:
+ s = str(source.getstatement(len(source)-1))
+ except KeyboardInterrupt:
+ raise
+ except:
+ s = str(source[-1])
+ indent = " " * (4 + (len(s) - len(s.lstrip())))
# get the real exception information out
lines = excinfo.exconly(tryshort=True).split('\n')
self.out.line('>' + indent[:-1] + lines.pop(0))
More information about the pytest-commit
mailing list