remove figleaf which now lives "outside"
--HG-- branch : trunk
This commit is contained in:
parent
59f3adb46b
commit
d4f5073076
|
@ -22,6 +22,7 @@ plugins = [
|
||||||
|
|
||||||
externals = {
|
externals = {
|
||||||
'oejskit': "run javascript tests in real life browsers",
|
'oejskit': "run javascript tests in real life browsers",
|
||||||
|
'figleaf': "for testing with Titus' figleaf coverage module",
|
||||||
'django': "for testing django applications",
|
'django': "for testing django applications",
|
||||||
'coverage': "for testing with Ned's coverage module ",
|
'coverage': "for testing with Ned's coverage module ",
|
||||||
'xmlresult': "for generating xml reports "
|
'xmlresult': "for generating xml reports "
|
||||||
|
@ -137,7 +138,7 @@ class PluginOverview(RestWriter):
|
||||||
docpath = self.target.dirpath(name).new(ext=".txt")
|
docpath = self.target.dirpath(name).new(ext=".txt")
|
||||||
if oneliner is not None:
|
if oneliner is not None:
|
||||||
htmlpath = docpath.new(ext='.html')
|
htmlpath = docpath.new(ext='.html')
|
||||||
self.para("%s_ (3rd) %s" %(name, oneliner))
|
self.para("%s_ (external) %s" %(name, oneliner))
|
||||||
self.add_internal_link(name, htmlpath)
|
self.add_internal_link(name, htmlpath)
|
||||||
else:
|
else:
|
||||||
doc = PluginDoc(docpath)
|
doc = PluginDoc(docpath)
|
||||||
|
|
|
@ -1,33 +1,17 @@
|
||||||
|
|
||||||
pytest_figleaf plugin
|
pytest_figleaf plugin
|
||||||
=====================
|
=====================
|
||||||
|
|
||||||
report python test coverage using the 'figleaf' package.
|
add options to drive and report python test coverage using the 'figleaf' package.
|
||||||
|
|
||||||
.. contents::
|
Install the `pytest-figleaf`_ plugin to use figleaf coverage testing::
|
||||||
:local:
|
|
||||||
|
|
||||||
Not enabled by default (use "-p" or conftest settings to do so).
|
easy_install pytest-figleaf
|
||||||
|
|
||||||
command line options
|
or::
|
||||||
--------------------
|
|
||||||
|
pip install pytest-figleaf
|
||||||
|
|
||||||
|
This will make py.test have figleaf related options.
|
||||||
|
|
||||||
``--figleaf``
|
.. _`pytest-figleaf`: http://bitbucket.org/hpk42/pytest-figleaf/
|
||||||
trace python coverage with figleaf and write HTML for files below the current working dir
|
|
||||||
``--fig-data=dir``
|
|
||||||
set tracing file, default: ".figleaf".
|
|
||||||
``--fig-html=dir``
|
|
||||||
set html reporting dir, default "html".
|
|
||||||
|
|
||||||
Start improving this plugin in 30 seconds
|
|
||||||
=========================================
|
|
||||||
|
|
||||||
|
|
||||||
1. Download `pytest_figleaf.py`_ plugin source code
|
|
||||||
2. put it somewhere as ``pytest_figleaf.py`` into your import path
|
|
||||||
3. a subsequent ``py.test`` run will use your local version
|
|
||||||
|
|
||||||
Checkout customize_, other plugins_ or `get in contact`_.
|
|
||||||
|
|
||||||
.. include:: links.txt
|
|
||||||
|
|
|
@ -17,6 +17,12 @@ command line options
|
||||||
display py lib version and import information.
|
display py lib version and import information.
|
||||||
``-p name``
|
``-p name``
|
||||||
early-load given plugin (multi-allowed).
|
early-load given plugin (multi-allowed).
|
||||||
|
``--traceconfig``
|
||||||
|
trace considerations of conftest.py files.
|
||||||
|
``--nomagic``
|
||||||
|
don't reinterpret asserts, no traceback cutting.
|
||||||
|
``--debug``
|
||||||
|
generate and show internal debugging information.
|
||||||
``--help-config``
|
``--help-config``
|
||||||
show available conftest.py and ENV-variable names.
|
show available conftest.py and ENV-variable names.
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,9 @@ hook specification sourcecode
|
||||||
# hooks for influencing reporting (invoked from pytest_terminal)
|
# hooks for influencing reporting (invoked from pytest_terminal)
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
def pytest_report_header(config):
|
||||||
|
""" return a string to be displayed as header info for terminal reporting."""
|
||||||
|
|
||||||
def pytest_report_teststatus(report):
|
def pytest_report_teststatus(report):
|
||||||
""" return result-category, shortletter and verbose word for reporting."""
|
""" return result-category, shortletter and verbose word for reporting."""
|
||||||
pytest_report_teststatus.firstresult = True
|
pytest_report_teststatus.firstresult = True
|
||||||
|
|
|
@ -8,9 +8,9 @@ mark_ generic mechanism for marking python functions.
|
||||||
|
|
||||||
pdb_ interactive debugging with the Python Debugger.
|
pdb_ interactive debugging with the Python Debugger.
|
||||||
|
|
||||||
figleaf_ report python test coverage using the 'figleaf' package.
|
figleaf_ (external) for testing with Titus' figleaf coverage module
|
||||||
|
|
||||||
coverage_ (3rd) for testing with Ned's coverage module
|
coverage_ (external) for testing with Ned's coverage module
|
||||||
|
|
||||||
monkeypatch_ safely patch object attributes, dicts and environment variables.
|
monkeypatch_ safely patch object attributes, dicts and environment variables.
|
||||||
|
|
||||||
|
@ -24,9 +24,9 @@ tmpdir_ provide temporary directories to test functions.
|
||||||
testing domains
|
testing domains
|
||||||
===============
|
===============
|
||||||
|
|
||||||
oejskit_ (3rd) run javascript tests in real life browsers
|
oejskit_ (external) run javascript tests in real life browsers
|
||||||
|
|
||||||
django_ (3rd) for testing django applications
|
django_ (external) for testing django applications
|
||||||
|
|
||||||
genscript_ generate standalone test script to be distributed along with an application.
|
genscript_ generate standalone test script to be distributed along with an application.
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ pastebin_ submit failure or test session information to a pastebin service.
|
||||||
|
|
||||||
logxml_ logging of test results in JUnit-XML format, for use with Hudson
|
logxml_ logging of test results in JUnit-XML format, for use with Hudson
|
||||||
|
|
||||||
xmlresult_ (3rd) for generating xml reports and CruiseControl integration
|
xmlresult_ (external) for generating xml reports and CruiseControl integration
|
||||||
|
|
||||||
resultlog_ non-xml machine-readable logging of test results.
|
resultlog_ non-xml machine-readable logging of test results.
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
.. _`pytest_logxml.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_logxml.py
|
.. _`pytest_logxml.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_logxml.py
|
||||||
.. _`terminal`: terminal.html
|
.. _`helpconfig`: helpconfig.html
|
||||||
.. _`pytest_recwarn.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_recwarn.py
|
.. _`pytest_recwarn.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_recwarn.py
|
||||||
.. _`unittest`: unittest.html
|
.. _`unittest`: unittest.html
|
||||||
.. _`pytest_monkeypatch.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_monkeypatch.py
|
.. _`pytest_monkeypatch.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_monkeypatch.py
|
||||||
|
@ -17,10 +17,9 @@
|
||||||
.. _`restdoc`: restdoc.html
|
.. _`restdoc`: restdoc.html
|
||||||
.. _`pytest_pastebin.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_pastebin.py
|
.. _`pytest_pastebin.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_pastebin.py
|
||||||
.. _`pytest_tmpdir.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_tmpdir.py
|
.. _`pytest_tmpdir.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_tmpdir.py
|
||||||
.. _`pytest_figleaf.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_figleaf.py
|
.. _`terminal`: terminal.html
|
||||||
.. _`pytest_hooklog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_hooklog.py
|
.. _`pytest_hooklog.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_hooklog.py
|
||||||
.. _`logxml`: logxml.html
|
.. _`logxml`: logxml.html
|
||||||
.. _`helpconfig`: helpconfig.html
|
|
||||||
.. _`pytest_skipping.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_skipping.py
|
.. _`pytest_skipping.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_skipping.py
|
||||||
.. _`checkout the py.test development version`: ../../install.html#checkout
|
.. _`checkout the py.test development version`: ../../install.html#checkout
|
||||||
.. _`pytest_helpconfig.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_helpconfig.py
|
.. _`pytest_helpconfig.py`: http://bitbucket.org/hpk42/py-trunk/raw/1.2.0a1/py/plugin/pytest_helpconfig.py
|
||||||
|
|
|
@ -23,12 +23,6 @@ command line options
|
||||||
traceback verboseness (long/short/no).
|
traceback verboseness (long/short/no).
|
||||||
``--fulltrace``
|
``--fulltrace``
|
||||||
don't cut any tracebacks (default is to cut).
|
don't cut any tracebacks (default is to cut).
|
||||||
``--traceconfig``
|
|
||||||
trace considerations of conftest.py files.
|
|
||||||
``--nomagic``
|
|
||||||
don't reinterpret asserts, no traceback cutting.
|
|
||||||
``--debug``
|
|
||||||
generate and show internal debugging information.
|
|
||||||
|
|
||||||
Start improving this plugin in 30 seconds
|
Start improving this plugin in 30 seconds
|
||||||
=========================================
|
=========================================
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
"""
|
|
||||||
report python test coverage using the 'figleaf' package.
|
|
||||||
|
|
||||||
Not enabled by default (use "-p" or conftest settings to do so).
|
|
||||||
"""
|
|
||||||
import py
|
|
||||||
py.test.importorskip("figleaf")
|
|
||||||
import figleaf.annotate_html
|
|
||||||
|
|
||||||
def pytest_addoption(parser):
|
|
||||||
group = parser.getgroup('figleaf options')
|
|
||||||
group.addoption('--figleaf', action='store_true', default=False,
|
|
||||||
dest = 'figleaf',
|
|
||||||
help=('trace python coverage with figleaf and write HTML '
|
|
||||||
'for files below the current working dir'))
|
|
||||||
group.addoption('--fig-data', action='store', default='.figleaf',
|
|
||||||
dest='figleafdata', metavar="dir",
|
|
||||||
help='set tracing file, default: ".figleaf".')
|
|
||||||
group.addoption('--fig-html', action='store', default='html',
|
|
||||||
dest='figleafhtml', metavar="dir",
|
|
||||||
help='set html reporting dir, default "html".')
|
|
||||||
|
|
||||||
def pytest_configure(config):
|
|
||||||
if config.getvalue("figleaf"):
|
|
||||||
figleaf.start()
|
|
||||||
|
|
||||||
def pytest_terminal_summary(terminalreporter):
|
|
||||||
config = terminalreporter.config
|
|
||||||
if not config.getvalue("figleaf"):
|
|
||||||
return
|
|
||||||
datafile = py.path.local(config.getvalue('figleafdata'))
|
|
||||||
tw = terminalreporter._tw
|
|
||||||
tw.sep('-', 'figleaf')
|
|
||||||
tw.line('Writing figleaf data to %s' % (datafile))
|
|
||||||
figleaf.stop()
|
|
||||||
figleaf.write_coverage(str(datafile))
|
|
||||||
coverage = get_coverage(datafile, config)
|
|
||||||
reportdir = py.path.local(config.getvalue('figleafhtml'))
|
|
||||||
tw.line('Writing figleaf html to file://%s' % (reportdir))
|
|
||||||
figleaf.annotate_html.prepare_reportdir(str(reportdir))
|
|
||||||
exclude = []
|
|
||||||
figleaf.annotate_html.report_as_html(coverage,
|
|
||||||
str(reportdir), exclude, {})
|
|
||||||
|
|
||||||
def get_coverage(datafile, config):
|
|
||||||
# basepath = config.topdir
|
|
||||||
basepath = py.path.local()
|
|
||||||
data = figleaf.read_coverage(str(datafile))
|
|
||||||
d = {}
|
|
||||||
coverage = figleaf.combine_coverage(d, data)
|
|
||||||
for path in coverage.keys():
|
|
||||||
if not py.path.local(path).relto(basepath):
|
|
||||||
del coverage[path]
|
|
||||||
return coverage
|
|
|
@ -1,17 +0,0 @@
|
||||||
import py
|
|
||||||
|
|
||||||
def test_functional(testdir):
|
|
||||||
py.test.importorskip("figleaf")
|
|
||||||
testdir.makepyfile("""
|
|
||||||
def f():
|
|
||||||
x = 42
|
|
||||||
def test_whatever():
|
|
||||||
pass
|
|
||||||
""")
|
|
||||||
result = testdir.runpytest('--figleaf')
|
|
||||||
assert result.ret == 0
|
|
||||||
assert result.stdout.fnmatch_lines([
|
|
||||||
'*figleaf html*'
|
|
||||||
])
|
|
||||||
#print result.stdout.str()
|
|
||||||
|
|
Loading…
Reference in New Issue