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 | ||||||
| 
 | 
 | ||||||
| ``--figleaf`` | This will make py.test have figleaf related options. | ||||||
|     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 | .. _`pytest-figleaf`: http://bitbucket.org/hpk42/pytest-figleaf/ | ||||||
| ========================================= |  | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 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