From commits-noreply at bitbucket.org Tue Mar 4 13:43:57 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Tue, 04 Mar 2014 12:43:57 -0000 Subject: [Pytest-commit] commit/pytest-cache: hpk42: clarify licensing Message-ID: <20140304124357.17575.67936@app13.ash-private.bitbucket.org> 1 new commit in pytest-cache: https://bitbucket.org/hpk42/pytest-cache/commits/d588ecf39349/ Changeset: d588ecf39349 User: hpk42 Date: 2014-03-04 13:43:47 Summary: clarify licensing Affected #: 1 file diff -r ab97c6fb41570529cef4a95a40ac00152dd09d6f -r d588ecf39349e70d62cc19a603c00d7a339897bf setup.py --- a/setup.py +++ b/setup.py @@ -9,11 +9,12 @@ url='http://bitbucket.org/hpk42/pytest-cache/', py_modules=['pytest_cache'], entry_points={'pytest11': ['cacheprovider = pytest_cache']}, - install_requires=['pytest>=2.2', 'execnet>=1.1.dev1', ], + install_requires=['pytest>=2.2', 'execnet>=1.2', ], + license="MIT License", classifiers=[ 'Development Status :: 3 - Alpha', 'Intended Audience :: Developers', - 'License :: OSI Approved :: GNU General Public License (GPL)', + 'License :: OSI Approved :: MIT License', 'Operating System :: POSIX', 'Operating System :: Microsoft :: Windows', 'Operating System :: MacOS :: MacOS X', Repository URL: https://bitbucket.org/hpk42/pytest-cache/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From issues-reply at bitbucket.org Tue Mar 4 17:08:45 2014 From: issues-reply at bitbucket.org (radeex) Date: Tue, 04 Mar 2014 16:08:45 -0000 Subject: [Pytest-commit] Issue #154: Allow user configuration outside of tox.ini (hpk42/tox) Message-ID: <20140304160845.25842.56825@app07.ash-private.bitbucket.org> New issue 154: Allow user configuration outside of tox.ini https://bitbucket.org/hpk42/tox/issue/154/allow-user-configuration-outside-of-toxini radeex: I would like to override the "toxworkdir" config option without editing a project's tox.ini. As far as I can tell, there's no mechanism to allow me to do this. It should probably be possible to specify additional config files somehow. From issues-reply at bitbucket.org Tue Mar 4 18:37:37 2014 From: issues-reply at bitbucket.org (Wichert Akkerman) Date: Tue, 04 Mar 2014 17:37:37 -0000 Subject: [Pytest-commit] Issue #472: skipif documentation has broken example using pytest.config (hpk42/pytest) Message-ID: <20140304173737.18961.46959@app03.ash-private.bitbucket.org> New issue 472: skipif documentation has broken example using pytest.config https://bitbucket.org/hpk42/pytest/issue/472/skipif-documentation-has-broken-example Wichert Akkerman: The [skip and xfail](https://pytest.org/latest/skipping.html) documentation has an example at the end of the page showing how to use ```pytest.config`` to make a skip conditional on the test runner configuration: ``` @pytest.mark.skipif(not pytest.config.getvalue("db"), reason="--db was not specified") def test_function(...): pass ``` I tried to use that mechanism to make a test conditional on the use of PostgreSQL with tests: ``` def pytest_generate_tests(metafunc): if 'sqlalchemy_url' in metafunc.fixturenames: metafunc.parametrize('sqlalchemy_url', [metafunc.config.option.database]) require_postgres = pytest.mark.skipif( not pytest.config.getvalue('database').startswith('postgresql'), reason='PostgreSQL database required') ``` When I try to run my tests with this I get the following error: ``` Traceback (most recent call last): File "bin/py.test", line 62, in sys.exit(pytest.main()) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 19, in main config = _prepareconfig(args, plugins) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 63, in _prepareconfig pluginmanager=pluginmanager, args=args) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/core.py", line 377, in __call__ return self._docall(methods, kwargs) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/core.py", line 388, in _docall res = mc.execute() File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/core.py", line 289, in execute res = method(**kwargs) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/helpconfig.py", line 27, in pytest_cmdline_parse config = __multicall__.execute() File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/core.py", line 289, in execute res = method(**kwargs) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 618, in pytest_cmdline_parse self.parse(args) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 711, in parse self._preparse(args) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 691, in _preparse args=args, parser=self._parser) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/core.py", line 377, in __call__ return self._docall(methods, kwargs) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/core.py", line 388, in _docall res = mc.execute() File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/core.py", line 289, in execute res = method(**kwargs) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/capture.py", line 83, in pytest_load_initial_conftests return __multicall__.execute() File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/core.py", line 289, in execute res = method(**kwargs) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 674, in pytest_load_initial_conftests self._conftest.setinitial(args) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 487, in setinitial self._try_load_conftest(anchor) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 493, in _try_load_conftest self._path2confmods[None] = self.getconftestmodules(anchor) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 512, in getconftestmodules clist.append(self.importconftest(conftestpath)) File "/Users/wichert/Library/buildout/eggs/pytest-2.5.2-py2.7.egg/_pytest/config.py", line 538, in importconftest self._conftestpath2mod[conftestpath] = mod = conftestpath.pyimport() File "/Users/wichert/Library/buildout/eggs/py-1.4.20-py2.7.egg/py/_path/local.py", line 608, in pyimport __import__(pkgpath.basename) File "/Users/wichert/myapp/tests/__init__.py", line 5, in not pytest.config.getvalue('database').startswith('postgres'), AttributeError: 'module' object has no attribute 'config' ``` From issues-reply at bitbucket.org Tue Mar 4 20:47:24 2014 From: issues-reply at bitbucket.org (Dan Kinder) Date: Tue, 04 Mar 2014 19:47:24 -0000 Subject: [Pytest-commit] Issue #473: Cannot use @mark and multiple @patch class decorators (hpk42/pytest) Message-ID: <20140304194724.18899.84810@app01.ash-private.bitbucket.org> New issue 473: Cannot use @mark and multiple @patch class decorators https://bitbucket.org/hpk42/pytest/issue/473/cannot-use-mark-and-multiple-patch-class Dan Kinder: Forgive me if this isn't intended to work, but I imagine it should. This small test works: ``` #!python from pytest import mark from mock import patch @patch('os.path') @mark.slow class TestSimple: def test_simple_thing(self, mock_path): pass ``` As well as this one: ``` #!python from mock import patch @patch('os.getcwd') @patch('os.path') class TestSimple: def test_simple_thing(self, mock_path, mock_getcwd): pass ``` But this one fails: ``` #!python from pytest import mark from mock import patch # Note: the decorator order does not matter @patch('os.getcwd') @patch('os.path') @mark.slow class TestSimple: def test_simple_thing(self, mock_path, mock_getcwd): pass ``` (On python 2.6.6, pytest 2.5.2, mock 1.0.1) The failure: ``` $ py.test =========================================================== test session starts =========================================================== platform linux2 -- Python 2.6.6 -- py-1.4.20 -- pytest-2.5.2 collected 0 items / 1 errors ================================================================= ERRORS ================================================================== _______________________________________________________ ERROR collecting test_a.py ________________________________________________________ ../venv/lib/python2.6/site-packages/_pytest/runner.py:139: in __init__ > self.result = func() ../venv/lib/python2.6/site-packages/_pytest/main.py:419: in _memocollect > return self._memoizedcall('_collected', lambda: list(self.collect())) ../venv/lib/python2.6/site-packages/_pytest/main.py:296: in _memoizedcall > res = function() ../venv/lib/python2.6/site-packages/_pytest/main.py:419: in > return self._memoizedcall('_collected', lambda: list(self.collect())) ../venv/lib/python2.6/site-packages/_pytest/python.py:527: in collect > return super(Instance, self).collect() ../venv/lib/python2.6/site-packages/_pytest/python.py:321: in collect > res = self.makeitem(name, obj) ../venv/lib/python2.6/site-packages/_pytest/python.py:333: in makeitem > collector=self, name=name, obj=obj) ../venv/lib/python2.6/site-packages/_pytest/main.py:162: in call_matching_hooks > return hookmethod.pcall(plugins, **kwargs) ../venv/lib/python2.6/site-packages/_pytest/core.py:381: in pcall > return self._docall(methods, kwargs) ../venv/lib/python2.6/site-packages/_pytest/core.py:388: in _docall > res = mc.execute() ../venv/lib/python2.6/site-packages/_pytest/core.py:289: in execute > res = method(**kwargs) ../venv/lib/python2.6/site-packages/_pytest/python.py:227: in pytest_pycollect_makeitem > return list(collector._genfunctions(name, obj)) ../venv/lib/python2.6/site-packages/_pytest/python.py:339: in _genfunctions > transfer_markers(funcobj, cls, module) ../venv/lib/python2.6/site-packages/_pytest/python.py:435: in transfer_markers > mark(funcobj) ../venv/lib/python2.6/site-packages/_pytest/mark.py:264: in __call__ > setattr(func, self.name, holder) E AttributeError: 'instancemethod' object has no attribute 'slow' ========================================================= 1 error in 0.07 seconds ========================================================= ``` If this work and is a pytest problem (not the mock library or something else) and should work, let me know and I may be able to dive in and try to patch it up. From issues-reply at bitbucket.org Wed Mar 5 11:16:56 2014 From: issues-reply at bitbucket.org (Marc Kirkwood) Date: Wed, 05 Mar 2014 10:16:56 -0000 Subject: [Pytest-commit] Issue #474: Running tests with xdist (-n4) causes failures with Django TestCases (DB access denied) (hpk42/pytest) Message-ID: <20140305101656.28376.21881@app02.ash-private.bitbucket.org> New issue 474: Running tests with xdist (-n4) causes failures with Django TestCases (DB access denied) https://bitbucket.org/hpk42/pytest/issue/474/running-tests-with-xdist-n4-causes Marc Kirkwood: When running the same tests without the -n arg, DB access is allowed as specified in the docs regarding existing unittest code. We have over 1000 tests in place and adding a decorator for each class is out of the question. Can anyone help explain the inconsistent behaviour? From issues-reply at bitbucket.org Wed Mar 5 16:47:32 2014 From: issues-reply at bitbucket.org (=?utf-8?q?Jurko_Gospodneti=C4=87?=) Date: Wed, 05 Mar 2014 15:47:32 -0000 Subject: [Pytest-commit] Issue #475: Misleading pytest exception description (hpk42/pytest) Message-ID: <20140305154732.11300.2562@app04.ash-private.bitbucket.org> New issue 475: Misleading pytest exception description https://bitbucket.org/hpk42/pytest/issue/475/misleading-pytest-exception-description Jurko Gospodneti?: Today, while mentoring a new colleague in Python and TDD, she ran into a pytest exception description which confused her, and with her being a novice programmer, was completely out of her league to debug. Here is a reduced script demonstrating the issue: ``` InvalidLabSize = -1 class Lab: def __init__(self, size): if size <= 0: raise Exception(InvalidLabSize) import pytest def test_invalid_lab_size(): with pytest.raises(InvalidLabSize): Lab(0) ``` The given test code has a bug - ```pytest.raises()``` should be given ```Exception``` class as its parameter and not an integer ```InvalidLabSize```. However, pytest reports this in a most misleading way: ``` #!text D:\Workplace>py3 -m pytest aaa.py ============================= test session starts ============================= platform win32 -- Python 3.3.3 -- py-1.4.20 -- pytest-2.5.2 collected 1 items aaa.py F ================================== FAILURES =================================== ____________________________ test_invalid_lab_size ____________________________ def test_invalid_lab_size(): with pytest.raises(InvalidLabSize): > Lab(0) E TypeError: issubclass() arg 2 must be a class or tuple of classes aaa.py:15: TypeError ========================== 1 failed in 0.05 seconds =========================== ``` First, it points to an incorrect code line - it points to the code line ```Lab(0)``` as causing the error when in fact it was the line before that caused it. Second, it complains about some 'argument number 2' to some ```issubclass()``` call having to be a class or a tuple of classes, when neither the user code nor anything displayed in the given exception stack information contains any ```issubclass()``` calls. It should in fact say that the first parameter to ```pyteset.raises()``` should be a class or a tuple of classes. ---- As a side-note, I tried rewriting the test using the older pytest.raises() calling style (without using a ```with``` context manager): ``` #!python InvalidLabSize = -1 class Lab: def __init__(self, size): if size <= 0: raise Exception(InvalidLabSize) import pytest def test_invalid_lab_size(): pytest.raises(InvalidLabSize, Lab, 0) ``` and this reports much more relevant information when run under Python 3.x: ``` D:\Workplace>py3 -m pytest aaa.py ============================= test session starts ============================= platform win32 -- Python 3.3.3 -- py-1.4.20 -- pytest-2.5.2 collected 1 items aaa.py F ================================== FAILURES =================================== ____________________________ test_invalid_lab_size ____________________________ def test_invalid_lab_size(): > pytest.raises(InvalidLabSize, Lab, 0) E TypeError: catching classes that do not inherit from BaseException is not allowed aaa.py:31: TypeError ========================== 1 failed in 0.04 seconds =========================== ``` Running it under Python 2.x on the other hand displays a bit less but still misleading information: ``` D:\Workplace>py2 -m pytest aaa.py ============================= test session starts ============================= platform win32 -- Python 2.7.6 -- py-1.4.20 -- pytest-2.5.2 collected 1 items aaa.py F ================================== FAILURES =================================== ____________________________ test_invalid_lab_size ____________________________ def test_invalid_lab_size(): > pytest.raises(InvalidLabSize, Lab, 0) aaa.py:31: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , size = 0 def __init__(self, size): if size <= 0: > raise Exception(InvalidLabSize) E Exception: -1 aaa.py:24: Exception ========================== 1 failed in 0.12 seconds =========================== ``` It says that an Exception got raised when it should in fact say that an Exception got raised but an integer -1 was expected. Hope this helps. Best regards, Jurko Gospodneti? From issues-reply at bitbucket.org Thu Mar 6 00:41:33 2014 From: issues-reply at bitbucket.org (Jimmy Cuadra) Date: Wed, 05 Mar 2014 23:41:33 -0000 Subject: [Pytest-commit] Issue #476: Fixtures defined in separate files are not available to tests (hpk42/pytest) Message-ID: <20140305234133.31992.97194@app01.ash-private.bitbucket.org> New issue 476: Fixtures defined in separate files are not available to tests https://bitbucket.org/hpk42/pytest/issue/476/fixtures-defined-in-separate-files-are-not Jimmy Cuadra: Given the following files in a package: ``` #!ini # setup.cfg [pytest] python_files = *_test.py *_fixture.py ``` ``` #!python # mypackage/tests/fixtures/foo_fixture.py from pytest import fixture @fixture def my_fixture(): return 'stub' ``` ``` #!python # mypackage/tests/lib/foo_test.py def test_foo(my_fixture): assert my_fixture == 'stub' ``` Running `py.test` results in: ``` file mypackage/tests/lib/foo_test.py @wraps(func) def patched(*args, **keywargs): fixture 'my_fixture' not found available fixtures: pytestconfig, recwarn, monkeypatch, capfd, capsys, tmpdir use 'py.test --fixtures [testpath]' for help on them. ``` I can confirm that collection is working properly, because I can raise an exception in `foo_fixture.py` and it shows up when running `py.test`. (I can also add a test to the fixture file and it is discovered properly.) Is this expected behavior? Why is the fixture not available to tests? I want to load fixtures from their own files rather than inlining them in conftest.py. Thank you! From commits-noreply at bitbucket.org Thu Mar 6 08:36:47 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Thu, 06 Mar 2014 07:36:47 -0000 Subject: [Pytest-commit] commit/pytest: 4 new changesets Message-ID: <20140306073647.1006.43432@app01.ash-private.bitbucket.org> 4 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/0cd954097a90/ Changeset: 0cd954097a90 Branch: pdb_doc_update User: jurko Date: 2014-02-01 10:07:54 Summary: correct inconsistent comment wording Once the 'the' article was used before 'first' and once it was not, all within the same code example. Affected #: 1 file diff -r cba8287569b0e19d15436e2310b832b9315d0c84 -r 0cd954097a9098a24d462548d13d25f4e90b9efe doc/en/usage.txt --- a/doc/en/usage.txt +++ b/doc/en/usage.txt @@ -82,7 +82,7 @@ failure situation:: py.test -x --pdb # drop to PDB on first failure, then end test session - py.test --pdb --maxfail=3 # drop to PDB for the first three failures + py.test --pdb --maxfail=3 # drop to PDB for first three failures Setting a breakpoint / aka ``set_trace()`` https://bitbucket.org/hpk42/pytest/commits/df43c6b73043/ Changeset: df43c6b73043 Branch: pdb_doc_update User: jurko Date: 2014-02-01 10:11:42 Summary: make all 'PDB' doc references be recognized as links Affected #: 1 file diff -r 0cd954097a9098a24d462548d13d25f4e90b9efe -r df43c6b730434bf4f6f39f8a02ad4ec43484122e doc/en/usage.txt --- a/doc/en/usage.txt +++ b/doc/en/usage.txt @@ -67,13 +67,13 @@ py.test --tb=short # a shorter traceback format py.test --tb=line # only one line per failure -Dropping to PDB (Python Debugger) on failures ----------------------------------------------- +Dropping to PDB_ (Python Debugger) on failures +----------------------------------------------- .. _PDB: http://docs.python.org/library/pdb.html Python comes with a builtin Python debugger called PDB_. ``pytest`` -allows one to drop into the PDB prompt via a command line option:: +allows one to drop into the PDB_ prompt via a command line option:: py.test --pdb @@ -98,7 +98,7 @@ .. versionadded: 2.0.0 -In previous versions you could only enter PDB tracing if +In previous versions you could only enter PDB_ tracing if you disabled capturing on the command line via ``py.test -s``. .. _durations: https://bitbucket.org/hpk42/pytest/commits/636b8ac8b413/ Changeset: 636b8ac8b413 Branch: pdb_doc_update User: jurko Date: 2014-02-01 10:19:09 Summary: reword PDB usage documentation Documented that since pytest 2.4.0 you can use the raw pdb.set_trace() call directly without the pytest.set_trace() wrapper or explicitly disabling pytest's output capture using 'py.test -s'. Clearly stated how pytest (since version 2.0.0.) automatically disables its output capture when entering an interactive PDB debugger. This avoids confusing new users because their tests display different output when running with or without entering an interactive debugger (even if user does nothing in that interactive debugger session other than exit it and continue with the regular test execution). Affected #: 1 file diff -r df43c6b730434bf4f6f39f8a02ad4ec43484122e -r 636b8ac8b413f3f33f0c49c3f9f5fb03dcbc624d doc/en/usage.txt --- a/doc/en/usage.txt +++ b/doc/en/usage.txt @@ -98,8 +98,24 @@ .. versionadded: 2.0.0 -In previous versions you could only enter PDB_ tracing if -you disabled capturing on the command line via ``py.test -s``. +Prior to pytest version 2.0.0 you could only enter PDB_ tracing if you disabled +capturing on the command line via ``py.test -s``. In later versions, pytest +automatically disables its output capture when you enter PDB_ tracing: + +* Output capture in other tests is not affected. +* Any prior test output that has already been captured and will be processed as + such. +* Any later output produced within the same test will not be captured and will + instead get sent directly to ``sys.stdout``. Note that this holds true even + for test output occuring after you exit the interactive PDB_ tracing session + and continue with the regular test run. + +.. versionadded: 2.4.0 + +Since pytest version 2.4.0 you can also use the native Python +``import pdb;pdb.set_trace()`` call to enter PDB_ tracing without having to use +the ``pytest.set_trace()`` wrapper or explicitly disable pytest's output +capturing via ``py.test -s``. .. _durations: https://bitbucket.org/hpk42/pytest/commits/8d2d44cf0345/ Changeset: 8d2d44cf0345 User: hpk42 Date: 2014-03-06 08:36:42 Summary: Merged in jurko/pytest/pdb_doc_update (pull request #118) update PDB related pytest docs Affected #: 1 file diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r 8d2d44cf0345a9e4e5992768c50c5918b8dc08cc doc/en/usage.txt --- a/doc/en/usage.txt +++ b/doc/en/usage.txt @@ -67,13 +67,13 @@ py.test --tb=short # a shorter traceback format py.test --tb=line # only one line per failure -Dropping to PDB (Python Debugger) on failures ----------------------------------------------- +Dropping to PDB_ (Python Debugger) on failures +----------------------------------------------- .. _PDB: http://docs.python.org/library/pdb.html Python comes with a builtin Python debugger called PDB_. ``pytest`` -allows one to drop into the PDB prompt via a command line option:: +allows one to drop into the PDB_ prompt via a command line option:: py.test --pdb @@ -82,7 +82,7 @@ failure situation:: py.test -x --pdb # drop to PDB on first failure, then end test session - py.test --pdb --maxfail=3 # drop to PDB for the first three failures + py.test --pdb --maxfail=3 # drop to PDB for first three failures Setting a breakpoint / aka ``set_trace()`` @@ -98,8 +98,24 @@ .. versionadded: 2.0.0 -In previous versions you could only enter PDB tracing if -you disabled capturing on the command line via ``py.test -s``. +Prior to pytest version 2.0.0 you could only enter PDB_ tracing if you disabled +capturing on the command line via ``py.test -s``. In later versions, pytest +automatically disables its output capture when you enter PDB_ tracing: + +* Output capture in other tests is not affected. +* Any prior test output that has already been captured and will be processed as + such. +* Any later output produced within the same test will not be captured and will + instead get sent directly to ``sys.stdout``. Note that this holds true even + for test output occuring after you exit the interactive PDB_ tracing session + and continue with the regular test run. + +.. versionadded: 2.4.0 + +Since pytest version 2.4.0 you can also use the native Python +``import pdb;pdb.set_trace()`` call to enter PDB_ tracing without having to use +the ``pytest.set_trace()`` wrapper or explicitly disable pytest's output +capturing via ``py.test -s``. .. _durations: Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From issues-reply at bitbucket.org Thu Mar 6 12:52:56 2014 From: issues-reply at bitbucket.org (faassen) Date: Thu, 06 Mar 2014 11:52:56 -0000 Subject: [Pytest-commit] Issue #477: excluding name patterns from consideration (hpk42/pytest) Message-ID: <20140306115256.10980.40579@app02.ash-private.bitbucket.org> New issue 477: excluding name patterns from consideration https://bitbucket.org/hpk42/pytest/issue/477/excluding-name-patterns-from-consideration faassen: Today I ran into the following. I started using a library called webtest, which exposes a class called TestApp which can be used to test WSGI apps. The very act of doing this: ``` from webtest import TestApp ``` would trigger pytest to consider TestApp as something to find tests on, but would then immediately skip it. The skipping process is visible and at least the display of it is so slow you actually see the number increased: for 9 modules that import TestApp, the number goes up to 9. I'd like a way to configure pytest to exclude the pattern 'TestApp' from any consideration whatsoever. I think this may be possible using pytest_pycollect_makeitem, but that got quickly rather complicated. Could a configuration option be added for this use case? From issues-reply at bitbucket.org Thu Mar 6 14:18:31 2014 From: issues-reply at bitbucket.org (Wolfgang Schnerring) Date: Thu, 06 Mar 2014 13:18:31 -0000 Subject: [Pytest-commit] Issue #478: --pyargs does not understand namespace packages (hpk42/pytest) Message-ID: <20140306131831.21753.35969@app09.ash-private.bitbucket.org> New issue 478: --pyargs does not understand namespace packages https://bitbucket.org/hpk42/pytest/issue/478/pyargs-does-not-understand-namespace Wolfgang Schnerring: The pyargs resolution does not understand namespace packages when the different contributing packages are installed as eggs (which is the layout used by zc.buildout and also `pip install --egg`, see http://peak.telecommunity.com/DevCenter/setuptools#namespace-packages). It looks like this: ``` site-packages/ zope.asdf.egg/ zope/ asdf/ ... zope.qwer.egg/ zope/ qwer/ ... ``` This is a well supported layout, which means `import zope.asdf` and `import zope.qwer` work just fine (the specification is something to the effect of, if there is more than one directory that claims to be package "zope", there is no guarantee which one you will actually get when you say `import zope`, but all subpackages will be accessible regardless). But `py.test --pyargs zope.asdf` will work, while `py.test --pyargs zope.qwer` will say "file or package not found" (it might also be the other way around, so zope.qwer works, but zope.asdf doesn't). This is because `_pytest.main.Session._tryconvertpyarg` does not actually rely on the Python import mechanism to do the resolution (I'm not sure why, I'm guessing it's to support collecting tests outside of packages?). Instead it splits the argument on dots and loads the **parts** from the import system, assuming their filesystem location is the one that matters -- which is incorrect. In the example, trying to resolve `zope.qwer`, it will first resolve `zope`, which results in a random matching entry, e.g `site-packages/zope.asdf/zope/__init__.py`. It then assumes that the rest of the name must exist below *this specific* directory, thus never finding `zope.qwer`. From issues-reply at bitbucket.org Thu Mar 6 23:53:30 2014 From: issues-reply at bitbucket.org (Chris Withers) Date: Thu, 06 Mar 2014 22:53:30 -0000 Subject: [Pytest-commit] Issue #155: ERROR: InvocationError: could not find executable 'virtualenv' (hpk42/tox) Message-ID: <20140306225330.22733.63326@app12.ash-private.bitbucket.org> New issue 155: ERROR: InvocationError: could not find executable 'virtualenv' https://bitbucket.org/hpk42/tox/issue/155/error-invocationerror-could-not-find Chris Withers: So, this is using Python 3.3.0 on Windows 7. I see this: \Scripts\python.exe -c "import pip; pip.main();" install --upgrade tox ...gives: Requirement already up-to-date: tox in \lib\site-packages Requirement already up-to-date: virtualenv>=1.11.2 in \lib\site-packages (from tox) Requirement already up-to-date: py>=1.4.17 in \lib\site-packages (from tox) Looking at versions: Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 32 bit (Intel)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import tox >>> tox.__version__ '1.7.0' >>> import py >>> py.__version__ '1.4.20' >>> import virtualenv >>> virtualenv.__version__ '1.11.4' When I attempt to do: \Scripts\python.exe -c "import tox; tox.cmdline();" - c tox.ini -v using tox.ini: \tox.ini using tox-1.7.0 from \lib\site-packages\tox\__init__.py py26 create: \.tox\py26 ERROR: InvocationError: could not find executable 'virtualenv' Stepping through _venv.VirtualEnv.getcommandpath suggests that py.path.local.sysfind is being called with: (Pdb) self.envconfig.envbindir local('\\.tox\\py26\\Scripts') ...rather than the local('\\Scripts') I would expect. This is the call to create .tox\py26, so its scripts will not exist yet. The tox.ini in question is here: https://github.com/Simplistix/mush/blob/master/tox.ini From issues-reply at bitbucket.org Fri Mar 7 11:20:10 2014 From: issues-reply at bitbucket.org (Marc Schlaich) Date: Fri, 07 Mar 2014 10:20:10 -0000 Subject: [Pytest-commit] Issue #479: Race condition on SkipTest checks (hpk42/pytest) Message-ID: <20140307102010.11839.79088@app07.ash-private.bitbucket.org> New issue 479: Race condition on SkipTest checks https://bitbucket.org/hpk42/pytest/issue/479/race-condition-on-skiptest-checks Marc Schlaich: There is a race condition in checking SkipTest: If the module with SkipTest (unittest or nose) was not imported before and a test module is raising SkipTest on module level, the whole thing blows up. Example: test_x.py (and nothing else in cwd). ``` #!python import unittest raise unittest.SkipTest ``` Results in ``` $ py.test ============================= test session starts ============================= platform win32 -- Python 2.7.5 -- py-1.4.20 -- pytest-2.5.2 plugins: cov collected 0 items / 1 errors =================================== ERRORS ==================================== _________________________ ERROR collecting test_x.py __________________________ test_x.py:2: in > raise unittest.SkipTest E SkipTest =========================== 1 error in 0.04 seconds =========================== ``` From issues-reply at bitbucket.org Tue Mar 11 16:36:42 2014 From: issues-reply at bitbucket.org (Michel Albert) Date: Tue, 11 Mar 2014 15:36:42 -0000 Subject: [Pytest-commit] Issue #480: SkipTest is not handled properly in setUpModule (hpk42/pytest) Message-ID: <20140311153642.29595.90916@app08.ash-private.bitbucket.org> New issue 480: SkipTest is not handled properly in setUpModule https://bitbucket.org/hpk42/pytest/issue/480/skiptest-is-not-handled-properly-in Michel Albert: The [official python docs](http://docs.python.org/3/library/unittest.html?highlight=unittest#setupmodule-and-teardownmodule) state the following: > If an exception is raised in a setUpModule then none of the tests in the module will be run and the tearDownModule will not be run. If the exception is a SkipTest exception then the module will be reported as having been skipped instead of as an error. I needed to implement this in one of my current projects. Both the default unittest runner and nosetests handle this correctly. It seems though that py.test does not handle this and reports each test in the module as "Error". From issues-reply at bitbucket.org Wed Mar 12 08:11:15 2014 From: issues-reply at bitbucket.org (=?utf-8?q?Se=C3=A1n_Hayes?=) Date: Wed, 12 Mar 2014 07:11:15 -0000 Subject: [Pytest-commit] Issue #156: whitelist_externals ignored (hpk42/tox) Message-ID: <20140312071115.24297.42379@app13.ash-private.bitbucket.org> New issue 156: whitelist_externals ignored https://bitbucket.org/hpk42/tox/issue/156/whitelist_externals-ignored Se?n Hayes: I'm using python 2.7 and tox 1.7.0 on Ubuntu 13.04. Here's part of my tox.ini file: ``` [testenv] whitelist_externals = * setenv = PYTHONPATH = {toxinidir}:{toxinidir}/tests commands = cd {envdir}/ && wget https://pypi.python.org/packages/source/p/pysqlite/pysqlite-2.6.3.tar.gz#md5=7ff1cedee74646b50117acff87aa1cfa cd {envdir}/ && tar -xvf pysqlite-2.6.3.tar.gz cd {envdir}/pysqlite-2.6.3/ && python setup.py build_ext -U SQLITE_OMIT_LOAD_EXTENSION cd {envdir}/pysqlite-2.6.3/ && python setup.py develop {envbindir}/django-admin.py test core --settings=settings_core ``` I need to customize the build before installing, and the only way I could think to do that is put it in commands. I tried whitelisting `cd` and the other commands I need but got: "ERROR: InvocationError: could not find executable 'cd'" Even when whitelsiting everything, I get the same error. From issues-reply at bitbucket.org Wed Mar 12 14:49:36 2014 From: issues-reply at bitbucket.org (Luke Lee) Date: Wed, 12 Mar 2014 13:49:36 -0000 Subject: [Pytest-commit] Issue #481: Running doctests with -s fails? (hpk42/pytest) Message-ID: <20140312134936.29640.70249@app02.ash-private.bitbucket.org> New issue 481: Running doctests with -s fails? https://bitbucket.org/hpk42/pytest/issue/481/running-doctests-with-s-fails Luke Lee: I'm running pytest 2.5.2 with Python 2.7 and see some doctests fail unless I pass the -s flag to turn of stdout capturing. Is this expected? This issue is either an esoteric bug in pytest or a problem with my tests. For example, I wrote this simple test and it passes with or without the -s flag: ``` #!python def test_func(): """ >>> print 'hello' hello """ pass ``` However, this doctest will fail if I do not use the -s flag: def saveRecentProjectPath(self, new_path): r""" Save given path to rolling unique recent XML file paths (projects or datasets) This recent file paths list is meant to be used for recent xml files users opened recently by name, not implicitly by opening a project file. So, the implicit convention is to only update a new path here when the user explictly requests a file path with a dialog. >>> settings = UserSettings('.test_settings') >>> settings.clearRecentProjectPaths() >>> settings.saveRecentProjectPath('this/is/a/test') >>> settings.recentProjectPaths() ['this/is/a/test'] """ The real world test is a bit more complicated, but it passes as-is with the -s flag. So, it leads me to think the issue has something to do with the stdout capturing in pytest. Also, the test passes as-is with nose and other tools regardless of log capturing. Any ideas? From commits-noreply at bitbucket.org Fri Mar 14 08:11:48 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 14 Mar 2014 07:11:48 -0000 Subject: [Pytest-commit] commit/pytest: 3 new changesets Message-ID: <20140314071148.24057.5309@app03.ash-private.bitbucket.org> 3 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/a016be612113/ Changeset: a016be612113 User: hpk42 Date: 2014-03-11 22:10:17 Summary: introduce warning system with this API: - node.warn() for a node-specific warning - config.warn() for a global non-node specific warning Each warning is accompanied by a "warning number" so that we can later introduce mechanisms for surpressing them. Each warning will trigger a call to pytest_report_warn(number, node, message) which is by default implemented by the TerminalReporter which introduces a new option "-rw" to show details about warnings. Affected #: 5 files diff -r 8d2d44cf0345a9e4e5992768c50c5918b8dc08cc -r a016be6121137d7e9bf6c534a7070e5cf1ee267b _pytest/config.py --- a/_pytest/config.py +++ b/_pytest/config.py @@ -613,6 +613,11 @@ self.hook.pytest_unconfigure(config=self) self.pluginmanager.ensure_shutdown() + def warn(self, code, message): + """ generate a warning for this test session. """ + self.hook.pytest_logwarning(code=code, message=message, + fslocation=None, nodeid=None) + def pytest_cmdline_parse(self, pluginmanager, args): assert self == pluginmanager.config, (self, pluginmanager.config) self.parse(args) diff -r 8d2d44cf0345a9e4e5992768c50c5918b8dc08cc -r a016be6121137d7e9bf6c534a7070e5cf1ee267b _pytest/hookspec.py --- a/_pytest/hookspec.py +++ b/_pytest/hookspec.py @@ -227,6 +227,11 @@ def pytest_terminal_summary(terminalreporter): """ add additional section in terminal summary reporting. """ +def pytest_logwarning(message, code, nodeid, fslocation): + """ process a warning specified by a message, a code string, + a nodeid and fslocation (both of which may be None + if the warning is not tied to a partilar node/location).""" + # ------------------------------------------------------------------------- # doctest hooks # ------------------------------------------------------------------------- diff -r 8d2d44cf0345a9e4e5992768c50c5918b8dc08cc -r a016be6121137d7e9bf6c534a7070e5cf1ee267b _pytest/main.py --- a/_pytest/main.py +++ b/_pytest/main.py @@ -263,6 +263,20 @@ return "<%s %r>" %(self.__class__.__name__, getattr(self, 'name', None)) + def warn(self, code, message): + """ generate a warning with the given code and message for this + item. """ + assert isinstance(code, str) + fslocation = getattr(self, "location", None) + if fslocation is None: + fslocation = getattr(self, "fspath", None) + else: + fslocation = "%s:%s" % fslocation[:2] + + self.ihook.pytest_logwarning(code=code, message=message, + nodeid=self.nodeid, + fslocation=fslocation) + # methods for ordering nodes @property def nodeid(self): diff -r 8d2d44cf0345a9e4e5992768c50c5918b8dc08cc -r a016be6121137d7e9bf6c534a7070e5cf1ee267b _pytest/terminal.py --- a/_pytest/terminal.py +++ b/_pytest/terminal.py @@ -75,6 +75,14 @@ letter = "f" return report.outcome, letter, report.outcome.upper() +class WarningReport: + def __init__(self, code, message, nodeid=None, fslocation=None): + self.code = code + self.message = message + self.nodeid = nodeid + self.fslocation = fslocation + + class TerminalReporter: def __init__(self, config, file=None): self.config = config @@ -151,6 +159,12 @@ self.write_line("INTERNALERROR> " + line) return 1 + def pytest_logwarning(self, code, fslocation, message, nodeid): + warnings = self.stats.setdefault("warnings", []) + warning = WarningReport(code=code, fslocation=fslocation, + message=message, nodeid=nodeid) + warnings.append(warning) + def pytest_plugin_registered(self, plugin): if self.config.option.traceconfig: msg = "PLUGIN registered: %s" % (plugin,) @@ -335,6 +349,7 @@ self.summary_errors() self.summary_failures() self.summary_hints() + self.summary_warnings() self.config.hook.pytest_terminal_summary(terminalreporter=self) if exitstatus == 2: self._report_keyboardinterrupt() @@ -405,6 +420,16 @@ for hint in self.config.pluginmanager._hints: self._tw.line("hint: %s" % hint) + def summary_warnings(self): + if self.hasopt("w"): + warnings = self.stats.get("warnings") + if not warnings: + return + self.write_sep("=", "warning summary") + for w in warnings: + self._tw.line("W%s %s %s" % (w.code, + w.fslocation, w.message)) + def summary_failures(self): if self.config.option.tbstyle != "no": reports = self.getreports('failed') @@ -449,7 +474,8 @@ def summary_stats(self): session_duration = py.std.time.time() - self._sessionstarttime - keys = "failed passed skipped deselected xfailed xpassed".split() + keys = ("failed passed skipped deselected " + "xfailed xpassed warnings").split() for key in self.stats.keys(): if key not in keys: keys.append(key) diff -r 8d2d44cf0345a9e4e5992768c50c5918b8dc08cc -r a016be6121137d7e9bf6c534a7070e5cf1ee267b testing/test_config.py --- a/testing/test_config.py +++ b/testing/test_config.py @@ -360,4 +360,43 @@ assert l[-2] == m.pytest_load_initial_conftests assert l[-3].__module__ == "_pytest.config" +class TestWarning: + def test_warn_config(self, testdir): + testdir.makeconftest(""" + l = [] + def pytest_configure(config): + config.warn("C1", "hello") + def pytest_logwarning(code, message): + assert code == "C1" + assert message == "hello" + l.append(1) + """) + testdir.makepyfile(""" + def test_proper(pytestconfig): + import conftest + assert conftest.l == [1] + """) + reprec = testdir.inline_run() + reprec.assertoutcome(passed=1) + def test_warn_on_test_item_from_request(self, testdir): + testdir.makepyfile(""" + import pytest + + @pytest.fixture + def fix(request): + request.node.warn("T1", "hello") + def test_hello(fix): + pass + """) + result = testdir.runpytest() + result.stdout.fnmatch_lines(""" + *1 warning* + """) + assert "hello" not in result.stdout.str() + result = testdir.runpytest("-rw") + result.stdout.fnmatch_lines(""" + ===*warning summary*=== + *WT1*test_warn_on_test_item*:5*hello* + *1 warning* + """) https://bitbucket.org/hpk42/pytest/commits/a1ff8ba50ac5/ Changeset: a1ff8ba50ac5 User: hpk42 Date: 2014-03-11 22:10:18 Summary: warn if instances are callable and have a test name Affected #: 3 files diff -r a016be6121137d7e9bf6c534a7070e5cf1ee267b -r a1ff8ba50ac5617a2151a162f31887de7e48f761 _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -11,7 +11,8 @@ NoneType = type(None) NOTSET = object() - +isfunction = inspect.isfunction +isclass = inspect.isclass callable = py.builtin.callable def getfslineno(obj): @@ -44,7 +45,7 @@ self.ids = ids def __call__(self, function): - if inspect.isclass(function): + if isclass(function): raise ValueError( "class fixtures not supported (may be in the future)") function._pytestfixturefunction = self @@ -213,14 +214,19 @@ res = __multicall__.execute() if res is not None: return res - if inspect.isclass(obj): + if isclass(obj): #if hasattr(collector.obj, 'unittest'): # return # we assume it's a mixin class for a TestCase derived one if collector.classnamefilter(name): Class = collector._getcustomclass("Class") return Class(name, parent=collector) - elif collector.funcnamefilter(name) and hasattr(obj, '__call__') and \ + elif collector.funcnamefilter(name) and hasattr(obj, "__call__") and \ getfixturemarker(obj) is None: + if not isfunction(obj): + collector.warn(code="C2", message= + "cannot collect %r because it is not a function." + % name, ) + return if is_generator(obj): return Generator(name, parent=collector) else: @@ -498,10 +504,9 @@ """ Collector for test methods. """ def collect(self): if hasinit(self.obj): - pytest.skip("class %s.%s with __init__ won't get collected" % ( - self.obj.__module__, - self.obj.__name__, - )) + self.warn("C1", "cannot collect test class %r because it has a " + "__init__ constructor" % self.obj.__name__) + return [] return [self._getcustomclass("Instance")(name="()", parent=self)] def setup(self): diff -r a016be6121137d7e9bf6c534a7070e5cf1ee267b -r a1ff8ba50ac5617a2151a162f31887de7e48f761 _pytest/terminal.py --- a/_pytest/terminal.py +++ b/_pytest/terminal.py @@ -15,7 +15,7 @@ group._addoption('-r', action="store", dest="reportchars", default=None, metavar="chars", help="show extra test summary info as specified by chars (f)ailed, " - "(E)error, (s)skipped, (x)failed, (X)passed.") + "(E)error, (s)skipped, (x)failed, (X)passed (w)warnings.") group._addoption('-l', '--showlocals', action="store_true", dest="showlocals", default=False, help="show locals in tracebacks (disabled by default).") diff -r a016be6121137d7e9bf6c534a7070e5cf1ee267b -r a1ff8ba50ac5617a2151a162f31887de7e48f761 testing/python/collect.py --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -33,8 +33,8 @@ pytest.raises(ImportError, lambda: modcol.obj) class TestClass: - def test_class_with_init_skip_collect(self, testdir): - modcol = testdir.getmodulecol(""" + def test_class_with_init_warning(self, testdir): + testdir.makepyfile(""" class TestClass1: def __init__(self): pass @@ -42,11 +42,11 @@ def __init__(self): pass """) - l = modcol.collect() - assert len(l) == 2 - - for classcol in l: - pytest.raises(pytest.skip.Exception, classcol.collect) + result = testdir.runpytest("-rw") + result.stdout.fnmatch_lines(""" + WC1*test_class_with_init_warning.py*__init__* + *2 warnings* + """) def test_class_subclassobject(self, testdir): testdir.getmodulecol(""" @@ -276,6 +276,17 @@ assert isinstance(modcol, pytest.Module) assert hasattr(modcol.obj, 'test_func') + def test_function_as_object_instance_ignored(self, testdir): + item = testdir.makepyfile(""" + class A: + def __call__(self, tmpdir): + 0/0 + + test_a = A() + """) + reprec = testdir.inline_run() + reprec.assertoutcome() + def test_function_equality(self, testdir, tmpdir): from _pytest.python import FixtureManager config = testdir.parseconfigure() https://bitbucket.org/hpk42/pytest/commits/e18da3213547/ Changeset: e18da3213547 User: hpk42 Date: 2014-03-11 22:10:51 Summary: shrink and merge the somewhat obscure and undocumented internal hinting system with the new warnings one Affected #: 6 files diff -r a1ff8ba50ac5617a2151a162f31887de7e48f761 -r e18da321354757558ffd286a07e94d2b1cd42b18 _pytest/config.py --- a/_pytest/config.py +++ b/_pytest/config.py @@ -82,6 +82,9 @@ config.addinivalue_line("markers", "trylast: mark a hook implementation function such that the " "plugin machinery will try to call it last/as late as possible.") + while self._warnings: + warning = self._warnings.pop(0) + config.warn(code="I1", message=warning) class Parser: @@ -94,7 +97,6 @@ self._usage = usage self._inidict = {} self._ininames = [] - self.hints = [] def processoption(self, option): if self._processopt: @@ -379,14 +381,6 @@ py.std.argparse.ArgumentParser.__init__(self, usage=parser._usage, add_help=False, formatter_class=DropShorterLongHelpFormatter) - def format_epilog(self, formatter): - hints = self._parser.hints - if hints: - s = "\n".join(["hint: " + x for x in hints]) + "\n" - s = "\n" + s + "\n" - return s - return "" - def parse_args(self, args=None, namespace=None): """allow splitting of positional arguments""" args, argv = self.parse_known_args(args, namespace) @@ -716,7 +710,6 @@ self._preparse(args) # XXX deprecated hook: self.hook.pytest_cmdline_preparse(config=self, args=args) - self._parser.hints.extend(self.pluginmanager._hints) args = self._parser.parse_setoption(args, self.option) if not args: args.append(py.std.os.getcwd()) diff -r a1ff8ba50ac5617a2151a162f31887de7e48f761 -r e18da321354757558ffd286a07e94d2b1cd42b18 _pytest/core.py --- a/_pytest/core.py +++ b/_pytest/core.py @@ -71,7 +71,7 @@ self._name2plugin = {} self._listattrcache = {} self._plugins = [] - self._hints = [] + self._warnings = [] self.trace = TagTracer().get("pluginmanage") self._plugin_distinfo = [] self._shutdown = [] @@ -225,7 +225,7 @@ raise elif not isinstance(e, py.test.skip.Exception): raise - self._hints.append("skipped plugin %r: %s" %((modname, e.msg))) + self._warnings.append("skipped plugin %r: %s" %((modname, e.msg))) else: self.register(mod, modname) self.consider_module(mod) diff -r a1ff8ba50ac5617a2151a162f31887de7e48f761 -r e18da321354757558ffd286a07e94d2b1cd42b18 _pytest/helpconfig.py --- a/_pytest/helpconfig.py +++ b/_pytest/helpconfig.py @@ -64,7 +64,6 @@ def showhelp(config): tw = py.io.TerminalWriter() tw.write(config._parser.optparser.format_help()) - tw.write(config._parser.optparser.format_epilog(None)) tw.line() tw.line() #tw.sep( "=", "config file settings") @@ -86,6 +85,8 @@ tw.line("to see available fixtures type: py.test --fixtures") tw.line("(shown according to specified file_or_dir or current dir " "if not specified)") + for warning in config.pluginmanager._warnings: + tw.line("warning: %s" % (warning,)) return tw.line("conftest.py options:") diff -r a1ff8ba50ac5617a2151a162f31887de7e48f761 -r e18da321354757558ffd286a07e94d2b1cd42b18 _pytest/terminal.py --- a/_pytest/terminal.py +++ b/_pytest/terminal.py @@ -348,7 +348,6 @@ if exitstatus in (0, 1, 2, 4): self.summary_errors() self.summary_failures() - self.summary_hints() self.summary_warnings() self.config.hook.pytest_terminal_summary(terminalreporter=self) if exitstatus == 2: @@ -415,11 +414,6 @@ l.append(x) return l - def summary_hints(self): - if self.config.option.traceconfig: - for hint in self.config.pluginmanager._hints: - self._tw.line("hint: %s" % hint) - def summary_warnings(self): if self.hasopt("w"): warnings = self.stats.get("warnings") diff -r a1ff8ba50ac5617a2151a162f31887de7e48f761 -r e18da321354757558ffd286a07e94d2b1cd42b18 testing/test_core.py --- a/testing/test_core.py +++ b/testing/test_core.py @@ -43,11 +43,11 @@ """) p.copy(p.dirpath("skipping2.py")) monkeypatch.setenv("PYTEST_PLUGINS", "skipping2") - result = testdir.runpytest("-p", "skipping1", "--traceconfig") + result = testdir.runpytest("-rw", "-p", "skipping1", "--traceconfig") assert result.ret == 0 result.stdout.fnmatch_lines([ - "*hint*skipping1*hello*", - "*hint*skipping2*hello*", + "WI1*skipped plugin*skipping1*hello*", + "WI1*skipped plugin*skipping2*hello*", ]) def test_consider_env_plugin_instantiation(self, testdir, monkeypatch): diff -r a1ff8ba50ac5617a2151a162f31887de7e48f761 -r e18da321354757558ffd286a07e94d2b1cd42b18 testing/test_parseopt.py --- a/testing/test_parseopt.py +++ b/testing/test_parseopt.py @@ -236,16 +236,6 @@ help = parser.optparser.format_help() assert '-doit, --func-args foo' in help - at pytest.mark.skipif("sys.version_info < (2,5)") -def test_addoption_parser_epilog(testdir): - testdir.makeconftest(""" - def pytest_addoption(parser): - parser.hints.append("hello world") - parser.hints.append("from me too") - """) - result = testdir.runpytest('--help') - #assert result.ret != 0 - result.stdout.fnmatch_lines(["hint: hello world", "hint: from me too"]) @pytest.mark.skipif("sys.version_info < (2,6)") def test_argcomplete(testdir, monkeypatch): Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Fri Mar 14 08:15:52 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 14 Mar 2014 07:15:52 -0000 Subject: [Pytest-commit] commit/pytest: hpk42: add changelog for warning system, bump internal version Message-ID: <20140314071552.2662.48522@app09.ash-private.bitbucket.org> 1 new commit in pytest: https://bitbucket.org/hpk42/pytest/commits/52e080dd60ed/ Changeset: 52e080dd60ed User: hpk42 Date: 2014-03-14 08:15:38 Summary: add changelog for warning system, bump internal version Affected #: 3 files diff -r e18da321354757558ffd286a07e94d2b1cd42b18 -r 52e080dd60eda8dcf4732baebebebb79160d14ff CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,16 @@ +NEXT (2.6) +----------------------------------- + +- internal new warning system: pytest will now produce warnings when + it detects oddities in your test collection or execution. + Warnings are ultimately sent to a new pytest_logwarning hook which is + currently only implemented by the terminal plugin which displays + warnings in the summary line and shows more details when -rw (report on + warnings) is specified. + +- change skips into warnings for test classes with an __init__ and + callables in test modules which look like a test but are not functions. + 2.5.2 ----------------------------------- diff -r e18da321354757558ffd286a07e94d2b1cd42b18 -r 52e080dd60eda8dcf4732baebebebb79160d14ff _pytest/__init__.py --- a/_pytest/__init__.py +++ b/_pytest/__init__.py @@ -1,2 +1,2 @@ # -__version__ = '2.5.2' +__version__ = '2.5.3.dev1' diff -r e18da321354757558ffd286a07e94d2b1cd42b18 -r 52e080dd60eda8dcf4732baebebebb79160d14ff setup.py --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ name='pytest', description='pytest: simple powerful testing with Python', long_description = long_description, - version='2.5.2', + version='2.5.3.dev1', url='http://pytest.org', license='MIT license', platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Fri Mar 14 13:06:58 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 14 Mar 2014 12:06:58 -0000 Subject: [Pytest-commit] commit/pytest: 2 new changesets Message-ID: <20140314120658.19830.74375@app01.ash-private.bitbucket.org> 2 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/39ae14bd22af/ Changeset: 39ae14bd22af Branch: graingert/pep8-good-practices-code-1394196858258 User: graingert Date: 2014-03-07 13:51:51 Summary: pep8 good practices code Affected #: 1 file diff -r 8d2d44cf0345a9e4e5992768c50c5918b8dc08cc -r 39ae14bd22af9d0a037f6246e37cc3c4415d54d9 doc/en/goodpractises.txt --- a/doc/en/goodpractises.txt +++ b/doc/en/goodpractises.txt @@ -1,4 +1,3 @@ - .. highlightlang:: python .. _`goodpractises`: @@ -190,12 +189,16 @@ user_options = [] def initialize_options(self): pass + def finalize_options(self): pass + def run(self): import sys,subprocess errno = subprocess.call([sys.executable, 'runtests.py']) raise SystemExit(errno) + + setup( #..., cmdclass = {'test': PyTest}, @@ -220,20 +223,24 @@ Most often it is better to use tox_ instead, but here is how you can get started with setuptools integration:: + import sys + from setuptools.command.test import test as TestCommand - import sys + class PyTest(TestCommand): def finalize_options(self): TestCommand.finalize_options(self) self.test_args = [] self.test_suite = True + def run_tests(self): #import here, cause outside the eggs aren't loaded import pytest errno = pytest.main(self.test_args) sys.exit(errno) + setup( #..., tests_require=['pytest'], https://bitbucket.org/hpk42/pytest/commits/2523488264cb/ Changeset: 2523488264cb User: hpk42 Date: 2014-03-14 13:06:53 Summary: Merged in graingert/pytest/graingert/pep8-good-practices-code-1394196858258 (pull request #125) pep8 good practices code Affected #: 1 file diff -r 52e080dd60eda8dcf4732baebebebb79160d14ff -r 2523488264cb7b8cd1963e09c44ba92b3a68f6c9 doc/en/goodpractises.txt --- a/doc/en/goodpractises.txt +++ b/doc/en/goodpractises.txt @@ -1,4 +1,3 @@ - .. highlightlang:: python .. _`goodpractises`: @@ -190,12 +189,16 @@ user_options = [] def initialize_options(self): pass + def finalize_options(self): pass + def run(self): import sys,subprocess errno = subprocess.call([sys.executable, 'runtests.py']) raise SystemExit(errno) + + setup( #..., cmdclass = {'test': PyTest}, @@ -220,20 +223,24 @@ Most often it is better to use tox_ instead, but here is how you can get started with setuptools integration:: + import sys + from setuptools.command.test import test as TestCommand - import sys + class PyTest(TestCommand): def finalize_options(self): TestCommand.finalize_options(self) self.test_args = [] self.test_suite = True + def run_tests(self): #import here, cause outside the eggs aren't loaded import pytest errno = pytest.main(self.test_args) sys.exit(errno) + setup( #..., tests_require=['pytest'], Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Fri Mar 14 13:10:37 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 14 Mar 2014 12:10:37 -0000 Subject: [Pytest-commit] commit/pytest: 2 new changesets Message-ID: <20140314121037.13674.7512@app11.ash-private.bitbucket.org> 2 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/e5bc9442bb02/ Changeset: e5bc9442bb02 Branch: doc_typo_correction User: jurko Date: 2014-03-02 22:52:38 Summary: fix documentation typo Affected #: 1 file diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r e5bc9442bb02b01529e3e982e238c0653ff05e7c doc/en/plugins.txt --- a/doc/en/plugins.txt +++ b/doc/en/plugins.txt @@ -315,7 +315,7 @@ Generic "runtest" hooks ------------------------------ -All all runtest related hooks receive a :py:class:`pytest.Item` object. +All runtest related hooks receive a :py:class:`pytest.Item` object. .. autofunction:: pytest_runtest_protocol .. autofunction:: pytest_runtest_setup https://bitbucket.org/hpk42/pytest/commits/023c92172a30/ Changeset: 023c92172a30 User: hpk42 Date: 2014-03-14 13:10:33 Summary: Merged in jurko/pytest/doc_typo_correction (pull request #122) fix documentation typo Affected #: 1 file diff -r 2523488264cb7b8cd1963e09c44ba92b3a68f6c9 -r 023c92172a302236917be115087636faf72a03b5 doc/en/plugins.txt --- a/doc/en/plugins.txt +++ b/doc/en/plugins.txt @@ -315,7 +315,7 @@ Generic "runtest" hooks ------------------------------ -All all runtest related hooks receive a :py:class:`pytest.Item` object. +All runtest related hooks receive a :py:class:`pytest.Item` object. .. autofunction:: pytest_runtest_protocol .. autofunction:: pytest_runtest_setup Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From issues-reply at bitbucket.org Fri Mar 14 15:03:20 2014 From: issues-reply at bitbucket.org (Roy van de Korput) Date: Fri, 14 Mar 2014 14:03:20 -0000 Subject: [Pytest-commit] Issue #482: pytest_addoption doesn't allow parameters which is the path to an existing file (hpk42/pytest) Message-ID: <20140314140320.20610.54812@app07.ash-private.bitbucket.org> New issue 482: pytest_addoption doesn't allow parameters which is the path to an existing file https://bitbucket.org/hpk42/pytest/issue/482/pytest_addoption-doesnt-allow-parameters Roy van de Korput: I've created an custom option: ``` #!python def pytest_addoption(parser): parser.addoption('--custom', help = 'The custom option to be used.', required = True) @pytest.fixture def custom(request): return request.config.getoption("--custom") ``` Now in the folder there is a file named 'custom.example' If I pass "py.test -v -s --custom custom.example" I get this error: "py.test-script.py: error: unrecognized arguments: --custom" It works when I call with an parameter which is not a file: "py.test -v -s --custom custom.example.doesnotexist". From commits-noreply at bitbucket.org Fri Mar 14 15:39:05 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 14 Mar 2014 14:39:05 -0000 Subject: [Pytest-commit] commit/pytest: 4 new changesets Message-ID: <20140314143905.26707.83775@app01.ash-private.bitbucket.org> 4 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/f68e78b14a3e/ Changeset: f68e78b14a3e User: schlamar Date: 2014-03-14 14:04:54 Summary: Fixed race condition with SkipTest when module not in sys.modules on collection. Affected #: 4 files diff -r 023c92172a302236917be115087636faf72a03b5 -r f68e78b14a3e1be86d65262a74a8868532e45e0c _pytest/main.py --- a/_pytest/main.py +++ b/_pytest/main.py @@ -408,10 +408,6 @@ and thus iteratively build a tree. """ - # the set of exceptions to interpret as "Skip the whole module" during - # collection - skip_exceptions = (Skipped,) - class CollectError(Exception): """ an error during collection, contains a custom message. """ diff -r 023c92172a302236917be115087636faf72a03b5 -r f68e78b14a3e1be86d65262a74a8868532e45e0c _pytest/nose.py --- a/_pytest/nose.py +++ b/_pytest/nose.py @@ -1,17 +1,32 @@ """ run test suites written for nose. """ -import pytest, py import sys + +import py +import pytest from _pytest import unittest + +def get_skip_exceptions(): + skip_classes = set() + for module_name in ('unittest', 'unittest2', 'nose'): + mod = sys.modules.get(module_name) + if hasattr(mod, 'SkipTest'): + skip_classes.add(mod.SkipTest) + return tuple(skip_classes) + + def pytest_runtest_makereport(__multicall__, item, call): - SkipTest = getattr(sys.modules.get('nose', None), 'SkipTest', None) - if SkipTest: - if call.excinfo and call.excinfo.errisinstance(SkipTest): + if not call.excinfo: + return + + for skip_exc in get_skip_exceptions(): + if call.excinfo.errisinstance(skip_exc): # let's substitute the excinfo with a pytest.skip one call2 = call.__class__(lambda: pytest.skip(str(call.excinfo.value)), call.when) call.excinfo = call2.excinfo + return @pytest.mark.trylast @@ -38,13 +53,8 @@ # #call_optional(item._nosegensetup, 'teardown') # del item.parent._nosegensetup + def pytest_make_collect_report(collector): - SkipTest = getattr(sys.modules.get('unittest', None), 'SkipTest', None) - if SkipTest is not None: - collector.skip_exceptions += (SkipTest,) - SkipTest = getattr(sys.modules.get('nose', None), 'SkipTest', None) - if SkipTest is not None: - collector.skip_exceptions += (SkipTest,) if isinstance(collector, pytest.Generator): call_optional(collector.obj, 'setup') diff -r 023c92172a302236917be115087636faf72a03b5 -r f68e78b14a3e1be86d65262a74a8868532e45e0c _pytest/runner.py --- a/_pytest/runner.py +++ b/_pytest/runner.py @@ -267,7 +267,9 @@ if not call.excinfo: outcome = "passed" else: - if call.excinfo.errisinstance(collector.skip_exceptions): + from _pytest import nose + skip_exceptions = (Skipped,) + nose.get_skip_exceptions() + if call.excinfo.errisinstance(skip_exceptions): outcome = "skipped" r = collector._repr_failure_py(call.excinfo, "line").reprcrash longrepr = (str(r.path), r.lineno, r.message) diff -r 023c92172a302236917be115087636faf72a03b5 -r f68e78b14a3e1be86d65262a74a8868532e45e0c testing/test_nose.py --- a/testing/test_nose.py +++ b/testing/test_nose.py @@ -330,12 +330,26 @@ reprec = testdir.inline_run() reprec.assertoutcome(passed=1, skipped=1) + def test_SkipTest_during_collection(testdir): - testdir.makepyfile(""" + p = testdir.makepyfile(""" import nose raise nose.SkipTest("during collection") def test_failing(): assert False """) + result = testdir.runpytest(p) + outcome = result.parseoutcomes() + outcome.pop('seconds') + assert outcome == dict(skipped=1) + + +def test_SkipTest_in_test(testdir): + testdir.makepyfile(""" + import nose + + def test_skipping(): + raise nose.SkipTest("in test") + """) reprec = testdir.inline_run() reprec.assertoutcome(skipped=1) https://bitbucket.org/hpk42/pytest/commits/28862c400f1a/ Changeset: 28862c400f1a User: schlamar Date: 2014-03-14 14:25:36 Summary: Fixed pyflakes errors. Affected #: 2 files diff -r f68e78b14a3e1be86d65262a74a8868532e45e0c -r 28862c400f1a82ff9a2a565b772853a6f4cbd5fb _pytest/main.py --- a/_pytest/main.py +++ b/_pytest/main.py @@ -8,7 +8,7 @@ except ImportError: from UserDict import DictMixin as MappingMixin -from _pytest.runner import collect_one_node, Skipped +from _pytest.runner import collect_one_node tracebackcutdir = py.path.local(_pytest.__file__).dirpath() diff -r f68e78b14a3e1be86d65262a74a8868532e45e0c -r 28862c400f1a82ff9a2a565b772853a6f4cbd5fb testing/python/collect.py --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -277,7 +277,7 @@ assert hasattr(modcol.obj, 'test_func') def test_function_as_object_instance_ignored(self, testdir): - item = testdir.makepyfile(""" + testdir.makepyfile(""" class A: def __call__(self, tmpdir): 0/0 https://bitbucket.org/hpk42/pytest/commits/ac3dba0858b9/ Changeset: ac3dba0858b9 User: schlamar Date: 2014-03-14 15:29:42 Summary: Removed unnecessary iteration in nose.pytest_runtest_makereport. Affected #: 1 file diff -r 28862c400f1a82ff9a2a565b772853a6f4cbd5fb -r ac3dba0858b9c36873c363feb12a5bfa8b58ec1f _pytest/nose.py --- a/_pytest/nose.py +++ b/_pytest/nose.py @@ -17,16 +17,11 @@ def pytest_runtest_makereport(__multicall__, item, call): - if not call.excinfo: - return - - for skip_exc in get_skip_exceptions(): - if call.excinfo.errisinstance(skip_exc): - # let's substitute the excinfo with a pytest.skip one - call2 = call.__class__(lambda: - pytest.skip(str(call.excinfo.value)), call.when) - call.excinfo = call2.excinfo - return + if call.excinfo and call.excinfo.errisinstance(get_skip_exceptions()): + # let's substitute the excinfo with a pytest.skip one + call2 = call.__class__(lambda: + pytest.skip(str(call.excinfo.value)), call.when) + call.excinfo = call2.excinfo @pytest.mark.trylast https://bitbucket.org/hpk42/pytest/commits/78d209d1deef/ Changeset: 78d209d1deef User: hpk42 Date: 2014-03-14 15:39:01 Summary: Merged in schlamar/pytest (pull request #129) Fixed race condition with SkipTest when module not in sys.modules on collection. Affected #: 5 files diff -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f -r 78d209d1deef275a3ffbbb68004d6b377840ace1 _pytest/main.py --- a/_pytest/main.py +++ b/_pytest/main.py @@ -8,7 +8,7 @@ except ImportError: from UserDict import DictMixin as MappingMixin -from _pytest.runner import collect_one_node, Skipped +from _pytest.runner import collect_one_node tracebackcutdir = py.path.local(_pytest.__file__).dirpath() @@ -408,10 +408,6 @@ and thus iteratively build a tree. """ - # the set of exceptions to interpret as "Skip the whole module" during - # collection - skip_exceptions = (Skipped,) - class CollectError(Exception): """ an error during collection, contains a custom message. """ diff -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f -r 78d209d1deef275a3ffbbb68004d6b377840ace1 _pytest/nose.py --- a/_pytest/nose.py +++ b/_pytest/nose.py @@ -1,17 +1,27 @@ """ run test suites written for nose. """ -import pytest, py import sys + +import py +import pytest from _pytest import unittest + +def get_skip_exceptions(): + skip_classes = set() + for module_name in ('unittest', 'unittest2', 'nose'): + mod = sys.modules.get(module_name) + if hasattr(mod, 'SkipTest'): + skip_classes.add(mod.SkipTest) + return tuple(skip_classes) + + def pytest_runtest_makereport(__multicall__, item, call): - SkipTest = getattr(sys.modules.get('nose', None), 'SkipTest', None) - if SkipTest: - if call.excinfo and call.excinfo.errisinstance(SkipTest): - # let's substitute the excinfo with a pytest.skip one - call2 = call.__class__(lambda: - pytest.skip(str(call.excinfo.value)), call.when) - call.excinfo = call2.excinfo + if call.excinfo and call.excinfo.errisinstance(get_skip_exceptions()): + # let's substitute the excinfo with a pytest.skip one + call2 = call.__class__(lambda: + pytest.skip(str(call.excinfo.value)), call.when) + call.excinfo = call2.excinfo @pytest.mark.trylast @@ -38,13 +48,8 @@ # #call_optional(item._nosegensetup, 'teardown') # del item.parent._nosegensetup + def pytest_make_collect_report(collector): - SkipTest = getattr(sys.modules.get('unittest', None), 'SkipTest', None) - if SkipTest is not None: - collector.skip_exceptions += (SkipTest,) - SkipTest = getattr(sys.modules.get('nose', None), 'SkipTest', None) - if SkipTest is not None: - collector.skip_exceptions += (SkipTest,) if isinstance(collector, pytest.Generator): call_optional(collector.obj, 'setup') diff -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f -r 78d209d1deef275a3ffbbb68004d6b377840ace1 _pytest/runner.py --- a/_pytest/runner.py +++ b/_pytest/runner.py @@ -267,7 +267,9 @@ if not call.excinfo: outcome = "passed" else: - if call.excinfo.errisinstance(collector.skip_exceptions): + from _pytest import nose + skip_exceptions = (Skipped,) + nose.get_skip_exceptions() + if call.excinfo.errisinstance(skip_exceptions): outcome = "skipped" r = collector._repr_failure_py(call.excinfo, "line").reprcrash longrepr = (str(r.path), r.lineno, r.message) diff -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f -r 78d209d1deef275a3ffbbb68004d6b377840ace1 testing/python/collect.py --- a/testing/python/collect.py +++ b/testing/python/collect.py @@ -277,7 +277,7 @@ assert hasattr(modcol.obj, 'test_func') def test_function_as_object_instance_ignored(self, testdir): - item = testdir.makepyfile(""" + testdir.makepyfile(""" class A: def __call__(self, tmpdir): 0/0 diff -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f -r 78d209d1deef275a3ffbbb68004d6b377840ace1 testing/test_nose.py --- a/testing/test_nose.py +++ b/testing/test_nose.py @@ -330,12 +330,26 @@ reprec = testdir.inline_run() reprec.assertoutcome(passed=1, skipped=1) + def test_SkipTest_during_collection(testdir): - testdir.makepyfile(""" + p = testdir.makepyfile(""" import nose raise nose.SkipTest("during collection") def test_failing(): assert False """) + result = testdir.runpytest(p) + outcome = result.parseoutcomes() + outcome.pop('seconds') + assert outcome == dict(skipped=1) + + +def test_SkipTest_in_test(testdir): + testdir.makepyfile(""" + import nose + + def test_skipping(): + raise nose.SkipTest("in test") + """) reprec = testdir.inline_run() reprec.assertoutcome(skipped=1) Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Fri Mar 14 15:34:07 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 14 Mar 2014 14:34:07 -0000 Subject: [Pytest-commit] commit/pytest: 3 new changesets Message-ID: <20140314143407.24858.53165@app09.ash-private.bitbucket.org> 3 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/9fc0c95f4832/ Changeset: 9fc0c95f4832 Branch: integrate-plugin-index-docs User: nicoddemus Date: 2014-02-19 01:33:13 Summary: Improved text on plugins_index - Removed "beta" status from it; - Added links to pytest-plugs app; Affected #: 4 files diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r 9fc0c95f4832e17b50759a513839d0566d95384f doc/en/_templates/links.html --- a/doc/en/_templates/links.html +++ b/doc/en/_templates/links.html @@ -4,7 +4,7 @@
  • Contribution Guide
  • pytest @ PyPI
  • pytest @ Bitbucket
  • -
  • 3rd party plugins (beta)
  • +
  • 3rd party plugins
  • Issue Tracker
  • PDF Documentation diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r 9fc0c95f4832e17b50759a513839d0566d95384f doc/en/plugins.txt --- a/doc/en/plugins.txt +++ b/doc/en/plugins.txt @@ -64,9 +64,10 @@ pip uninstall pytest-NAME If a plugin is installed, ``pytest`` automatically finds and integrates it, -there is no need to activate it. We have a :doc:`beta page listing -all 3rd party plugins and their status ` and here -is a little annotated list for some popular plugins: +there is no need to activate it. We have a :doc:`page listing +all 3rd party plugins and their status against the latest py.test version +` and here is a little annotated list +for some popular plugins: .. _`django`: https://www.djangoproject.com/ @@ -109,7 +110,11 @@ * `oejskit `_: a plugin to run javascript unittests in life browsers -You may discover more plugins through a `pytest- pypi.python.org search`_. +To see a complete list of all plugins with their latest testing +status against different py.test and Python versions, please visit +`pytest-plugs `_. + +You may also discover more plugins through a `pytest- pypi.python.org search`_. .. _`available installable plugins`: .. _`pytest- pypi.python.org search`: http://pypi.python.org/pypi?%3Aaction=search&term=pytest-&submit=search diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r 9fc0c95f4832e17b50759a513839d0566d95384f doc/en/plugins_index/index.txt --- a/doc/en/plugins_index/index.txt +++ b/doc/en/plugins_index/index.txt @@ -3,114 +3,125 @@ List of Third-Party Plugins =========================== -================================================================================== =========================================================================================================== =========================================================================================================== ============================================================= ============================================================================================================================================= - Name Py27 Py33 Repository Summary -================================================================================== =========================================================================================================== =========================================================================================================== ============================================================= ============================================================================================================================================= - `pytest-bdd `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py33&pytest=2.5.2 https://github.com/olegpidsadnyi/pytest-bdd BDD for pytest - :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py33&pytest=2.5.2 - `pytest-bdd-splinter `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 https://github.com/olegpidsadnyi/pytest-bdd-splinter Splinter subplugin for Pytest BDD plugin - :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 - `pytest-bench `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py33&pytest=2.5.2 http://github.com/concordusapps/pytest-bench Benchmark utility that plugs into pytest. - :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py33&pytest=2.5.2 - `pytest-blockage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py33&pytest=2.5.2 https://github.com/rob-b/pytest-blockage Disable network requests during a test run. - :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py33&pytest=2.5.2 - `pytest-browsermob-proxy `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-browsermob-proxy BrowserMob proxy plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 - `pytest-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py33&pytest=2.5.2 http://github.com/nibrahim/pytest_bugzilla py.test bugzilla integration plugin - :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py33&pytest=2.5.2 - `pytest-cache `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-cache/ pytest plugin with mechanisms for caching across test runs - :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py33&pytest=2.5.2 - `pytest-capturelog `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py33&pytest=2.5.2 http://bitbucket.org/memedough/pytest-capturelog/overview py.test plugin to capture log messages - :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py33&pytest=2.5.2 - `pytest-codecheckers `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py33&pytest=2.5.2 http://bitbucket.org/RonnyPfannschmidt/pytest-codecheckers/ pytest plugin to add source code sanity checks (pep8 and friends) - :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py33&pytest=2.5.2 - `pytest-contextfixture `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py33&pytest=2.5.2 http://github.com/pelme/pytest-contextfixture/ Define pytest fixtures as context managers. - :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py33&pytest=2.5.2 - `pytest-couchdbkit `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 http://bitbucket.org/RonnyPfannschmidt/pytest-couchdbkit py.test extension for per-test couchdb databases using couchdbkit - :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 - `pytest-cov `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py33&pytest=2.5.2 http://bitbucket.org/memedough/pytest-cov/overview py.test plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing - :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py33&pytest=2.5.2 - `pytest-dbfixtures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 https://github.com/clearcode/pytest-dbfixtures dbfixtures plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 - `pytest-django `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py33&pytest=2.5.2 http://pytest-django.readthedocs.org/ A Django plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py33&pytest=2.5.2 - `pytest-django-lite `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py33&pytest=2.5.2 https://github.com/dcramer/pytest-django-lite The bare minimum to integrate py.test with Django. - :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py33&pytest=2.5.2 - `pytest-figleaf `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-figleaf py.test figleaf coverage plugin - :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py33&pytest=2.5.2 - `pytest-flakes `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py33&pytest=2.5.2 https://github.com/fschulze/pytest-flakes pytest plugin to check source code with pyflakes - :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py33&pytest=2.5.2 - `pytest-greendots `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py33&pytest=2.5.2 UNKNOWN Green progress dots - :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py33&pytest=2.5.2 - `pytest-growl `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py33&pytest=2.5.2 UNKNOWN Growl notifications for pytest results. - :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py33&pytest=2.5.2 - `pytest-httpretty `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py33&pytest=2.5.2 http://github.com/papaeye/pytest-httpretty A thin wrapper of HTTPretty for pytest - :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py33&pytest=2.5.2 - `pytest-incremental `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py33&pytest=2.5.2 https://bitbucket.org/schettino72/pytest-incremental an incremental test runner (pytest plugin) - :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py33&pytest=2.5.2 - `pytest-instafail `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py33&pytest=2.5.2 https://github.com/jpvanhal/pytest-instafail py.test plugin to show failures instantly - :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py33&pytest=2.5.2 - `pytest-ipdb `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py33&pytest=2.5.2 https://github.com/mverteuil/pytest-ipdb A py.test plug-in to enable drop to ipdb debugger on test failure. - :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py33&pytest=2.5.2 - `pytest-jira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py33&pytest=2.5.2 http://github.com/jlaska/pytest_jira py.test JIRA integration plugin, using markers - :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py33&pytest=2.5.2 - `pytest-konira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py33&pytest=2.5.2 http://github.com/alfredodeza/pytest-konira Run Konira DSL tests with py.test - :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py33&pytest=2.5.2 - `pytest-localserver `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py33&pytest=2.5.2 http://bitbucket.org/basti/pytest-localserver/ py.test plugin to test server connections locally. - :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py33&pytest=2.5.2 - `pytest-marker-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 http://github.com/eanxgeek/pytest_marker_bugzilla py.test bugzilla integration plugin, using markers - :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 - `pytest-markfiltration `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py33&pytest=2.5.2 https://github.com/adamgoucher/pytest-markfiltration UNKNOWN - :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py33&pytest=2.5.2 - `pytest-marks `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py33&pytest=2.5.2 https://github.com/adamgoucher/pytest-marks UNKNOWN - :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py33&pytest=2.5.2 - `pytest-monkeyplus `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hsoft/pytest-monkeyplus/ pytest's monkeypatch subclass with extra functionalities - :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 - `pytest-mozwebqa `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-mozwebqa Mozilla WebQA plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 - `pytest-oerp `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py33&pytest=2.5.2 http://github.com/santagada/pytest-oerp/ pytest plugin to test OpenERP modules - :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py33&pytest=2.5.2 - `pytest-osxnotify `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py33&pytest=2.5.2 https://github.com/dbader/pytest-osxnotify OS X notifications for py.test results. - :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py33&pytest=2.5.2 - `pytest-paste-config `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py33&pytest=2.5.2 UNKNOWN Allow setting the path to a paste config file - :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py33&pytest=2.5.2 - `pytest-pep8 `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-pep8/ pytest plugin to check PEP8 requirements - :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py33&pytest=2.5.2 - `pytest-poo `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py33&pytest=2.5.2 http://github.com/pelme/pytest-poo Visualize your crappy tests - :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py33&pytest=2.5.2 - `pytest-pydev `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py33&pytest=2.5.2 http://bitbucket.org/basti/pytest-pydev/ py.test plugin to connect to a remote debug server with PyDev or PyCharm. - :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py33&pytest=2.5.2 - `pytest-pythonpath `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py33&pytest=2.5.2 https://github.com/bigsassy/pytest-pythonpath pytest plugin for adding to the PYTHONPATH from command line or configs. - :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py33&pytest=2.5.2 - `pytest-qt `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py33&pytest=2.5.2 http://github.com/nicoddemus/pytest-qt pytest plugin that adds fixtures for testing Qt (PyQt and PySide) applications. - :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py33&pytest=2.5.2 - `pytest-quickcheck `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py33&pytest=2.5.2 http://bitbucket.org/t2y/pytest-quickcheck/ pytest plugin to generate random data inspired by QuickCheck - :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py33&pytest=2.5.2 - `pytest-rage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py33&pytest=2.5.2 http://github.com/santagada/pytest-rage/ pytest plugin to implement PEP712 - :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py33&pytest=2.5.2 - `pytest-random `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py33&pytest=2.5.2 https://github.com/klrmn/pytest-random py.test plugin to randomize tests - :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py33&pytest=2.5.2 - `pytest-rerunfailures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 https://github.com/klrmn/pytest-rerunfailures py.test plugin to re-run tests to eliminate flakey failures - :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 - `pytest-runfailed `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py33&pytest=2.5.2 http://github.com/dmerejkowsky/pytest-runfailed implement a --failed option for pytest - :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py33&pytest=2.5.2 - `pytest-runner `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py33&pytest=2.5.2 https://bitbucket.org/jaraco/pytest-runner UNKNOWN - :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py33&pytest=2.5.2 - `pytest-sugar `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py33&pytest=2.5.2 http://pivotfinland.com/pytest-sugar/ py.test is a plugin for py.test that changes the default look and feel of py.test (e.g. progressbar, show tests that fail instantly). - :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py33&pytest=2.5.2 - `pytest-timeout `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py33&pytest=2.5.2 http://bitbucket.org/flub/pytest-timeout/ pytest plugin to abort tests after a timeout - :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py33&pytest=2.5.2 - `pytest-twisted `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py33&pytest=2.5.2 https://github.com/schmir/pytest-twisted A twisted plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py33&pytest=2.5.2 - `pytest-xdist `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-xdist py.test xdist plugin for distributed testing and loop-on-failing modes - :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py33&pytest=2.5.2 - `pytest-xprocess `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-xprocess/ pytest plugin to manage external processes across test runs - :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py33&pytest=2.5.2 - `pytest-yamlwsgi `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 UNKNOWN Run tests against wsgi apps defined in yaml - :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 - `pytest-zap `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-zap OWASP ZAP plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py33&pytest=2.5.2 +The table below contains a listing of plugins found in PyPI and +their status when tested using py.test **2.5.2** and python 2.7 and +3.3. -================================================================================== =========================================================================================================== =========================================================================================================== ============================================================= ============================================================================================================================================= +A complete listing can also be found at +`pytest-plugs `_, which contains tests +status against other py.test releases. -*(Updated on 2014-02-11)* + +==================================================================================== ============================================================================================================ ============================================================================================================ ============================================================= ============================================================================================================================================= + Name Py27 Py33 Repository Summary +==================================================================================== ============================================================================================================ ============================================================================================================ ============================================================= ============================================================================================================================================= + `pytest-bdd `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py33&pytest=2.5.2 https://github.com/olegpidsadnyi/pytest-bdd BDD for pytest + :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py33&pytest=2.5.2 + `pytest-bdd-splinter `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 https://github.com/olegpidsadnyi/pytest-bdd-splinter Splinter subplugin for Pytest BDD plugin + :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 + `pytest-bench `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py33&pytest=2.5.2 http://github.com/concordusapps/pytest-bench Benchmark utility that plugs into pytest. + :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py33&pytest=2.5.2 + `pytest-blockage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py33&pytest=2.5.2 https://github.com/rob-b/pytest-blockage Disable network requests during a test run. + :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py33&pytest=2.5.2 + `pytest-browsermob-proxy `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-browsermob-proxy BrowserMob proxy plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 + `pytest-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py33&pytest=2.5.2 http://github.com/nibrahim/pytest_bugzilla py.test bugzilla integration plugin + :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py33&pytest=2.5.2 + `pytest-cache `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-cache/ pytest plugin with mechanisms for caching across test runs + :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py33&pytest=2.5.2 + `pytest-capturelog `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py33&pytest=2.5.2 http://bitbucket.org/memedough/pytest-capturelog/overview py.test plugin to capture log messages + :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py33&pytest=2.5.2 + `pytest-codecheckers `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py33&pytest=2.5.2 http://bitbucket.org/RonnyPfannschmidt/pytest-codecheckers/ pytest plugin to add source code sanity checks (pep8 and friends) + :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py33&pytest=2.5.2 + `pytest-contextfixture `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py33&pytest=2.5.2 http://github.com/pelme/pytest-contextfixture/ Define pytest fixtures as context managers. + :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py33&pytest=2.5.2 + `pytest-couchdbkit `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 http://bitbucket.org/RonnyPfannschmidt/pytest-couchdbkit py.test extension for per-test couchdb databases using couchdbkit + :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 + `pytest-cov `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py33&pytest=2.5.2 http://bitbucket.org/memedough/pytest-cov/overview py.test plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing + :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py33&pytest=2.5.2 + `pytest-dbfixtures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 https://github.com/clearcode/pytest-dbfixtures dbfixtures plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 + `pytest-dbus-notification `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbus-notification-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbus-notification-latest?py=py33&pytest=2.5.2 https://github.com/bmathieu33/pytest-dbus-notification D-BUS notifications for pytest results. + :target: http://pytest-plugs.herokuapp.com/output/pytest-dbus-notification-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbus-notification-latest?py=py33&pytest=2.5.2 + `pytest-django `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py33&pytest=2.5.2 http://pytest-django.readthedocs.org/ A Django plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py33&pytest=2.5.2 + `pytest-django-lite `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py33&pytest=2.5.2 https://github.com/dcramer/pytest-django-lite The bare minimum to integrate py.test with Django. + :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py33&pytest=2.5.2 + `pytest-figleaf `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-figleaf py.test figleaf coverage plugin + :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py33&pytest=2.5.2 + `pytest-flakes `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py33&pytest=2.5.2 https://github.com/fschulze/pytest-flakes pytest plugin to check source code with pyflakes + :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py33&pytest=2.5.2 + `pytest-greendots `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py33&pytest=2.5.2 UNKNOWN Green progress dots + :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py33&pytest=2.5.2 + `pytest-growl `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py33&pytest=2.5.2 UNKNOWN Growl notifications for pytest results. + :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py33&pytest=2.5.2 + `pytest-httpretty `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py33&pytest=2.5.2 http://github.com/papaeye/pytest-httpretty A thin wrapper of HTTPretty for pytest + :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py33&pytest=2.5.2 + `pytest-incremental `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py33&pytest=2.5.2 https://bitbucket.org/schettino72/pytest-incremental an incremental test runner (pytest plugin) + :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py33&pytest=2.5.2 + `pytest-instafail `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py33&pytest=2.5.2 https://github.com/jpvanhal/pytest-instafail py.test plugin to show failures instantly + :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py33&pytest=2.5.2 + `pytest-ipdb `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py33&pytest=2.5.2 https://github.com/mverteuil/pytest-ipdb A py.test plug-in to enable drop to ipdb debugger on test failure. + :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py33&pytest=2.5.2 + `pytest-jira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py33&pytest=2.5.2 http://github.com/jlaska/pytest_jira py.test JIRA integration plugin, using markers + :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py33&pytest=2.5.2 + `pytest-konira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py33&pytest=2.5.2 http://github.com/alfredodeza/pytest-konira Run Konira DSL tests with py.test + :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py33&pytest=2.5.2 + `pytest-localserver `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py33&pytest=2.5.2 http://bitbucket.org/basti/pytest-localserver/ py.test plugin to test server connections locally. + :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py33&pytest=2.5.2 + `pytest-marker-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 http://github.com/eanxgeek/pytest_marker_bugzilla py.test bugzilla integration plugin, using markers + :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 + `pytest-markfiltration `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py33&pytest=2.5.2 https://github.com/adamgoucher/pytest-markfiltration UNKNOWN + :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py33&pytest=2.5.2 + `pytest-marks `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py33&pytest=2.5.2 https://github.com/adamgoucher/pytest-marks UNKNOWN + :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py33&pytest=2.5.2 + `pytest-monkeyplus `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hsoft/pytest-monkeyplus/ pytest's monkeypatch subclass with extra functionalities + :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 + `pytest-mozwebqa `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-mozwebqa Mozilla WebQA plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 + `pytest-oerp `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py33&pytest=2.5.2 http://github.com/santagada/pytest-oerp/ pytest plugin to test OpenERP modules + :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py33&pytest=2.5.2 + `pytest-osxnotify `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py33&pytest=2.5.2 https://github.com/dbader/pytest-osxnotify OS X notifications for py.test results. + :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py33&pytest=2.5.2 + `pytest-paste-config `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py33&pytest=2.5.2 UNKNOWN Allow setting the path to a paste config file + :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py33&pytest=2.5.2 + `pytest-pep8 `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-pep8/ pytest plugin to check PEP8 requirements + :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py33&pytest=2.5.2 + `pytest-poo `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py33&pytest=2.5.2 http://github.com/pelme/pytest-poo Visualize your crappy tests + :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py33&pytest=2.5.2 + `pytest-pydev `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py33&pytest=2.5.2 http://bitbucket.org/basti/pytest-pydev/ py.test plugin to connect to a remote debug server with PyDev or PyCharm. + :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py33&pytest=2.5.2 + `pytest-pythonpath `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py33&pytest=2.5.2 https://github.com/bigsassy/pytest-pythonpath pytest plugin for adding to the PYTHONPATH from command line or configs. + :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py33&pytest=2.5.2 + `pytest-qt `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py33&pytest=2.5.2 http://github.com/nicoddemus/pytest-qt pytest plugin that adds fixtures for testing Qt (PyQt and PySide) applications. + :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py33&pytest=2.5.2 + `pytest-quickcheck `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py33&pytest=2.5.2 http://bitbucket.org/t2y/pytest-quickcheck/ pytest plugin to generate random data inspired by QuickCheck + :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py33&pytest=2.5.2 + `pytest-rage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py33&pytest=2.5.2 http://github.com/santagada/pytest-rage/ pytest plugin to implement PEP712 + :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py33&pytest=2.5.2 + `pytest-random `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py33&pytest=2.5.2 https://github.com/klrmn/pytest-random py.test plugin to randomize tests + :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py33&pytest=2.5.2 + `pytest-rerunfailures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 https://github.com/klrmn/pytest-rerunfailures py.test plugin to re-run tests to eliminate flakey failures + :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 + `pytest-runfailed `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py33&pytest=2.5.2 http://github.com/dmerejkowsky/pytest-runfailed implement a --failed option for pytest + :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py33&pytest=2.5.2 + `pytest-runner `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py33&pytest=2.5.2 https://bitbucket.org/jaraco/pytest-runner UNKNOWN + :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py33&pytest=2.5.2 + `pytest-sugar `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py33&pytest=2.5.2 http://pivotfinland.com/pytest-sugar/ py.test is a plugin for py.test that changes the default look and feel of py.test (e.g. progressbar, show tests that fail instantly). + :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py33&pytest=2.5.2 + `pytest-timeout `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py33&pytest=2.5.2 http://bitbucket.org/flub/pytest-timeout/ pytest plugin to abort tests after a timeout + :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py33&pytest=2.5.2 + `pytest-twisted `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py33&pytest=2.5.2 https://github.com/schmir/pytest-twisted A twisted plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py33&pytest=2.5.2 + `pytest-xdist `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-xdist py.test xdist plugin for distributed testing and loop-on-failing modes + :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py33&pytest=2.5.2 + `pytest-xprocess `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-xprocess/ pytest plugin to manage external processes across test runs + :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py33&pytest=2.5.2 + `pytest-yamlwsgi `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 UNKNOWN Run tests against wsgi apps defined in yaml + :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 + `pytest-zap `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-zap OWASP ZAP plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py33&pytest=2.5.2 + +==================================================================================== ============================================================================================================ ============================================================================================================ ============================================================= ============================================================================================================================================= + +*(Updated on 2014-02-18)* diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r 9fc0c95f4832e17b50759a513839d0566d95384f doc/en/plugins_index/plugins_index.py --- a/doc/en/plugins_index/plugins_index.py +++ b/doc/en/plugins_index/plugins_index.py @@ -1,6 +1,13 @@ """ Script to generate the file `index.txt` with information about -pytest plugins taken directly from a live PyPI server. +pytest plugins taken directly from PyPI. + +Usage: + python plugins_index.py + +This command will update `index.txt` in the same directory found as this script. +This should be issued before every major documentation release to obtain latest +versions from PyPI. Also includes plugin compatibility between different python and pytest versions, obtained from http://pytest-plugs.herokuapp.com. @@ -167,11 +174,9 @@ return ' '.join(char * length for length in column_lengths) with open(filename, 'w') as f: - # write welcome - print('.. _plugins_index:', file=f) - print(file=f) - print('List of Third-Party Plugins', file=f) - print('===========================', file=f) + # header + header_text = HEADER.format(pytest_version=pytest.__version__) + print(header_text, file=f) print(file=f) # table @@ -232,5 +237,21 @@ return 0 +# header for the plugins_index page +HEADER = '''.. _plugins_index: + +List of Third-Party Plugins +=========================== + +The table below contains a listing of plugins found in PyPI and +their status when tested using py.test **{pytest_version}** and python 2.7 and +3.3. + +A complete listing can also be found at +`pytest-plugs `_, which contains tests +status against other py.test releases. +''' + + if __name__ == '__main__': sys.exit(main(sys.argv)) https://bitbucket.org/hpk42/pytest/commits/de372519a99f/ Changeset: de372519a99f Branch: integrate-plugin-index-docs User: nicoddemus Date: 2014-02-19 02:40:36 Summary: Using github and bitbucket icons on plugins_index page Affected #: 4 files diff -r 9fc0c95f4832e17b50759a513839d0566d95384f -r de372519a99f18b24410cdef88ce9450c507c43a doc/en/plugins_index/bitbucket.png Binary file doc/en/plugins_index/bitbucket.png has changed diff -r 9fc0c95f4832e17b50759a513839d0566d95384f -r de372519a99f18b24410cdef88ce9450c507c43a doc/en/plugins_index/github.png Binary file doc/en/plugins_index/github.png has changed diff -r 9fc0c95f4832e17b50759a513839d0566d95384f -r de372519a99f18b24410cdef88ce9450c507c43a doc/en/plugins_index/index.txt --- a/doc/en/plugins_index/index.txt +++ b/doc/en/plugins_index/index.txt @@ -12,116 +12,116 @@ status against other py.test releases. -==================================================================================== ============================================================================================================ ============================================================================================================ ============================================================= ============================================================================================================================================= - Name Py27 Py33 Repository Summary -==================================================================================== ============================================================================================================ ============================================================================================================ ============================================================= ============================================================================================================================================= - `pytest-bdd `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py33&pytest=2.5.2 https://github.com/olegpidsadnyi/pytest-bdd BDD for pytest - :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py33&pytest=2.5.2 - `pytest-bdd-splinter `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 https://github.com/olegpidsadnyi/pytest-bdd-splinter Splinter subplugin for Pytest BDD plugin - :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 - `pytest-bench `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py33&pytest=2.5.2 http://github.com/concordusapps/pytest-bench Benchmark utility that plugs into pytest. - :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py33&pytest=2.5.2 - `pytest-blockage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py33&pytest=2.5.2 https://github.com/rob-b/pytest-blockage Disable network requests during a test run. - :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py33&pytest=2.5.2 - `pytest-browsermob-proxy `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-browsermob-proxy BrowserMob proxy plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 - `pytest-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py33&pytest=2.5.2 http://github.com/nibrahim/pytest_bugzilla py.test bugzilla integration plugin - :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py33&pytest=2.5.2 - `pytest-cache `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-cache/ pytest plugin with mechanisms for caching across test runs - :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py33&pytest=2.5.2 - `pytest-capturelog `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py33&pytest=2.5.2 http://bitbucket.org/memedough/pytest-capturelog/overview py.test plugin to capture log messages - :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py33&pytest=2.5.2 - `pytest-codecheckers `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py33&pytest=2.5.2 http://bitbucket.org/RonnyPfannschmidt/pytest-codecheckers/ pytest plugin to add source code sanity checks (pep8 and friends) - :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py33&pytest=2.5.2 - `pytest-contextfixture `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py33&pytest=2.5.2 http://github.com/pelme/pytest-contextfixture/ Define pytest fixtures as context managers. - :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py33&pytest=2.5.2 - `pytest-couchdbkit `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 http://bitbucket.org/RonnyPfannschmidt/pytest-couchdbkit py.test extension for per-test couchdb databases using couchdbkit - :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 - `pytest-cov `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py33&pytest=2.5.2 http://bitbucket.org/memedough/pytest-cov/overview py.test plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing - :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py33&pytest=2.5.2 - `pytest-dbfixtures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 https://github.com/clearcode/pytest-dbfixtures dbfixtures plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 - `pytest-dbus-notification `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbus-notification-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbus-notification-latest?py=py33&pytest=2.5.2 https://github.com/bmathieu33/pytest-dbus-notification D-BUS notifications for pytest results. - :target: http://pytest-plugs.herokuapp.com/output/pytest-dbus-notification-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbus-notification-latest?py=py33&pytest=2.5.2 - `pytest-django `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py33&pytest=2.5.2 http://pytest-django.readthedocs.org/ A Django plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py33&pytest=2.5.2 - `pytest-django-lite `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py33&pytest=2.5.2 https://github.com/dcramer/pytest-django-lite The bare minimum to integrate py.test with Django. - :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py33&pytest=2.5.2 - `pytest-figleaf `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-figleaf py.test figleaf coverage plugin - :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py33&pytest=2.5.2 - `pytest-flakes `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py33&pytest=2.5.2 https://github.com/fschulze/pytest-flakes pytest plugin to check source code with pyflakes - :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py33&pytest=2.5.2 - `pytest-greendots `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py33&pytest=2.5.2 UNKNOWN Green progress dots - :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py33&pytest=2.5.2 - `pytest-growl `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py33&pytest=2.5.2 UNKNOWN Growl notifications for pytest results. - :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py33&pytest=2.5.2 - `pytest-httpretty `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py33&pytest=2.5.2 http://github.com/papaeye/pytest-httpretty A thin wrapper of HTTPretty for pytest - :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py33&pytest=2.5.2 - `pytest-incremental `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py33&pytest=2.5.2 https://bitbucket.org/schettino72/pytest-incremental an incremental test runner (pytest plugin) - :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py33&pytest=2.5.2 - `pytest-instafail `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py33&pytest=2.5.2 https://github.com/jpvanhal/pytest-instafail py.test plugin to show failures instantly - :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py33&pytest=2.5.2 - `pytest-ipdb `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py33&pytest=2.5.2 https://github.com/mverteuil/pytest-ipdb A py.test plug-in to enable drop to ipdb debugger on test failure. - :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py33&pytest=2.5.2 - `pytest-jira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py33&pytest=2.5.2 http://github.com/jlaska/pytest_jira py.test JIRA integration plugin, using markers - :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py33&pytest=2.5.2 - `pytest-konira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py33&pytest=2.5.2 http://github.com/alfredodeza/pytest-konira Run Konira DSL tests with py.test - :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py33&pytest=2.5.2 - `pytest-localserver `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py33&pytest=2.5.2 http://bitbucket.org/basti/pytest-localserver/ py.test plugin to test server connections locally. - :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py33&pytest=2.5.2 - `pytest-marker-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 http://github.com/eanxgeek/pytest_marker_bugzilla py.test bugzilla integration plugin, using markers - :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 - `pytest-markfiltration `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py33&pytest=2.5.2 https://github.com/adamgoucher/pytest-markfiltration UNKNOWN - :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py33&pytest=2.5.2 - `pytest-marks `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py33&pytest=2.5.2 https://github.com/adamgoucher/pytest-marks UNKNOWN - :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py33&pytest=2.5.2 - `pytest-monkeyplus `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hsoft/pytest-monkeyplus/ pytest's monkeypatch subclass with extra functionalities - :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 - `pytest-mozwebqa `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-mozwebqa Mozilla WebQA plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 - `pytest-oerp `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py33&pytest=2.5.2 http://github.com/santagada/pytest-oerp/ pytest plugin to test OpenERP modules - :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py33&pytest=2.5.2 - `pytest-osxnotify `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py33&pytest=2.5.2 https://github.com/dbader/pytest-osxnotify OS X notifications for py.test results. - :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py33&pytest=2.5.2 - `pytest-paste-config `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py33&pytest=2.5.2 UNKNOWN Allow setting the path to a paste config file - :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py33&pytest=2.5.2 - `pytest-pep8 `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-pep8/ pytest plugin to check PEP8 requirements - :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py33&pytest=2.5.2 - `pytest-poo `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py33&pytest=2.5.2 http://github.com/pelme/pytest-poo Visualize your crappy tests - :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py33&pytest=2.5.2 - `pytest-pydev `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py33&pytest=2.5.2 http://bitbucket.org/basti/pytest-pydev/ py.test plugin to connect to a remote debug server with PyDev or PyCharm. - :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py33&pytest=2.5.2 - `pytest-pythonpath `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py33&pytest=2.5.2 https://github.com/bigsassy/pytest-pythonpath pytest plugin for adding to the PYTHONPATH from command line or configs. - :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py33&pytest=2.5.2 - `pytest-qt `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py33&pytest=2.5.2 http://github.com/nicoddemus/pytest-qt pytest plugin that adds fixtures for testing Qt (PyQt and PySide) applications. - :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py33&pytest=2.5.2 - `pytest-quickcheck `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py33&pytest=2.5.2 http://bitbucket.org/t2y/pytest-quickcheck/ pytest plugin to generate random data inspired by QuickCheck - :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py33&pytest=2.5.2 - `pytest-rage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py33&pytest=2.5.2 http://github.com/santagada/pytest-rage/ pytest plugin to implement PEP712 - :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py33&pytest=2.5.2 - `pytest-random `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py33&pytest=2.5.2 https://github.com/klrmn/pytest-random py.test plugin to randomize tests - :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py33&pytest=2.5.2 - `pytest-rerunfailures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 https://github.com/klrmn/pytest-rerunfailures py.test plugin to re-run tests to eliminate flakey failures - :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 - `pytest-runfailed `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py33&pytest=2.5.2 http://github.com/dmerejkowsky/pytest-runfailed implement a --failed option for pytest - :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py33&pytest=2.5.2 - `pytest-runner `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py33&pytest=2.5.2 https://bitbucket.org/jaraco/pytest-runner UNKNOWN - :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py33&pytest=2.5.2 - `pytest-sugar `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py33&pytest=2.5.2 http://pivotfinland.com/pytest-sugar/ py.test is a plugin for py.test that changes the default look and feel of py.test (e.g. progressbar, show tests that fail instantly). - :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py33&pytest=2.5.2 - `pytest-timeout `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py33&pytest=2.5.2 http://bitbucket.org/flub/pytest-timeout/ pytest plugin to abort tests after a timeout - :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py33&pytest=2.5.2 - `pytest-twisted `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py33&pytest=2.5.2 https://github.com/schmir/pytest-twisted A twisted plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py33&pytest=2.5.2 - `pytest-xdist `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-xdist py.test xdist plugin for distributed testing and loop-on-failing modes - :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py33&pytest=2.5.2 - `pytest-xprocess `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-xprocess/ pytest plugin to manage external processes across test runs - :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py33&pytest=2.5.2 - `pytest-yamlwsgi `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 UNKNOWN Run tests against wsgi apps defined in yaml - :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 - `pytest-zap `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-zap OWASP ZAP plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py33&pytest=2.5.2 +==================================================================================== ============================================================================================================ ============================================================================================================ ========================================================================= ============================================================================================================================================= + Name Py27 Py33 Repo Summary +==================================================================================== ============================================================================================================ ============================================================================================================ ========================================================================= ============================================================================================================================================= + `pytest-bdd `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py33&pytest=2.5.2 .. image:: github.png BDD for pytest + :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py33&pytest=2.5.2 :target: https://github.com/olegpidsadnyi/pytest-bdd + `pytest-bdd-splinter `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 .. image:: github.png Splinter subplugin for Pytest BDD plugin + :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 :target: https://github.com/olegpidsadnyi/pytest-bdd-splinter + `pytest-bench `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py33&pytest=2.5.2 .. image:: github.png Benchmark utility that plugs into pytest. + :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py33&pytest=2.5.2 :target: http://github.com/concordusapps/pytest-bench + `pytest-blockage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py33&pytest=2.5.2 .. image:: github.png Disable network requests during a test run. + :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py33&pytest=2.5.2 :target: https://github.com/rob-b/pytest-blockage + `pytest-browsermob-proxy `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 .. image:: github.png BrowserMob proxy plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 :target: https://github.com/davehunt/pytest-browsermob-proxy + `pytest-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test bugzilla integration plugin + :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py33&pytest=2.5.2 :target: http://github.com/nibrahim/pytest_bugzilla + `pytest-cache `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin with mechanisms for caching across test runs + :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-cache/ + `pytest-capturelog `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test plugin to capture log messages + :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/memedough/pytest-capturelog/overview + `pytest-codecheckers `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to add source code sanity checks (pep8 and friends) + :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/RonnyPfannschmidt/pytest-codecheckers/ + `pytest-contextfixture `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py33&pytest=2.5.2 .. image:: github.png Define pytest fixtures as context managers. + :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py33&pytest=2.5.2 :target: http://github.com/pelme/pytest-contextfixture/ + `pytest-couchdbkit `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test extension for per-test couchdb databases using couchdbkit + :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/RonnyPfannschmidt/pytest-couchdbkit + `pytest-cov `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing + :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/memedough/pytest-cov/overview + `pytest-dbfixtures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 .. image:: github.png dbfixtures plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 :target: https://github.com/clearcode/pytest-dbfixtures + `pytest-dbus-notification `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbus-notification-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbus-notification-latest?py=py33&pytest=2.5.2 .. image:: github.png D-BUS notifications for pytest results. + :target: http://pytest-plugs.herokuapp.com/output/pytest-dbus-notification-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbus-notification-latest?py=py33&pytest=2.5.2 :target: https://github.com/bmathieu33/pytest-dbus-notification + `pytest-django `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py33&pytest=2.5.2 `link `_ A Django plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py33&pytest=2.5.2 + `pytest-django-lite `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py33&pytest=2.5.2 .. image:: github.png The bare minimum to integrate py.test with Django. + :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py33&pytest=2.5.2 :target: https://github.com/dcramer/pytest-django-lite + `pytest-figleaf `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test figleaf coverage plugin + :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-figleaf + `pytest-flakes `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin to check source code with pyflakes + :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py33&pytest=2.5.2 :target: https://github.com/fschulze/pytest-flakes + `pytest-greendots `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py33&pytest=2.5.2 ? Green progress dots + :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py33&pytest=2.5.2 + `pytest-growl `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py33&pytest=2.5.2 ? Growl notifications for pytest results. + :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py33&pytest=2.5.2 + `pytest-httpretty `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py33&pytest=2.5.2 .. image:: github.png A thin wrapper of HTTPretty for pytest + :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py33&pytest=2.5.2 :target: http://github.com/papaeye/pytest-httpretty + `pytest-incremental `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png an incremental test runner (pytest plugin) + :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py33&pytest=2.5.2 :target: https://bitbucket.org/schettino72/pytest-incremental + `pytest-instafail `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test plugin to show failures instantly + :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py33&pytest=2.5.2 :target: https://github.com/jpvanhal/pytest-instafail + `pytest-ipdb `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py33&pytest=2.5.2 .. image:: github.png A py.test plug-in to enable drop to ipdb debugger on test failure. + :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py33&pytest=2.5.2 :target: https://github.com/mverteuil/pytest-ipdb + `pytest-jira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test JIRA integration plugin, using markers + :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py33&pytest=2.5.2 :target: http://github.com/jlaska/pytest_jira + `pytest-konira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py33&pytest=2.5.2 .. image:: github.png Run Konira DSL tests with py.test + :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py33&pytest=2.5.2 :target: http://github.com/alfredodeza/pytest-konira + `pytest-localserver `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test plugin to test server connections locally. + :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/basti/pytest-localserver/ + `pytest-marker-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test bugzilla integration plugin, using markers + :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 :target: http://github.com/eanxgeek/pytest_marker_bugzilla + `pytest-markfiltration `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py33&pytest=2.5.2 .. image:: github.png UNKNOWN + :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py33&pytest=2.5.2 :target: https://github.com/adamgoucher/pytest-markfiltration + `pytest-marks `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py33&pytest=2.5.2 .. image:: github.png UNKNOWN + :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py33&pytest=2.5.2 :target: https://github.com/adamgoucher/pytest-marks + `pytest-monkeyplus `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest's monkeypatch subclass with extra functionalities + :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hsoft/pytest-monkeyplus/ + `pytest-mozwebqa `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 .. image:: github.png Mozilla WebQA plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 :target: https://github.com/davehunt/pytest-mozwebqa + `pytest-oerp `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin to test OpenERP modules + :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py33&pytest=2.5.2 :target: http://github.com/santagada/pytest-oerp/ + `pytest-osxnotify `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py33&pytest=2.5.2 .. image:: github.png OS X notifications for py.test results. + :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py33&pytest=2.5.2 :target: https://github.com/dbader/pytest-osxnotify + `pytest-paste-config `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py33&pytest=2.5.2 ? Allow setting the path to a paste config file + :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py33&pytest=2.5.2 + `pytest-pep8 `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to check PEP8 requirements + :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-pep8/ + `pytest-poo `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py33&pytest=2.5.2 .. image:: github.png Visualize your crappy tests + :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py33&pytest=2.5.2 :target: http://github.com/pelme/pytest-poo + `pytest-pydev `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test plugin to connect to a remote debug server with PyDev or PyCharm. + :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/basti/pytest-pydev/ + `pytest-pythonpath `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin for adding to the PYTHONPATH from command line or configs. + :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py33&pytest=2.5.2 :target: https://github.com/bigsassy/pytest-pythonpath + `pytest-qt `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin that adds fixtures for testing Qt (PyQt and PySide) applications. + :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py33&pytest=2.5.2 :target: http://github.com/nicoddemus/pytest-qt + `pytest-quickcheck `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to generate random data inspired by QuickCheck + :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/t2y/pytest-quickcheck/ + `pytest-rage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin to implement PEP712 + :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py33&pytest=2.5.2 :target: http://github.com/santagada/pytest-rage/ + `pytest-random `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test plugin to randomize tests + :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py33&pytest=2.5.2 :target: https://github.com/klrmn/pytest-random + `pytest-rerunfailures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test plugin to re-run tests to eliminate flakey failures + :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 :target: https://github.com/klrmn/pytest-rerunfailures + `pytest-runfailed `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py33&pytest=2.5.2 .. image:: github.png implement a --failed option for pytest + :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py33&pytest=2.5.2 :target: http://github.com/dmerejkowsky/pytest-runfailed + `pytest-runner `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png UNKNOWN + :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py33&pytest=2.5.2 :target: https://bitbucket.org/jaraco/pytest-runner + `pytest-sugar `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py33&pytest=2.5.2 `link `_ py.test is a plugin for py.test that changes the default look and feel of py.test (e.g. progressbar, show tests that fail instantly). + :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py33&pytest=2.5.2 + `pytest-timeout `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to abort tests after a timeout + :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/flub/pytest-timeout/ + `pytest-twisted `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py33&pytest=2.5.2 .. image:: github.png A twisted plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py33&pytest=2.5.2 :target: https://github.com/schmir/pytest-twisted + `pytest-xdist `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test xdist plugin for distributed testing and loop-on-failing modes + :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-xdist + `pytest-xprocess `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to manage external processes across test runs + :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-xprocess/ + `pytest-yamlwsgi `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 ? Run tests against wsgi apps defined in yaml + :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 + `pytest-zap `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py33&pytest=2.5.2 .. image:: github.png OWASP ZAP plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py33&pytest=2.5.2 :target: https://github.com/davehunt/pytest-zap -==================================================================================== ============================================================================================================ ============================================================================================================ ============================================================= ============================================================================================================================================= +==================================================================================== ============================================================================================================ ============================================================================================================ ========================================================================= ============================================================================================================================================= *(Updated on 2014-02-18)* diff -r 9fc0c95f4832e17b50759a513839d0566d95384f -r de372519a99f18b24410cdef88ce9450c507c43a doc/en/plugins_index/plugins_index.py --- a/doc/en/plugins_index/plugins_index.py +++ b/doc/en/plugins_index/plugins_index.py @@ -73,9 +73,34 @@ :param plugins: list of (name, version) :param client: ServerProxy """ + def get_repo_markup(repo): + """ + obtains appropriate markup for the given repository, as two lines + that should be output in the same table row. We use this to display an icon + for known repository hosts (github, etc), just a "?" char when + repository is not registered in pypi or a simple link otherwise. + """ + target = repo + if 'github.com' in repo: + image = 'github.png' + elif 'bitbucket.org' in repo: + image = 'bitbucket.png' + elif repo.lower() == 'unknown': + return '?', '' + else: + image = None + + if image is not None: + image_markup = '.. image:: %s' % image + target_markup = ' :target: %s' % repo + pad_right = ('%-' + str(len(target_markup)) + 's') + return pad_right % image_markup, target_markup + else: + return '`link <%s>`_' % target, '' + rows = [] ColumnData = namedtuple('ColumnData', 'text link') - headers = ['Name', 'Py27', 'Py33', 'Repository', 'Summary'] + headers = ['Name', 'Py27', 'Py33', 'Repo', 'Summary'] pytest_version = pytest.__version__ repositories = obtain_override_repositories() print('*** pytest-{0} ***'.format(pytest_version)) @@ -90,6 +115,9 @@ name=package_name, version=version) + repository = repositories.get(package_name, release_data['home_page']) + repo_markup_1, repo_markup_2 = get_repo_markup(repository) + # first row: name, images and simple links url = '.. image:: {site}/status/{name}-latest' image_url = url.format(**common_params) @@ -101,7 +129,7 @@ ColumnData(image_url.format(py='py33', pytest=pytest_version), None), ColumnData( - repositories.get(package_name, release_data['home_page']), + repo_markup_1, None), ColumnData(release_data['summary'], None), ) @@ -119,8 +147,9 @@ None), ColumnData(output_url.format(py='py33', pytest=pytest_version), None), + ColumnData(repo_markup_2, None), ColumnData('', None), - ColumnData('', None), + ) assert len(row) == len(headers) rows.append(row) https://bitbucket.org/hpk42/pytest/commits/9cf35e3fc17a/ Changeset: 9cf35e3fc17a User: hpk42 Date: 2014-03-14 15:34:03 Summary: Merged in nicoddemus/pytest/integrate-plugin-index-docs (pull request #120) Integrating plugin_index docs and misc improvements Affected #: 6 files diff -r 023c92172a302236917be115087636faf72a03b5 -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f doc/en/_templates/links.html --- a/doc/en/_templates/links.html +++ b/doc/en/_templates/links.html @@ -4,7 +4,7 @@
  • Contribution Guide
  • pytest @ PyPI
  • pytest @ Bitbucket
  • -
  • 3rd party plugins (beta)
  • +
  • 3rd party plugins
  • Issue Tracker
  • PDF Documentation diff -r 023c92172a302236917be115087636faf72a03b5 -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f doc/en/plugins.txt --- a/doc/en/plugins.txt +++ b/doc/en/plugins.txt @@ -64,9 +64,10 @@ pip uninstall pytest-NAME If a plugin is installed, ``pytest`` automatically finds and integrates it, -there is no need to activate it. We have a :doc:`beta page listing -all 3rd party plugins and their status ` and here -is a little annotated list for some popular plugins: +there is no need to activate it. We have a :doc:`page listing +all 3rd party plugins and their status against the latest py.test version +` and here is a little annotated list +for some popular plugins: .. _`django`: https://www.djangoproject.com/ @@ -109,7 +110,11 @@ * `oejskit `_: a plugin to run javascript unittests in life browsers -You may discover more plugins through a `pytest- pypi.python.org search`_. +To see a complete list of all plugins with their latest testing +status against different py.test and Python versions, please visit +`pytest-plugs `_. + +You may also discover more plugins through a `pytest- pypi.python.org search`_. .. _`available installable plugins`: .. _`pytest- pypi.python.org search`: http://pypi.python.org/pypi?%3Aaction=search&term=pytest-&submit=search diff -r 023c92172a302236917be115087636faf72a03b5 -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f doc/en/plugins_index/bitbucket.png Binary file doc/en/plugins_index/bitbucket.png has changed diff -r 023c92172a302236917be115087636faf72a03b5 -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f doc/en/plugins_index/github.png Binary file doc/en/plugins_index/github.png has changed diff -r 023c92172a302236917be115087636faf72a03b5 -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f doc/en/plugins_index/index.txt --- a/doc/en/plugins_index/index.txt +++ b/doc/en/plugins_index/index.txt @@ -3,114 +3,125 @@ List of Third-Party Plugins =========================== -================================================================================== =========================================================================================================== =========================================================================================================== ============================================================= ============================================================================================================================================= - Name Py27 Py33 Repository Summary -================================================================================== =========================================================================================================== =========================================================================================================== ============================================================= ============================================================================================================================================= - `pytest-bdd `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py33&pytest=2.5.2 https://github.com/olegpidsadnyi/pytest-bdd BDD for pytest - :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py33&pytest=2.5.2 - `pytest-bdd-splinter `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 https://github.com/olegpidsadnyi/pytest-bdd-splinter Splinter subplugin for Pytest BDD plugin - :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 - `pytest-bench `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py33&pytest=2.5.2 http://github.com/concordusapps/pytest-bench Benchmark utility that plugs into pytest. - :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py33&pytest=2.5.2 - `pytest-blockage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py33&pytest=2.5.2 https://github.com/rob-b/pytest-blockage Disable network requests during a test run. - :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py33&pytest=2.5.2 - `pytest-browsermob-proxy `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-browsermob-proxy BrowserMob proxy plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 - `pytest-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py33&pytest=2.5.2 http://github.com/nibrahim/pytest_bugzilla py.test bugzilla integration plugin - :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py33&pytest=2.5.2 - `pytest-cache `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-cache/ pytest plugin with mechanisms for caching across test runs - :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py33&pytest=2.5.2 - `pytest-capturelog `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py33&pytest=2.5.2 http://bitbucket.org/memedough/pytest-capturelog/overview py.test plugin to capture log messages - :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py33&pytest=2.5.2 - `pytest-codecheckers `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py33&pytest=2.5.2 http://bitbucket.org/RonnyPfannschmidt/pytest-codecheckers/ pytest plugin to add source code sanity checks (pep8 and friends) - :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py33&pytest=2.5.2 - `pytest-contextfixture `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py33&pytest=2.5.2 http://github.com/pelme/pytest-contextfixture/ Define pytest fixtures as context managers. - :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py33&pytest=2.5.2 - `pytest-couchdbkit `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 http://bitbucket.org/RonnyPfannschmidt/pytest-couchdbkit py.test extension for per-test couchdb databases using couchdbkit - :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 - `pytest-cov `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py33&pytest=2.5.2 http://bitbucket.org/memedough/pytest-cov/overview py.test plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing - :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py33&pytest=2.5.2 - `pytest-dbfixtures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 https://github.com/clearcode/pytest-dbfixtures dbfixtures plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 - `pytest-django `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py33&pytest=2.5.2 http://pytest-django.readthedocs.org/ A Django plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py33&pytest=2.5.2 - `pytest-django-lite `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py33&pytest=2.5.2 https://github.com/dcramer/pytest-django-lite The bare minimum to integrate py.test with Django. - :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py33&pytest=2.5.2 - `pytest-figleaf `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-figleaf py.test figleaf coverage plugin - :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py33&pytest=2.5.2 - `pytest-flakes `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py33&pytest=2.5.2 https://github.com/fschulze/pytest-flakes pytest plugin to check source code with pyflakes - :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py33&pytest=2.5.2 - `pytest-greendots `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py33&pytest=2.5.2 UNKNOWN Green progress dots - :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py33&pytest=2.5.2 - `pytest-growl `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py33&pytest=2.5.2 UNKNOWN Growl notifications for pytest results. - :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py33&pytest=2.5.2 - `pytest-httpretty `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py33&pytest=2.5.2 http://github.com/papaeye/pytest-httpretty A thin wrapper of HTTPretty for pytest - :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py33&pytest=2.5.2 - `pytest-incremental `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py33&pytest=2.5.2 https://bitbucket.org/schettino72/pytest-incremental an incremental test runner (pytest plugin) - :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py33&pytest=2.5.2 - `pytest-instafail `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py33&pytest=2.5.2 https://github.com/jpvanhal/pytest-instafail py.test plugin to show failures instantly - :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py33&pytest=2.5.2 - `pytest-ipdb `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py33&pytest=2.5.2 https://github.com/mverteuil/pytest-ipdb A py.test plug-in to enable drop to ipdb debugger on test failure. - :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py33&pytest=2.5.2 - `pytest-jira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py33&pytest=2.5.2 http://github.com/jlaska/pytest_jira py.test JIRA integration plugin, using markers - :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py33&pytest=2.5.2 - `pytest-konira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py33&pytest=2.5.2 http://github.com/alfredodeza/pytest-konira Run Konira DSL tests with py.test - :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py33&pytest=2.5.2 - `pytest-localserver `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py33&pytest=2.5.2 http://bitbucket.org/basti/pytest-localserver/ py.test plugin to test server connections locally. - :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py33&pytest=2.5.2 - `pytest-marker-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 http://github.com/eanxgeek/pytest_marker_bugzilla py.test bugzilla integration plugin, using markers - :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 - `pytest-markfiltration `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py33&pytest=2.5.2 https://github.com/adamgoucher/pytest-markfiltration UNKNOWN - :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py33&pytest=2.5.2 - `pytest-marks `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py33&pytest=2.5.2 https://github.com/adamgoucher/pytest-marks UNKNOWN - :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py33&pytest=2.5.2 - `pytest-monkeyplus `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hsoft/pytest-monkeyplus/ pytest's monkeypatch subclass with extra functionalities - :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 - `pytest-mozwebqa `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-mozwebqa Mozilla WebQA plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 - `pytest-oerp `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py33&pytest=2.5.2 http://github.com/santagada/pytest-oerp/ pytest plugin to test OpenERP modules - :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py33&pytest=2.5.2 - `pytest-osxnotify `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py33&pytest=2.5.2 https://github.com/dbader/pytest-osxnotify OS X notifications for py.test results. - :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py33&pytest=2.5.2 - `pytest-paste-config `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py33&pytest=2.5.2 UNKNOWN Allow setting the path to a paste config file - :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py33&pytest=2.5.2 - `pytest-pep8 `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-pep8/ pytest plugin to check PEP8 requirements - :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py33&pytest=2.5.2 - `pytest-poo `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py33&pytest=2.5.2 http://github.com/pelme/pytest-poo Visualize your crappy tests - :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py33&pytest=2.5.2 - `pytest-pydev `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py33&pytest=2.5.2 http://bitbucket.org/basti/pytest-pydev/ py.test plugin to connect to a remote debug server with PyDev or PyCharm. - :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py33&pytest=2.5.2 - `pytest-pythonpath `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py33&pytest=2.5.2 https://github.com/bigsassy/pytest-pythonpath pytest plugin for adding to the PYTHONPATH from command line or configs. - :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py33&pytest=2.5.2 - `pytest-qt `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py33&pytest=2.5.2 http://github.com/nicoddemus/pytest-qt pytest plugin that adds fixtures for testing Qt (PyQt and PySide) applications. - :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py33&pytest=2.5.2 - `pytest-quickcheck `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py33&pytest=2.5.2 http://bitbucket.org/t2y/pytest-quickcheck/ pytest plugin to generate random data inspired by QuickCheck - :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py33&pytest=2.5.2 - `pytest-rage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py33&pytest=2.5.2 http://github.com/santagada/pytest-rage/ pytest plugin to implement PEP712 - :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py33&pytest=2.5.2 - `pytest-random `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py33&pytest=2.5.2 https://github.com/klrmn/pytest-random py.test plugin to randomize tests - :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py33&pytest=2.5.2 - `pytest-rerunfailures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 https://github.com/klrmn/pytest-rerunfailures py.test plugin to re-run tests to eliminate flakey failures - :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 - `pytest-runfailed `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py33&pytest=2.5.2 http://github.com/dmerejkowsky/pytest-runfailed implement a --failed option for pytest - :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py33&pytest=2.5.2 - `pytest-runner `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py33&pytest=2.5.2 https://bitbucket.org/jaraco/pytest-runner UNKNOWN - :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py33&pytest=2.5.2 - `pytest-sugar `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py33&pytest=2.5.2 http://pivotfinland.com/pytest-sugar/ py.test is a plugin for py.test that changes the default look and feel of py.test (e.g. progressbar, show tests that fail instantly). - :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py33&pytest=2.5.2 - `pytest-timeout `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py33&pytest=2.5.2 http://bitbucket.org/flub/pytest-timeout/ pytest plugin to abort tests after a timeout - :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py33&pytest=2.5.2 - `pytest-twisted `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py33&pytest=2.5.2 https://github.com/schmir/pytest-twisted A twisted plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py33&pytest=2.5.2 - `pytest-xdist `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-xdist py.test xdist plugin for distributed testing and loop-on-failing modes - :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py33&pytest=2.5.2 - `pytest-xprocess `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py33&pytest=2.5.2 http://bitbucket.org/hpk42/pytest-xprocess/ pytest plugin to manage external processes across test runs - :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py33&pytest=2.5.2 - `pytest-yamlwsgi `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 UNKNOWN Run tests against wsgi apps defined in yaml - :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 - `pytest-zap `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py33&pytest=2.5.2 https://github.com/davehunt/pytest-zap OWASP ZAP plugin for py.test. - :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py33&pytest=2.5.2 +The table below contains a listing of plugins found in PyPI and +their status when tested using py.test **2.5.2** and python 2.7 and +3.3. -================================================================================== =========================================================================================================== =========================================================================================================== ============================================================= ============================================================================================================================================= +A complete listing can also be found at +`pytest-plugs `_, which contains tests +status against other py.test releases. -*(Updated on 2014-02-11)* + +==================================================================================== ============================================================================================================ ============================================================================================================ ========================================================================= ============================================================================================================================================= + Name Py27 Py33 Repo Summary +==================================================================================== ============================================================================================================ ============================================================================================================ ========================================================================= ============================================================================================================================================= + `pytest-bdd `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-latest?py=py33&pytest=2.5.2 .. image:: github.png BDD for pytest + :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-latest?py=py33&pytest=2.5.2 :target: https://github.com/olegpidsadnyi/pytest-bdd + `pytest-bdd-splinter `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 .. image:: github.png Splinter subplugin for Pytest BDD plugin + :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bdd-splinter-latest?py=py33&pytest=2.5.2 :target: https://github.com/olegpidsadnyi/pytest-bdd-splinter + `pytest-bench `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bench-latest?py=py33&pytest=2.5.2 .. image:: github.png Benchmark utility that plugs into pytest. + :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bench-latest?py=py33&pytest=2.5.2 :target: http://github.com/concordusapps/pytest-bench + `pytest-blockage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-blockage-latest?py=py33&pytest=2.5.2 .. image:: github.png Disable network requests during a test run. + :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-blockage-latest?py=py33&pytest=2.5.2 :target: https://github.com/rob-b/pytest-blockage + `pytest-browsermob-proxy `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 .. image:: github.png BrowserMob proxy plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-browsermob-proxy-latest?py=py33&pytest=2.5.2 :target: https://github.com/davehunt/pytest-browsermob-proxy + `pytest-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-bugzilla-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test bugzilla integration plugin + :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-bugzilla-latest?py=py33&pytest=2.5.2 :target: http://github.com/nibrahim/pytest_bugzilla + `pytest-cache `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cache-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin with mechanisms for caching across test runs + :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cache-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-cache/ + `pytest-capturelog `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-capturelog-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test plugin to capture log messages + :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-capturelog-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/memedough/pytest-capturelog/overview + `pytest-codecheckers `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-codecheckers-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to add source code sanity checks (pep8 and friends) + :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-codecheckers-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/RonnyPfannschmidt/pytest-codecheckers/ + `pytest-contextfixture `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-contextfixture-latest?py=py33&pytest=2.5.2 .. image:: github.png Define pytest fixtures as context managers. + :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-contextfixture-latest?py=py33&pytest=2.5.2 :target: http://github.com/pelme/pytest-contextfixture/ + `pytest-couchdbkit `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test extension for per-test couchdb databases using couchdbkit + :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-couchdbkit-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/RonnyPfannschmidt/pytest-couchdbkit + `pytest-cov `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-cov-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test plugin for coverage reporting with support for both centralised and distributed testing, including subprocesses and multiprocessing + :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-cov-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/memedough/pytest-cov/overview + `pytest-dbfixtures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 .. image:: github.png dbfixtures plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbfixtures-latest?py=py33&pytest=2.5.2 :target: https://github.com/clearcode/pytest-dbfixtures + `pytest-dbus-notification `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbus-notification-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-dbus-notification-latest?py=py33&pytest=2.5.2 .. image:: github.png D-BUS notifications for pytest results. + :target: http://pytest-plugs.herokuapp.com/output/pytest-dbus-notification-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-dbus-notification-latest?py=py33&pytest=2.5.2 :target: https://github.com/bmathieu33/pytest-dbus-notification + `pytest-django `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-latest?py=py33&pytest=2.5.2 `link `_ A Django plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-latest?py=py33&pytest=2.5.2 + `pytest-django-lite `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-django-lite-latest?py=py33&pytest=2.5.2 .. image:: github.png The bare minimum to integrate py.test with Django. + :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-django-lite-latest?py=py33&pytest=2.5.2 :target: https://github.com/dcramer/pytest-django-lite + `pytest-figleaf `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-figleaf-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test figleaf coverage plugin + :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-figleaf-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-figleaf + `pytest-flakes `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-flakes-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin to check source code with pyflakes + :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-flakes-latest?py=py33&pytest=2.5.2 :target: https://github.com/fschulze/pytest-flakes + `pytest-greendots `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-greendots-latest?py=py33&pytest=2.5.2 ? Green progress dots + :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-greendots-latest?py=py33&pytest=2.5.2 + `pytest-growl `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-growl-latest?py=py33&pytest=2.5.2 ? Growl notifications for pytest results. + :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-growl-latest?py=py33&pytest=2.5.2 + `pytest-httpretty `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-httpretty-latest?py=py33&pytest=2.5.2 .. image:: github.png A thin wrapper of HTTPretty for pytest + :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-httpretty-latest?py=py33&pytest=2.5.2 :target: http://github.com/papaeye/pytest-httpretty + `pytest-incremental `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-incremental-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png an incremental test runner (pytest plugin) + :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-incremental-latest?py=py33&pytest=2.5.2 :target: https://bitbucket.org/schettino72/pytest-incremental + `pytest-instafail `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-instafail-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test plugin to show failures instantly + :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-instafail-latest?py=py33&pytest=2.5.2 :target: https://github.com/jpvanhal/pytest-instafail + `pytest-ipdb `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-ipdb-latest?py=py33&pytest=2.5.2 .. image:: github.png A py.test plug-in to enable drop to ipdb debugger on test failure. + :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-ipdb-latest?py=py33&pytest=2.5.2 :target: https://github.com/mverteuil/pytest-ipdb + `pytest-jira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-jira-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test JIRA integration plugin, using markers + :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-jira-latest?py=py33&pytest=2.5.2 :target: http://github.com/jlaska/pytest_jira + `pytest-konira `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-konira-latest?py=py33&pytest=2.5.2 .. image:: github.png Run Konira DSL tests with py.test + :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-konira-latest?py=py33&pytest=2.5.2 :target: http://github.com/alfredodeza/pytest-konira + `pytest-localserver `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-localserver-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test plugin to test server connections locally. + :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-localserver-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/basti/pytest-localserver/ + `pytest-marker-bugzilla `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test bugzilla integration plugin, using markers + :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marker-bugzilla-latest?py=py33&pytest=2.5.2 :target: http://github.com/eanxgeek/pytest_marker_bugzilla + `pytest-markfiltration `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-markfiltration-latest?py=py33&pytest=2.5.2 .. image:: github.png UNKNOWN + :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-markfiltration-latest?py=py33&pytest=2.5.2 :target: https://github.com/adamgoucher/pytest-markfiltration + `pytest-marks `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-marks-latest?py=py33&pytest=2.5.2 .. image:: github.png UNKNOWN + :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-marks-latest?py=py33&pytest=2.5.2 :target: https://github.com/adamgoucher/pytest-marks + `pytest-monkeyplus `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest's monkeypatch subclass with extra functionalities + :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-monkeyplus-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hsoft/pytest-monkeyplus/ + `pytest-mozwebqa `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 .. image:: github.png Mozilla WebQA plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-mozwebqa-latest?py=py33&pytest=2.5.2 :target: https://github.com/davehunt/pytest-mozwebqa + `pytest-oerp `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-oerp-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin to test OpenERP modules + :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-oerp-latest?py=py33&pytest=2.5.2 :target: http://github.com/santagada/pytest-oerp/ + `pytest-osxnotify `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-osxnotify-latest?py=py33&pytest=2.5.2 .. image:: github.png OS X notifications for py.test results. + :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-osxnotify-latest?py=py33&pytest=2.5.2 :target: https://github.com/dbader/pytest-osxnotify + `pytest-paste-config `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-paste-config-latest?py=py33&pytest=2.5.2 ? Allow setting the path to a paste config file + :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-paste-config-latest?py=py33&pytest=2.5.2 + `pytest-pep8 `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pep8-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to check PEP8 requirements + :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pep8-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-pep8/ + `pytest-poo `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-poo-latest?py=py33&pytest=2.5.2 .. image:: github.png Visualize your crappy tests + :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-poo-latest?py=py33&pytest=2.5.2 :target: http://github.com/pelme/pytest-poo + `pytest-pydev `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pydev-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test plugin to connect to a remote debug server with PyDev or PyCharm. + :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pydev-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/basti/pytest-pydev/ + `pytest-pythonpath `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-pythonpath-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin for adding to the PYTHONPATH from command line or configs. + :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-pythonpath-latest?py=py33&pytest=2.5.2 :target: https://github.com/bigsassy/pytest-pythonpath + `pytest-qt `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-qt-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin that adds fixtures for testing Qt (PyQt and PySide) applications. + :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-qt-latest?py=py33&pytest=2.5.2 :target: http://github.com/nicoddemus/pytest-qt + `pytest-quickcheck `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-quickcheck-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to generate random data inspired by QuickCheck + :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-quickcheck-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/t2y/pytest-quickcheck/ + `pytest-rage `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rage-latest?py=py33&pytest=2.5.2 .. image:: github.png pytest plugin to implement PEP712 + :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rage-latest?py=py33&pytest=2.5.2 :target: http://github.com/santagada/pytest-rage/ + `pytest-random `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-random-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test plugin to randomize tests + :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-random-latest?py=py33&pytest=2.5.2 :target: https://github.com/klrmn/pytest-random + `pytest-rerunfailures `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 .. image:: github.png py.test plugin to re-run tests to eliminate flakey failures + :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-rerunfailures-latest?py=py33&pytest=2.5.2 :target: https://github.com/klrmn/pytest-rerunfailures + `pytest-runfailed `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runfailed-latest?py=py33&pytest=2.5.2 .. image:: github.png implement a --failed option for pytest + :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runfailed-latest?py=py33&pytest=2.5.2 :target: http://github.com/dmerejkowsky/pytest-runfailed + `pytest-runner `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-runner-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png UNKNOWN + :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-runner-latest?py=py33&pytest=2.5.2 :target: https://bitbucket.org/jaraco/pytest-runner + `pytest-sugar `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-sugar-latest?py=py33&pytest=2.5.2 `link `_ py.test is a plugin for py.test that changes the default look and feel of py.test (e.g. progressbar, show tests that fail instantly). + :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-sugar-latest?py=py33&pytest=2.5.2 + `pytest-timeout `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-timeout-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to abort tests after a timeout + :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-timeout-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/flub/pytest-timeout/ + `pytest-twisted `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-twisted-latest?py=py33&pytest=2.5.2 .. image:: github.png A twisted plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-twisted-latest?py=py33&pytest=2.5.2 :target: https://github.com/schmir/pytest-twisted + `pytest-xdist `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xdist-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png py.test xdist plugin for distributed testing and loop-on-failing modes + :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xdist-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-xdist + `pytest-xprocess `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-xprocess-latest?py=py33&pytest=2.5.2 .. image:: bitbucket.png pytest plugin to manage external processes across test runs + :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-xprocess-latest?py=py33&pytest=2.5.2 :target: http://bitbucket.org/hpk42/pytest-xprocess/ + `pytest-yamlwsgi `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 ? Run tests against wsgi apps defined in yaml + :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-yamlwsgi-latest?py=py33&pytest=2.5.2 + `pytest-zap `_ .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py27&pytest=2.5.2 .. image:: http://pytest-plugs.herokuapp.com/status/pytest-zap-latest?py=py33&pytest=2.5.2 .. image:: github.png OWASP ZAP plugin for py.test. + :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py27&pytest=2.5.2 :target: http://pytest-plugs.herokuapp.com/output/pytest-zap-latest?py=py33&pytest=2.5.2 :target: https://github.com/davehunt/pytest-zap + +==================================================================================== ============================================================================================================ ============================================================================================================ ========================================================================= ============================================================================================================================================= + +*(Updated on 2014-02-18)* diff -r 023c92172a302236917be115087636faf72a03b5 -r 9cf35e3fc17a98820f0c0fd247573d9f3d064f0f doc/en/plugins_index/plugins_index.py --- a/doc/en/plugins_index/plugins_index.py +++ b/doc/en/plugins_index/plugins_index.py @@ -1,6 +1,13 @@ """ Script to generate the file `index.txt` with information about -pytest plugins taken directly from a live PyPI server. +pytest plugins taken directly from PyPI. + +Usage: + python plugins_index.py + +This command will update `index.txt` in the same directory found as this script. +This should be issued before every major documentation release to obtain latest +versions from PyPI. Also includes plugin compatibility between different python and pytest versions, obtained from http://pytest-plugs.herokuapp.com. @@ -66,9 +73,34 @@ :param plugins: list of (name, version) :param client: ServerProxy """ + def get_repo_markup(repo): + """ + obtains appropriate markup for the given repository, as two lines + that should be output in the same table row. We use this to display an icon + for known repository hosts (github, etc), just a "?" char when + repository is not registered in pypi or a simple link otherwise. + """ + target = repo + if 'github.com' in repo: + image = 'github.png' + elif 'bitbucket.org' in repo: + image = 'bitbucket.png' + elif repo.lower() == 'unknown': + return '?', '' + else: + image = None + + if image is not None: + image_markup = '.. image:: %s' % image + target_markup = ' :target: %s' % repo + pad_right = ('%-' + str(len(target_markup)) + 's') + return pad_right % image_markup, target_markup + else: + return '`link <%s>`_' % target, '' + rows = [] ColumnData = namedtuple('ColumnData', 'text link') - headers = ['Name', 'Py27', 'Py33', 'Repository', 'Summary'] + headers = ['Name', 'Py27', 'Py33', 'Repo', 'Summary'] pytest_version = pytest.__version__ repositories = obtain_override_repositories() print('*** pytest-{0} ***'.format(pytest_version)) @@ -83,6 +115,9 @@ name=package_name, version=version) + repository = repositories.get(package_name, release_data['home_page']) + repo_markup_1, repo_markup_2 = get_repo_markup(repository) + # first row: name, images and simple links url = '.. image:: {site}/status/{name}-latest' image_url = url.format(**common_params) @@ -94,7 +129,7 @@ ColumnData(image_url.format(py='py33', pytest=pytest_version), None), ColumnData( - repositories.get(package_name, release_data['home_page']), + repo_markup_1, None), ColumnData(release_data['summary'], None), ) @@ -112,8 +147,9 @@ None), ColumnData(output_url.format(py='py33', pytest=pytest_version), None), + ColumnData(repo_markup_2, None), ColumnData('', None), - ColumnData('', None), + ) assert len(row) == len(headers) rows.append(row) @@ -167,11 +203,9 @@ return ' '.join(char * length for length in column_lengths) with open(filename, 'w') as f: - # write welcome - print('.. _plugins_index:', file=f) - print(file=f) - print('List of Third-Party Plugins', file=f) - print('===========================', file=f) + # header + header_text = HEADER.format(pytest_version=pytest.__version__) + print(header_text, file=f) print(file=f) # table @@ -232,5 +266,21 @@ return 0 +# header for the plugins_index page +HEADER = '''.. _plugins_index: + +List of Third-Party Plugins +=========================== + +The table below contains a listing of plugins found in PyPI and +their status when tested using py.test **{pytest_version}** and python 2.7 and +3.3. + +A complete listing can also be found at +`pytest-plugs `_, which contains tests +status against other py.test releases. +''' + + if __name__ == '__main__': sys.exit(main(sys.argv)) Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Fri Mar 14 15:44:49 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 14 Mar 2014 14:44:49 -0000 Subject: [Pytest-commit] commit/pytest: hpk42: fix issue #479: properly handle nose/unittest(2) SkipTest exceptions Message-ID: <20140314144449.25713.59399@app02.ash-private.bitbucket.org> 1 new commit in pytest: https://bitbucket.org/hpk42/pytest/commits/585fe9c5488e/ Changeset: 585fe9c5488e User: hpk42 Date: 2014-03-14 15:44:39 Summary: fix issue #479: properly handle nose/unittest(2) SkipTest exceptions during collection/loading of test modules. Thanks to Marc Schlaich for the complete PR. Affected #: 2 files diff -r 78d209d1deef275a3ffbbb68004d6b377840ace1 -r 585fe9c5488e8e7bd4a8048aeb578b95c5dc0b32 AUTHORS --- a/AUTHORS +++ b/AUTHORS @@ -38,3 +38,4 @@ Mark Abramowitz Piotr Banaszkiewicz Jurko Gospodneti? +Marc Schlaich diff -r 78d209d1deef275a3ffbbb68004d6b377840ace1 -r 585fe9c5488e8e7bd4a8048aeb578b95c5dc0b32 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -11,6 +11,11 @@ - change skips into warnings for test classes with an __init__ and callables in test modules which look like a test but are not functions. +- fix issue #479: properly handle nose/unittest(2) SkipTest exceptions + during collection/loading of test modules. Thanks to Marc Schlaich + for the complete PR. + + 2.5.2 ----------------------------------- Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From issues-reply at bitbucket.org Sat Mar 15 10:15:28 2014 From: issues-reply at bitbucket.org (anatoly techtonik) Date: Sat, 15 Mar 2014 09:15:28 -0000 Subject: [Pytest-commit] Issue #157: python -m tox quickstart (hpk42/tox) Message-ID: <20140315091528.32280.55036@app06.ash-private.bitbucket.org> New issue 157: python -m tox quickstart https://bitbucket.org/hpk42/tox/issue/157/python-m-tox-quickstart anatoly techtonik: It will be convenient if tox allowed to use `quickstart` argument to launch the tool. On Windows tox-quickstart is not accessible from %PATH%. From issues-reply at bitbucket.org Sat Mar 15 10:26:12 2014 From: issues-reply at bitbucket.org (anatoly techtonik) Date: Sat, 15 Mar 2014 09:26:12 -0000 Subject: [Pytest-commit] Issue #158: virtualenv lookup fail - 1.7.1 regression on Windows (hpk42/tox) Message-ID: <20140315092612.32285.67554@app06.ash-private.bitbucket.org> New issue 158: virtualenv lookup fail - 1.7.1 regression on Windows https://bitbucket.org/hpk42/tox/issue/158/virtualenv-lookup-fail-171-regression-on anatoly techtonik: Pull request #84 broke tox for Windows, because virtualenv is not added into %PATH%. Looking up for virtualenv through interpreter is a way to go. At least this way should have been left as a fallback. From issues-reply at bitbucket.org Mon Mar 17 07:45:23 2014 From: issues-reply at bitbucket.org (rutsky) Date: Mon, 17 Mar 2014 06:45:23 -0000 Subject: [Pytest-commit] Issue #159: Support multiple environments specification in [testenv: ...] (hpk42/tox) Message-ID: <20140317064523.29964.45500@app09.ash-private.bitbucket.org> New issue 159: Support multiple environments specification in [testenv: ...] https://bitbucket.org/hpk42/tox/issue/159/support-multiple-environments rutsky: It would be convenient to specify settings for multiple environments in tox.ini. E.g. intead of ``` [tox] envlist = py26, py27, py32, py33 [testenv:py26] usedevelop=True commands = {envpython} tests/test.py deps = -r{toxinidir}/requirements2.txt [testenv:py27] usedevelop=True commands = {envpython} tests/test.py deps = -r{toxinidir}/requirements2.txt [testenv:py32] usedevelop=True commands = {envpython} tests/test.py deps = -r{toxinidir}/requirements3.txt [testenv:py33] usedevelop=True commands = {envpython} tests/test.py deps = -r{toxinidir}/requirements3.txt ``` specify: ``` [tox] envlist = py26, py27, py32, py33 [testenv:py26,py27] usedevelop=True commands = {envpython} tests/test.py deps = -r{toxinidir}/requirements2.txt [testenv:py32,py33] usedevelop=True commands = {envpython} tests/test.py deps = -r{toxinidir}/requirements3.txt ``` From issues-reply at bitbucket.org Tue Mar 18 01:34:14 2014 From: issues-reply at bitbucket.org (Aaron Gallagher) Date: Tue, 18 Mar 2014 00:34:14 -0000 Subject: [Pytest-commit] Issue #483: 'function' object has no attribute 'im_func' with twisted TestCases on python 3 (hpk42/pytest) Message-ID: <20140318003414.17922.10280@app12.ash-private.bitbucket.org> New issue 483: 'function' object has no attribute 'im_func' with twisted TestCases on python 3 https://bitbucket.org/hpk42/pytest/issue/483/function-object-has-no-attribute-im_func Aaron Gallagher: The full traceback is: INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/main.py", line 81, in wrap_session INTERNALERROR> doit(config, session) INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/main.py", line 118, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/core.py", line 377, in __call__ INTERNALERROR> return self._docall(methods, kwargs) INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/core.py", line 388, in _docall INTERNALERROR> res = mc.execute() INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/core.py", line 289, in execute INTERNALERROR> res = method(**kwargs) INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/main.py", line 138, in pytest_runtestloop INTERNALERROR> item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/core.py", line 377, in __call__ INTERNALERROR> return self._docall(methods, kwargs) INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/core.py", line 388, in _docall INTERNALERROR> res = mc.execute() INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/core.py", line 289, in execute INTERNALERROR> res = method(**kwargs) INTERNALERROR> File "/Users/aarongallagher/src/git/parsley/ve3/lib/python3.3/site-packages/_pytest/unittest.py", line 157, in pytest_runtest_protocol INTERNALERROR> Failure__init__ = ut.Failure.__init__.im_func INTERNALERROR> AttributeError: 'function' object has no attribute 'im_func' If I amend the line to omit the `.im_func`, the tests run without issue. From issues-reply at bitbucket.org Tue Mar 18 02:28:50 2014 From: issues-reply at bitbucket.org (Chris Hasenpflug) Date: Tue, 18 Mar 2014 01:28:50 -0000 Subject: [Pytest-commit] Issue #160: Python 3.3 envs not properly installing requirements (hpk42/tox) Message-ID: <20140318012850.30807.14236@app06.ash-private.bitbucket.org> New issue 160: Python 3.3 envs not properly installing requirements https://bitbucket.org/hpk42/tox/issue/160/python-33-envs-not-properly-installing Chris Hasenpflug: I have a private repo exhibiting this behavior, but I have been able to recreate it using several open source projects. For purposes of illustration I'm going to use https://github.com/django-extensions/django-extensions/. To show the issue I have modified the tox.ini per this gist: https://gist.github.com/chrishas35/9611820. I changed the commands to be as follows: ``` commands = {envpython} -V which django-admin.py django-admin.py version {envpython} setup.py test ``` Running `tox -r -e py27_django16` generates the following output for my additional commands: ``` #! py27_django16 runtests: commands[0] | /Volumes/Data/Users/chris/Developer/django-extensions/.tox/py27_django16/bin/python -V Python 2.7.6 py27_django16 runtests: commands[1] | which django-admin.py WARNING:test command found but not installed in testenv cmd: /usr/bin/which env: /Volumes/Data/Users/chris/Developer/django-extensions/.tox/py27_django16 Maybe forgot to specify a dependency? /Volumes/Data/Users/chris/Developer/django-extensions/.tox/py27_django16/bin/django-admin.py py27_django16 runtests: commands[2] | django-admin.py version 1.6.1 ``` Running `tox -r -e py33_django16` generates the following output for my additional commands: ``` #! py33_django16 runtests: commands[0] | /Volumes/Data/Users/chris/Developer/django-extensions/.tox/py33_django16/bin/python -V Python 3.3.5 py33_django16 runtests: commands[1] | which django-admin.py WARNING:test command found but not installed in testenv cmd: /usr/bin/which env: /Volumes/Data/Users/chris/Developer/django-extensions/.tox/py33_django16 Maybe forgot to specify a dependency? /usr/local/bin/django-admin.py py33_django16 runtests: commands[2] | django-admin.py version WARNING:test command found but not installed in testenv cmd: /usr/local/bin/django-admin.py env: /Volumes/Data/Users/chris/Developer/django-extensions/.tox/py33_django16 Maybe forgot to specify a dependency? 1.6.1 ``` What started me down this path was the dependency warning for django-admin.py when I know it should be installed in the env. The addition of `which django-admin.py` shows that Django has been not been installed into the env, but rather into my global python. Verbose output shows that the installation is attempted with appropriate env pip: ``` #! py33_django16 installdeps: Django==1.6.1 /Volumes/Data/Users/chris/Developer/django-extensions$ /Volumes/Data/Users/chris/Developer/django-extensions/.tox/py33_django16/bin/pip install --pre Django==1.6.1 >/Volumes/Data/Users/chris/Developer/django-extensions/.tox/py33_django16/log/py33_django16-1.log ``` Alas, it's not being installed to the env as `.tox/py33_django16/bin/pip freeze` returns an empty list. From issues-reply at bitbucket.org Tue Mar 18 10:59:19 2014 From: issues-reply at bitbucket.org (Marc Schlaich) Date: Tue, 18 Mar 2014 09:59:19 -0000 Subject: [Pytest-commit] Issue #161: Setting PYTHONHASHSEED can crash multiprocessing tests on Windows (hpk42/tox) Message-ID: <20140318095919.23457.28722@app12.ash-private.bitbucket.org> New issue 161: Setting PYTHONHASHSEED can crash multiprocessing tests on Windows https://bitbucket.org/hpk42/tox/issue/161/setting-pythonhashseed-can-crash Marc Schlaich: See http://bugs.python.org/issue20954. I'm not sure how (and if) this can be handled gracefully in tox. My first idea was setting PYTHONHASHSEED=random per default (I already prepared a PR for that). But then I noticed that this will change the current behavior completely: with PYTHONHASHSEED=random every env will get its own hash seed and you won't get a useful output on run (because there will be `PYTHONHASHSEED='random'` in the log. So you won't be able to fully reproduce test runs which was the main intention of pull request #79 I guess. A less intrusive option would be (on Windows): if a test run fails, scan the output for a `MemoryError` in subprocess. If it matches point to this bug and give the suggestion to run tox with `--hashseed random`. But I don't think how you feel in general about handling upstream bugs (please note, this Python bug will never be fixed in 2.6 and 3.3). cc @cjerdonek From issues-reply at bitbucket.org Tue Mar 18 19:32:57 2014 From: issues-reply at bitbucket.org (javex) Date: Tue, 18 Mar 2014 18:32:57 -0000 Subject: [Pytest-commit] Issue #484: Order of class fixtures (hpk42/pytest) Message-ID: <20140318183257.24644.42252@app03.ash-private.bitbucket.org> New issue 484: Order of class fixtures https://bitbucket.org/hpk42/pytest/issue/484/order-of-class-fixtures javex: I have two fixtures on on a class, like this: class TestMyThing(object): @pytest.fixture(autouse=True) def _fixture_0(self): self.data = ... @pytest.fixture(autouse=True) def _fixture_1(self): data = self.data ... The problem here is that `_fixture_1` needs `_fixture_0` to be run before `_fixture_1` as it needs `self.data` to be set. I'd really like to split these two up instead of using a single fixture as they are fairly complex. They are also only used on this particular class, so I'd prefer to not have it outside of my class for organizational purposes. However, if I name the fixtures in such a way that lexicographic ordering is the other way around, they will not be called in the right order. I guess that pytest orders fixtures somehow internally (or maybe it is internal ordering of python?). Anyways, I'd like some deterministic way of fixture ordering to be documented or configurable. One way I could imagine would be to just document that the will always be lexicographically ordered, thus you can be sure that my above naming would always be in the correct order. Another way would be some kind of mechanism by which I can require another class fixture, since I would order other fixtures this way by declaring one requires the other. Do you think such a feature would be possible? Or do you think it is a very special application that doesn't deserve it? From issues-reply at bitbucket.org Tue Mar 18 20:52:31 2014 From: issues-reply at bitbucket.org (Ethan John) Date: Tue, 18 Mar 2014 19:52:31 -0000 Subject: [Pytest-commit] Issue #485: xdist: --boxed test crash throws away STDOUT and STDERR even if they have data (hpk42/pytest) Message-ID: <20140318195231.16517.7107@app13.ash-private.bitbucket.org> New issue 485: xdist: --boxed test crash throws away STDOUT and STDERR even if they have data https://bitbucket.org/hpk42/pytest/issue/485/xdist-boxed-test-crash-throws-away-stdout Ethan John: I'm using pytest 2.5.2 and xdist 1.10 under CentOS 6.2. We use py.test --boxed for test isolation and resiliency to underlying crashes. We use Cython extensively and various underlying libraries written in C, and we were running into situations where py.test was reporting that processes crashed (usually with signal 6, ABORT due to assertion failure) and not leaving anything else behind with which to track down the problem. After fixing our core file generation permissions and discovering where the processes were hanging, it was clear in reproductions outside of py.test that the processes were generating output that our test reports were not seeing. Some digging into xdist's code shows the reason: If a test function crashes, the result returned from plugin.py:forked_run_report():ff.waitfinish() does not have a retval (because it was never returned), and therefore the report_process_crash() method executes and simply reports the result.signal. This is fine in the default case where py.test is run with --capture fd, because result.err and result.out will be empty (I also think this is incorrect, but it's nontrivial to fix given my reading of the source). However, in the event that a user runs with --capture sys, then result.out and result.err do indeed have useful information in them, but this data is thrown away. This is trivial to reproduce with a simple C file that just asserts: {noformat} #include int main() { assert(0); } {noformat} And a degenerate test file that can be executed after compiling the above: {noformat} #!/usr/bin/env crpython import os import unittest2 as unittest class TestAbrt(unittest.TestCase): def testit(self): os.execvp('./a.out', ['a.out']) if __name__ == "__main__": unittest.main() {noformat} What I would expect: # A process crash with --boxed should not be considered a failure! It should be a test error and relevant information like stdout and stderr should be communicated to the user. #* Ideally, test results should not be "all or nothing" in the world of --boxed even if --capture is specified as "fd". It should be possible to read input from child tests even in the event of failure, at least in the UNIX world. Maybe --boxed should override the default --capture behavior in order to capture as much as possible? Without xdist the --capture flag seems useful, but with it, more advanced behavior is possible. # If a crash continues to be classified as a failure, then any status information collected by the test report should be included in the failure report. Assuming that result.err and result.out are empty seems incorrect. Thanks! From issues-reply at bitbucket.org Wed Mar 19 09:38:24 2014 From: issues-reply at bitbucket.org (Daniel Hahler) Date: Wed, 19 Mar 2014 08:38:24 -0000 Subject: [Pytest-commit] Issue #486: `--help` should not fail with an exception on conftest.py errors / handle conftest imports more gracefully/meaningful (hpk42/pytest) Message-ID: <20140319083824.2687.98769@app10.ash-private.bitbucket.org> New issue 486: `--help` should not fail with an exception on conftest.py errors / handle conftest imports more gracefully/meaningful https://bitbucket.org/hpk42/pytest/issue/486/help-should-not-fail-with-an-exception-on Daniel Hahler: I have just installed `pytest` globally and wanted to look at the help options, but it failed (probably because of me being in the project directory, but without the virtualenv activated): There is ../../../conftest.py, which contains an import, which does not work outside of the virtualenv. I think py.test should be more helpful, and display its help options/information nonetheless. It would be nice to get a warning that the conftest.py failed to get imported/parsed on top. This warning would be useful in the generic case also: it's hard to tell from the Traceback that there is some conftest.py issue involved. Traceback (most recent call last): File "/usr/local/bin/py.test", line 9, in load_entry_point('pytest==2.5.2', 'console_scripts', 'py.test')() File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 19, in main config = _prepareconfig(args, plugins) File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 63, in _prepareconfig pluginmanager=pluginmanager, args=args) File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", line 377, in __call__ return self._docall(methods, kwargs) File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", line 388, in _docall res = mc.execute() File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", line 289, in execute res = method(**kwargs) File "/usr/local/lib/python2.7/dist-packages/_pytest/helpconfig.py", line 27, in pytest_cmdline_parse config = __multicall__.execute() File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", line 289, in execute res = method(**kwargs) File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 618, in pytest_cmdline_parse self.parse(args) File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 711, in parse self._preparse(args) File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 691, in _preparse args=args, parser=self._parser) File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", line 377, in __call__ return self._docall(methods, kwargs) File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", line 388, in _docall res = mc.execute() File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", line 289, in execute res = method(**kwargs) File "/usr/local/lib/python2.7/dist-packages/_pytest/capture.py", line 83, in pytest_load_initial_conftests return __multicall__.execute() File "/usr/local/lib/python2.7/dist-packages/_pytest/core.py", line 289, in execute res = method(**kwargs) File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 674, in pytest_load_initial_conftests self._conftest.setinitial(args) File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 490, in setinitial self._try_load_conftest(current) File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 493, in _try_load_conftest self._path2confmods[None] = self.getconftestmodules(anchor) File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 512, in getconftestmodules clist.append(self.importconftest(conftestpath)) File "/usr/local/lib/python2.7/dist-packages/_pytest/config.py", line 538, in importconftest self._conftestpath2mod[conftestpath] = mod = conftestpath.pyimport() File "/usr/local/lib/python2.7/dist-packages/py/_path/local.py", line 620, in pyimport __import__(modname) File "?/conftest.py", line 8, in from selenium import webdriver ImportError: No module named selenium From issues-reply at bitbucket.org Thu Mar 20 09:52:03 2014 From: issues-reply at bitbucket.org (=?utf-8?q?Jurko_Gospodneti=C4=87?=) Date: Thu, 20 Mar 2014 08:52:03 -0000 Subject: [Pytest-commit] Issue #487: request.param mentioned in docs but not listed in the request API docs (hpk42/pytest) Message-ID: <20140320085203.25030.74705@app01.ash-private.bitbucket.org> New issue 487: request.param mentioned in docs but not listed in the request API docs https://bitbucket.org/hpk42/pytest/issue/487/requestparam-mentioned-in-docs-but-not Jurko Gospodneti?: For a fixture request object, ```request.param``` attribute is [mentioned in the docs](http://pytest.org/latest/fixture.html#parametrizing-a-fixture) but not really listed in the [request api](http://pytest.org/latest/builtin.html#_pytest.python.FixtureRequest). This has been extracted from issue #447. Best regards, Jurko Gospodneti? From issues-reply at bitbucket.org Thu Mar 20 10:43:29 2014 From: issues-reply at bitbucket.org (Marc Schlaich) Date: Thu, 20 Mar 2014 09:43:29 -0000 Subject: [Pytest-commit] Issue #162: Doc issue: Python 2.5 is still listed as compatible (hpk42/tox) Message-ID: <20140320094329.22148.992@app07.ash-private.bitbucket.org> New issue 162: Doc issue: Python 2.5 is still listed as compatible https://bitbucket.org/hpk42/tox/issue/162/doc-issue-python-25-is-still-listed-as Marc Schlaich: Please update the documentation. From issues-reply at bitbucket.org Fri Mar 21 18:30:41 2014 From: issues-reply at bitbucket.org (Antoine Musso) Date: Fri, 21 Mar 2014 17:30:41 -0000 Subject: [Pytest-commit] Issue #163: Document PY_COLORS to enforce color output (hpk42/tox) Message-ID: <20140321173041.3780.70368@app06.ash-private.bitbucket.org> New issue 163: Document PY_COLORS to enforce color output https://bitbucket.org/hpk42/tox/issue/163/document-py_colors-to-enforce-color-output Antoine Musso: While integrating a tox based job in Jenkins (which has a dumb terminal) I was looking for a way to force color output. Looking at _py/terminalwriter.py , it looks up the environment variable PY_COLORS. A value of 1 would enforce color, a value of 0 would disable color. The global override the TERM value. It would be nice to have PY_COLORS documented in the tox documentation. py-trunk doc update request is: https://bitbucket.org/hpk42/py-trunk/issue/138/py_colors-env-is-undocumented From issues-reply at bitbucket.org Sat Mar 22 13:45:23 2014 From: issues-reply at bitbucket.org (Markus Unterwaditzer) Date: Sat, 22 Mar 2014 12:45:23 -0000 Subject: [Pytest-commit] Issue #488: Add ability to configure the "patience" of xprocess when waiting for process to start (hpk42/pytest) Message-ID: <20140322124523.2489.41539@app18.ash-private.bitbucket.org> New issue 488: Add ability to configure the "patience" of xprocess when waiting for process to start https://bitbucket.org/hpk42/pytest/issue/488/add-ability-to-configure-the-patience-of Markus Unterwaditzer: https://github.com/untitaker/vdirsyncer/commit/cb3255715af97c928581b730a5b190136e843ed3 I'd like to be able to configure the amount of time xprocess waits between the line reads, for example, and/or set the "count" variable in XProcess._checkpattern. From commits-noreply at bitbucket.org Mon Mar 24 13:21:33 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Mon, 24 Mar 2014 12:21:33 -0000 Subject: [Pytest-commit] commit/tox: 5 new changesets Message-ID: <20140324122133.16377.50249@app12.ash-private.bitbucket.org> 5 new commits in tox: https://bitbucket.org/hpk42/tox/commits/3744404876e8/ Changeset: 3744404876e8 Branch: jurko/documentation-fixes User: jurko Date: 2014-03-23 14:11:12 Summary: fix documentation typo Affected #: 1 file diff -r b0360a54ab368ef428c7f83601ba6b64f6fec64f -r 3744404876e8428ce8b446ae5227d2b179ca8f7a doc/example/devenv.txt --- a/doc/example/devenv.txt +++ b/doc/example/devenv.txt @@ -47,7 +47,7 @@ Let's say we want our development environment sit at ``devenv`` and pull packages from ``requirements.txt`` file which we create at the same directory -as ``tox.ini`` file. We also want to speciy Python version to be 2.7, and use +as ``tox.ini`` file. We also want to specify Python version to be 2.7, and use ``setup.py develop`` to work in development mode instead of building and installing an ``sdist`` package. https://bitbucket.org/hpk42/tox/commits/73cc0721f3c4/ Changeset: 73cc0721f3c4 Branch: jurko/documentation-fixes User: jurko Date: 2014-03-23 14:48:08 Summary: stylistic documentation wording cleanup Affected #: 1 file diff -r 3744404876e8428ce8b446ae5227d2b179ca8f7a -r 73cc0721f3c46c81bd6e0e71b9022ced4d8ba8cc doc/example/devenv.txt --- a/doc/example/devenv.txt +++ b/doc/example/devenv.txt @@ -1,61 +1,78 @@ - +======================= Development environment ======================= -Tox can be used to prepare development virtual environment for local projects. -This feature can be useful in order to preserve environment across team members -working on same project. It can be also used by deployment tools to prepare -proper environments. +Tox can be used for just preparing different virtual environments required by a +project. +This feature can be used by deployment tools when preparing deployed project +environments. It can also be used for setting up normalized project development +environments and thus help reduce the risk of different team members using +mismatched development environments. -Configuration -------------- +Here are some examples illustrating how to set up a project's development +environment using tox. For illustration purposes, let us call the development +environment ``devenv``. -Firstly, you need to prepare configuration for your development environment. In -order to do that, we must define proper section at ``tox.ini`` file and tell at -what directory environment should be created. Moreover, we need to specify -python version that should be picked, and that the package should be installed -with ``setup.py develop``:: + +Example 1: Basic scenario +========================= + +Step 1 - Configure the development environment +---------------------------------------------- + +First, we prepare the tox configuration for our development environment by +defining a ``[testenv:devenv]`` section in the project's ``tox.ini`` +configuration file:: [testenv:devenv] envdir = devenv basepython = python2.7 usedevelop = True + +In it we state: + +- what directory to locate the environment in, +- what Python executable to use in the environment, +- that our project should be installed into the environment using ``setup.py + develop``, as opposed to building and installing its source distribution using + ``setup.py install``. + +Actually, we can configure a lot more, and these are only the required settings. +For example, we can add the following to our configuration, telling tox not to +reuse ``commands`` or ``deps`` settings from the base ``[testenv]`` +configuration:: + commands = deps = -Actually, you can configure a lot more, those are the only required settings. -In example you can add ``deps`` and ``commands`` settings. Here, we tell tox -not to pick ``commands`` or ``deps`` from base ``testenv`` configuration. +Step 2 - Create the development environment +------------------------------------------- - -Creating development environment --------------------------------- - -Once ``devenv`` section is defined we can instrument tox to create our -environment:: +Once the ``[testenv:devenv]`` configuration section has been defined, we create +the actual development environment by running the following:: tox -e devenv -This will create an environment at path specified by ``envdir`` under -``[testenv:devenv]`` section. +This creates the environment at the path specified by the environment's +``envdir`` configuration value. -Full configuration example --------------------------- +Example 2: A more complex scenario +================================== -Let's say we want our development environment sit at ``devenv`` and pull -packages from ``requirements.txt`` file which we create at the same directory -as ``tox.ini`` file. We also want to specify Python version to be 2.7, and use -``setup.py develop`` to work in development mode instead of building and -installing an ``sdist`` package. +Let us say we want our project development environment to: -Here is example configuration for that:: +- be located in the ``devenv`` directory, +- use Python executable ``python2.7``, +- pull packages from ``requirements.txt``, located in the same directory as + ``tox.ini``. + +Here is an example configuration for the described scenario:: [testenv:devenv] envdir = devenv basepython = python2.7 usedevelop = True deps = -rrequirements.txt - https://bitbucket.org/hpk42/tox/commits/26aaf55693f5/ Changeset: 26aaf55693f5 Branch: jurko/documentation-fixes User: jurko Date: 2014-03-23 16:28:36 Summary: fix documentation typo Affected #: 1 file diff -r 73cc0721f3c46c81bd6e0e71b9022ced4d8ba8cc -r 26aaf55693f51dfb11d5caa593c1daa843eaac3a doc/config.txt --- a/doc/config.txt +++ b/doc/config.txt @@ -202,7 +202,7 @@ .. versionadded:: 0.9 Multi-line ``name = URL`` definitions of python package servers. - Depedencies can specify using a specified index server through the + Dependencies can specify using a specified index server through the ``:indexservername:depname`` pattern. The ``default`` indexserver definition determines where unscoped dependencies and the sdist install installs from. Example:: https://bitbucket.org/hpk42/tox/commits/96ecf1f27a21/ Changeset: 96ecf1f27a21 Branch: jurko/documentation-fixes User: jurko Date: 2014-03-23 16:29:11 Summary: trim trailing spaces in doc/config.txt Affected #: 1 file diff -r 26aaf55693f51dfb11d5caa593c1daa843eaac3a -r 96ecf1f27a218fa85a9daf7641a132ee9c8f9c31 doc/config.txt --- a/doc/config.txt +++ b/doc/config.txt @@ -80,7 +80,7 @@ .. versionadded:: 1.6 - **WARNING**: This setting is **EXPERIMENTAL** so use with care + **WARNING**: This setting is **EXPERIMENTAL** so use with care and be ready to adapt your tox.ini's with post-1.6 tox releases. the ``install_command`` setting is used for installing packages into @@ -94,12 +94,12 @@ if you have configured it. **default**:: - + pip install --pre {opts} {packages} - + **default on environments using python2.5**:: - pip install {opts} {packages}`` + pip install {opts} {packages}`` this will use pip<1.4 which has no ``--pre`` option. Note also that for python2.5 support you may need to install ssl and/or @@ -109,7 +109,7 @@ each line specifies a command name (in glob-style pattern format) which can be used in the ``commands`` section without triggering - a "not installed in virtualenv" warning. Example: if you use the + a "not installed in virtualenv" warning. Example: if you use the unix ``make`` for running tests you can list ``whitelist_externals=make`` or ``whitelist_externals=/usr/bin/make`` if you want more precision. If you don't want tox to issue a warning in any case, just use @@ -136,7 +136,7 @@ using the ``{toxinidir}`` as the current working directory. .. confval:: setenv=MULTI-LINE-LIST - + .. versionadded:: 0.9 each line contains a NAME=VALUE environment variable setting which @@ -164,17 +164,17 @@ **DEPRECATED** -- as of August 2013 you should use setuptools which has merged most of distribute_ 's changes. Just use - the default, Luke! In future versions of tox this option might - be ignored and setuptools always chosen. + the default, Luke! In future versions of tox this option might + be ignored and setuptools always chosen. **default:** False. .. confval:: sitepackages=True|False Set to ``True`` if you want to create virtual environments that also - have access to globally installed packages. + have access to globally installed packages. - **default:** False, meaning that virtualenvs will be + **default:** False, meaning that virtualenvs will be created without inheriting the global site packages. .. confval:: args_are_paths=BOOL @@ -182,7 +182,7 @@ treat positional arguments passed to ``tox`` as file system paths and - if they exist on the filesystem - rewrite them according to the ``changedir``. - **default**: True (due to the exists-on-filesystem check it's + **default**: True (due to the exists-on-filesystem check it's usually safe to try rewriting). .. confval:: envtmpdir=path @@ -347,7 +347,7 @@ pytest mock pytest-xdist - + [testenv:dulwich] deps = dulwich https://bitbucket.org/hpk42/tox/commits/7cbeabe44493/ Changeset: 7cbeabe44493 User: hpk42 Date: 2014-03-24 13:21:27 Summary: Merged in jurko/tox/jurko/documentation-fixes (pull request #87) doc/example/devenv.txt documentation update Affected #: 2 files diff -r b0360a54ab368ef428c7f83601ba6b64f6fec64f -r 7cbeabe4449346ec7273bd3aa760a278ad3c941c doc/config.txt --- a/doc/config.txt +++ b/doc/config.txt @@ -80,7 +80,7 @@ .. versionadded:: 1.6 - **WARNING**: This setting is **EXPERIMENTAL** so use with care + **WARNING**: This setting is **EXPERIMENTAL** so use with care and be ready to adapt your tox.ini's with post-1.6 tox releases. the ``install_command`` setting is used for installing packages into @@ -94,12 +94,12 @@ if you have configured it. **default**:: - + pip install --pre {opts} {packages} - + **default on environments using python2.5**:: - pip install {opts} {packages}`` + pip install {opts} {packages}`` this will use pip<1.4 which has no ``--pre`` option. Note also that for python2.5 support you may need to install ssl and/or @@ -109,7 +109,7 @@ each line specifies a command name (in glob-style pattern format) which can be used in the ``commands`` section without triggering - a "not installed in virtualenv" warning. Example: if you use the + a "not installed in virtualenv" warning. Example: if you use the unix ``make`` for running tests you can list ``whitelist_externals=make`` or ``whitelist_externals=/usr/bin/make`` if you want more precision. If you don't want tox to issue a warning in any case, just use @@ -136,7 +136,7 @@ using the ``{toxinidir}`` as the current working directory. .. confval:: setenv=MULTI-LINE-LIST - + .. versionadded:: 0.9 each line contains a NAME=VALUE environment variable setting which @@ -164,17 +164,17 @@ **DEPRECATED** -- as of August 2013 you should use setuptools which has merged most of distribute_ 's changes. Just use - the default, Luke! In future versions of tox this option might - be ignored and setuptools always chosen. + the default, Luke! In future versions of tox this option might + be ignored and setuptools always chosen. **default:** False. .. confval:: sitepackages=True|False Set to ``True`` if you want to create virtual environments that also - have access to globally installed packages. + have access to globally installed packages. - **default:** False, meaning that virtualenvs will be + **default:** False, meaning that virtualenvs will be created without inheriting the global site packages. .. confval:: args_are_paths=BOOL @@ -182,7 +182,7 @@ treat positional arguments passed to ``tox`` as file system paths and - if they exist on the filesystem - rewrite them according to the ``changedir``. - **default**: True (due to the exists-on-filesystem check it's + **default**: True (due to the exists-on-filesystem check it's usually safe to try rewriting). .. confval:: envtmpdir=path @@ -202,7 +202,7 @@ .. versionadded:: 0.9 Multi-line ``name = URL`` definitions of python package servers. - Depedencies can specify using a specified index server through the + Dependencies can specify using a specified index server through the ``:indexservername:depname`` pattern. The ``default`` indexserver definition determines where unscoped dependencies and the sdist install installs from. Example:: @@ -347,7 +347,7 @@ pytest mock pytest-xdist - + [testenv:dulwich] deps = dulwich diff -r b0360a54ab368ef428c7f83601ba6b64f6fec64f -r 7cbeabe4449346ec7273bd3aa760a278ad3c941c doc/example/devenv.txt --- a/doc/example/devenv.txt +++ b/doc/example/devenv.txt @@ -1,61 +1,78 @@ - +======================= Development environment ======================= -Tox can be used to prepare development virtual environment for local projects. -This feature can be useful in order to preserve environment across team members -working on same project. It can be also used by deployment tools to prepare -proper environments. +Tox can be used for just preparing different virtual environments required by a +project. +This feature can be used by deployment tools when preparing deployed project +environments. It can also be used for setting up normalized project development +environments and thus help reduce the risk of different team members using +mismatched development environments. -Configuration -------------- +Here are some examples illustrating how to set up a project's development +environment using tox. For illustration purposes, let us call the development +environment ``devenv``. -Firstly, you need to prepare configuration for your development environment. In -order to do that, we must define proper section at ``tox.ini`` file and tell at -what directory environment should be created. Moreover, we need to specify -python version that should be picked, and that the package should be installed -with ``setup.py develop``:: + +Example 1: Basic scenario +========================= + +Step 1 - Configure the development environment +---------------------------------------------- + +First, we prepare the tox configuration for our development environment by +defining a ``[testenv:devenv]`` section in the project's ``tox.ini`` +configuration file:: [testenv:devenv] envdir = devenv basepython = python2.7 usedevelop = True + +In it we state: + +- what directory to locate the environment in, +- what Python executable to use in the environment, +- that our project should be installed into the environment using ``setup.py + develop``, as opposed to building and installing its source distribution using + ``setup.py install``. + +Actually, we can configure a lot more, and these are only the required settings. +For example, we can add the following to our configuration, telling tox not to +reuse ``commands`` or ``deps`` settings from the base ``[testenv]`` +configuration:: + commands = deps = -Actually, you can configure a lot more, those are the only required settings. -In example you can add ``deps`` and ``commands`` settings. Here, we tell tox -not to pick ``commands`` or ``deps`` from base ``testenv`` configuration. +Step 2 - Create the development environment +------------------------------------------- - -Creating development environment --------------------------------- - -Once ``devenv`` section is defined we can instrument tox to create our -environment:: +Once the ``[testenv:devenv]`` configuration section has been defined, we create +the actual development environment by running the following:: tox -e devenv -This will create an environment at path specified by ``envdir`` under -``[testenv:devenv]`` section. +This creates the environment at the path specified by the environment's +``envdir`` configuration value. -Full configuration example --------------------------- +Example 2: A more complex scenario +================================== -Let's say we want our development environment sit at ``devenv`` and pull -packages from ``requirements.txt`` file which we create at the same directory -as ``tox.ini`` file. We also want to speciy Python version to be 2.7, and use -``setup.py develop`` to work in development mode instead of building and -installing an ``sdist`` package. +Let us say we want our project development environment to: -Here is example configuration for that:: +- be located in the ``devenv`` directory, +- use Python executable ``python2.7``, +- pull packages from ``requirements.txt``, located in the same directory as + ``tox.ini``. + +Here is an example configuration for the described scenario:: [testenv:devenv] envdir = devenv basepython = python2.7 usedevelop = True deps = -rrequirements.txt - Repository URL: https://bitbucket.org/hpk42/tox/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Mon Mar 24 13:27:49 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Mon, 24 Mar 2014 12:27:49 -0000 Subject: [Pytest-commit] commit/tox: hpk42: fix issue162: don't list python 2.5 as compatibiliy/supported Message-ID: <20140324122749.1124.89819@app06.ash-private.bitbucket.org> 1 new commit in tox: https://bitbucket.org/hpk42/tox/commits/e8d513cba7d9/ Changeset: e8d513cba7d9 User: hpk42 Date: 2014-03-24 13:27:39 Summary: fix issue162: don't list python 2.5 as compatibiliy/supported Affected #: 4 files diff -r 7cbeabe4449346ec7273bd3aa760a278ad3c941c -r e8d513cba7d9b36dba0b5995829a23c8a1c1bdb3 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +XXX +--------- + +- fix issue162: don't list python 2.5 as compatibiliy/supported + 1.7.0 --------- diff -r 7cbeabe4449346ec7273bd3aa760a278ad3c941c -r e8d513cba7d9b36dba0b5995829a23c8a1c1bdb3 doc/config.txt --- a/doc/config.txt +++ b/doc/config.txt @@ -97,14 +97,6 @@ pip install --pre {opts} {packages} - **default on environments using python2.5**:: - - pip install {opts} {packages}`` - - this will use pip<1.4 which has no ``--pre`` option. Note also - that for python2.5 support you may need to install ssl and/or - use ``setenv = PIP_INSECURE=1`` in a py25 based testenv. - .. confval:: whitelist_externals=MULTI-LINE-LIST each line specifies a command name (in glob-style pattern format) diff -r 7cbeabe4449346ec7273bd3aa760a278ad3c941c -r e8d513cba7d9b36dba0b5995829a23c8a1c1bdb3 doc/index.txt --- a/doc/index.txt +++ b/doc/index.txt @@ -68,9 +68,8 @@ support for configuring the installer command through :confval:`install_command=ARGV`. -* **cross-Python compatible**: Python-2.5 up to Python-3.3, - Jython and pypy_ support. Python-2.5 is supported through - a vendored ``virtualenv-1.9.1`` script. +* **cross-Python compatible**: Python-2.6 up to Python-3.3, + Jython and pypy_ support. * **cross-platform**: Windows and Unix style environments diff -r 7cbeabe4449346ec7273bd3aa760a278ad3c941c -r e8d513cba7d9b36dba0b5995829a23c8a1c1bdb3 doc/install.txt --- a/doc/install.txt +++ b/doc/install.txt @@ -4,7 +4,7 @@ Install info in a nutshell ---------------------------------- -**Pythons**: CPython 2.4-3.3, Jython-2.5.1, pypy-1.9ff +**Pythons**: CPython 2.6-3.3, Jython-2.5.1, pypy-1.9ff **Operating systems**: Linux, Windows, OSX, Unix Repository URL: https://bitbucket.org/hpk42/tox/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Tue Mar 25 07:18:25 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Tue, 25 Mar 2014 06:18:25 -0000 Subject: [Pytest-commit] commit/tox: 4 new changesets Message-ID: <20140325061825.32321.69755@app12.ash-private.bitbucket.org> 4 new commits in tox: https://bitbucket.org/hpk42/tox/commits/94b61b750175/ Changeset: 94b61b750175 User: ionelmc Date: 2014-03-25 01:58:56 Summary: Backed out changeset: 0b3ce1895d03 Affected #: 2 files diff -r e8d513cba7d9b36dba0b5995829a23c8a1c1bdb3 -r 94b61b750175b32064eeff1b3470b2e9a9e202ea tox/_config.py --- a/tox/_config.py +++ b/tox/_config.py @@ -357,6 +357,7 @@ ixserver = None name = self._replace_forced_dep(name, config) vc.deps.append(DepConfig(name, ixserver)) + vc.virtualenvbin = reader.getdefault(section, "virtualenvbin", "virtualenv") vc.distribute = reader.getbool(section, "distribute", False) vc.sitepackages = self.config.option.sitepackages or \ reader.getbool(section, "sitepackages", False) diff -r e8d513cba7d9b36dba0b5995829a23c8a1c1bdb3 -r 94b61b750175b32064eeff1b3470b2e9a9e202ea tox/_venv.py --- a/tox/_venv.py +++ b/tox/_venv.py @@ -179,7 +179,7 @@ action = self.session.newaction(self, "create") config_interpreter = self.getsupportedinterpreter() - args = ['virtualenv'] + args = [self.envconfig.virtualenvbin] if self.envconfig.distribute: args.append("--distribute") else: https://bitbucket.org/hpk42/tox/commits/e265b90ec9e1/ Changeset: e265b90ec9e1 User: ionelmc Date: 2014-03-25 01:59:09 Summary: Backed out changeset: f54ba7b918e8 Affected #: 1 file diff -r 94b61b750175b32064eeff1b3470b2e9a9e202ea -r e265b90ec9e10cf3bb236220466b82330ec3d6e3 tests/test_venv.py --- a/tests/test_venv.py +++ b/tests/test_venv.py @@ -48,7 +48,7 @@ l = mocksession._pcalls assert len(l) >= 1 args = l[0].args - assert "virtualenv" in str(args[0]) + assert str(args[0]).endswith("virtualenv") if sys.platform != "win32": #assert Envconfig.toxworkdir in args assert venv.getcommandpath("easy_install", cwd=py.path.local()) https://bitbucket.org/hpk42/tox/commits/c0e09d21c719/ Changeset: c0e09d21c719 User: ionelmc Date: 2014-03-25 01:59:17 Summary: Backed out changeset: 228071477cfb Affected #: 3 files diff -r e265b90ec9e10cf3bb236220466b82330ec3d6e3 -r c0e09d21c719c98131f9e3afdc972b65a3625cfa tests/test_venv.py --- a/tests/test_venv.py +++ b/tests/test_venv.py @@ -48,8 +48,11 @@ l = mocksession._pcalls assert len(l) >= 1 args = l[0].args - assert str(args[0]).endswith("virtualenv") + assert "virtualenv" in str(args[1]) if sys.platform != "win32": + # realpath is needed for stuff like the debian symlinks + assert py.path.local(sys.executable).realpath() \ + == py.path.local(args[0]).realpath() #assert Envconfig.toxworkdir in args assert venv.getcommandpath("easy_install", cwd=py.path.local()) interp = venv._getliveconfig().python @@ -318,7 +321,7 @@ l = mocksession._pcalls assert len(l) == 1 args = l[0].args - assert str(args[0]).endswith('virtualenv') + assert str(args[1]).endswith('virtualenv.py') l[:] = [] action = mocksession.newaction(venv, "hello") venv._install(["hello"], action=action) diff -r e265b90ec9e10cf3bb236220466b82330ec3d6e3 -r c0e09d21c719c98131f9e3afdc972b65a3625cfa tox/_config.py --- a/tox/_config.py +++ b/tox/_config.py @@ -357,7 +357,6 @@ ixserver = None name = self._replace_forced_dep(name, config) vc.deps.append(DepConfig(name, ixserver)) - vc.virtualenvbin = reader.getdefault(section, "virtualenvbin", "virtualenv") vc.distribute = reader.getbool(section, "distribute", False) vc.sitepackages = self.config.option.sitepackages or \ reader.getbool(section, "sitepackages", False) @@ -735,3 +734,4 @@ if 'HUDSON_URL' in os.environ: return 'jenkins' return None + diff -r e265b90ec9e10cf3bb236220466b82330ec3d6e3 -r c0e09d21c719c98131f9e3afdc972b65a3625cfa tox/_venv.py --- a/tox/_venv.py +++ b/tox/_venv.py @@ -178,8 +178,13 @@ if action is None: action = self.session.newaction(self, "create") + interpreters = self.envconfig.config.interpreters config_interpreter = self.getsupportedinterpreter() - args = [self.envconfig.virtualenvbin] + info = interpreters.get_info(executable=config_interpreter) + f, path, _ = py.std.imp.find_module("virtualenv") + f.close() + venvscript = path.rstrip("co") + args = [config_interpreter, str(venvscript)] if self.envconfig.distribute: args.append("--distribute") else: https://bitbucket.org/hpk42/tox/commits/b6a4811aefe7/ Changeset: b6a4811aefe7 User: ionelmc Date: 2014-03-25 02:19:30 Summary: Refix virtualenv calling - use `python -m virtualenv` instead. Affected #: 2 files diff -r c0e09d21c719c98131f9e3afdc972b65a3625cfa -r b6a4811aefe79c25f381424429c669725807b055 tests/test_venv.py --- a/tests/test_venv.py +++ b/tests/test_venv.py @@ -321,7 +321,7 @@ l = mocksession._pcalls assert len(l) == 1 args = l[0].args - assert str(args[1]).endswith('virtualenv.py') + assert str(args[1]).endswith('virtualenv') l[:] = [] action = mocksession.newaction(venv, "hello") venv._install(["hello"], action=action) diff -r c0e09d21c719c98131f9e3afdc972b65a3625cfa -r b6a4811aefe79c25f381424429c669725807b055 tox/_venv.py --- a/tox/_venv.py +++ b/tox/_venv.py @@ -178,13 +178,8 @@ if action is None: action = self.session.newaction(self, "create") - interpreters = self.envconfig.config.interpreters config_interpreter = self.getsupportedinterpreter() - info = interpreters.get_info(executable=config_interpreter) - f, path, _ = py.std.imp.find_module("virtualenv") - f.close() - venvscript = path.rstrip("co") - args = [config_interpreter, str(venvscript)] + args = [sys.executable, '-mvirtualenv'] if self.envconfig.distribute: args.append("--distribute") else: Repository URL: https://bitbucket.org/hpk42/tox/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Tue Mar 25 07:28:45 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Tue, 25 Mar 2014 06:28:45 -0000 Subject: [Pytest-commit] commit/tox: hpk42: fix issue158 and fix issue155: windows/virtualenv properly works now: Message-ID: <20140325062845.6849.30568@app13.ash-private.bitbucket.org> 1 new commit in tox: https://bitbucket.org/hpk42/tox/commits/a813c18ba50a/ Changeset: a813c18ba50a User: hpk42 Date: 2014-03-25 07:28:38 Summary: fix issue158 and fix issue155: windows/virtualenv properly works now: call virtualenv through "python -m virtualenv" with the same interpreter which invoked tox. Thanks Chris Withers, Ionel Maries Cristian. Affected #: 2 files diff -r b6a4811aefe79c25f381424429c669725807b055 -r a813c18ba50a86e19786eb5b67cc2c4f5bb82418 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -3,6 +3,10 @@ - fix issue162: don't list python 2.5 as compatibiliy/supported +- fix issue158 and fix issue155: windows/virtualenv properly works now: + call virtualenv through "python -m virtualenv" with the same + interpreter which invoked tox. Thanks Chris Withers, Ionel Maries Cristian. + 1.7.0 --------- diff -r b6a4811aefe79c25f381424429c669725807b055 -r a813c18ba50a86e19786eb5b67cc2c4f5bb82418 CONTRIBUTORS --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -22,3 +22,4 @@ Matt Good Mattieu Agopian Asmund Grammeltwedt +Ionel Maries Cristian Repository URL: https://bitbucket.org/hpk42/tox/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From issues-reply at bitbucket.org Tue Mar 25 09:17:08 2014 From: issues-reply at bitbucket.org (Ronny Pfannschmidt) Date: Tue, 25 Mar 2014 08:17:08 -0000 Subject: [Pytest-commit] Issue #489: pypy python 2.7 doesnt do the windows 2 linux newline rewriting in multiline strings (hpk42/pytest) Message-ID: <20140325081708.19739.10457@app04.ash-private.bitbucket.org> New issue 489: pypy python 2.7 doesnt do the windows 2 linux newline rewriting in multiline strings https://bitbucket.org/hpk42/pytest/issue/489/pypy-python-27-doesnt-do-the-windows-2 Ronny Pfannschmidt: ```ast.parse("'''\r\n'''").body[0].value.s``` yields different results on cpython 2.7 and pypy From issues-reply at bitbucket.org Tue Mar 25 13:35:23 2014 From: issues-reply at bitbucket.org (=?utf-8?q?Grzegorz_=C5=9Aliwi=C5=84ski?=) Date: Tue, 25 Mar 2014 12:35:23 -0000 Subject: [Pytest-commit] Issue #490: pytest_load_initial_conftests hook isn't documented (hpk42/pytest) Message-ID: <20140325123523.1198.93353@app08.ash-private.bitbucket.org> New issue 490: pytest_load_initial_conftests hook isn't documented https://bitbucket.org/hpk42/pytest/issue/490/pytest_load_initial_conftests-hook-isnt Grzegorz ?liwi?ski: Checking here: http://pytest.org/latest/plugins.html#initialization-command-line-and-configuration-hooks I see that pytest_load_initial_conftests isn't documented on the list there at all. From commits-noreply at bitbucket.org Tue Mar 25 14:44:44 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Tue, 25 Mar 2014 13:44:44 -0000 Subject: [Pytest-commit] commit/pytest: hpk42: fix issue490: include pytest_load_initial_conftests in documentation Message-ID: <20140325134444.4392.72873@app11.ash-private.bitbucket.org> 1 new commit in pytest: https://bitbucket.org/hpk42/pytest/commits/f750c24d6b3f/ Changeset: f750c24d6b3f User: hpk42 Date: 2014-03-25 14:43:58 Summary: fix issue490: include pytest_load_initial_conftests in documentation and improve docstring. Affected #: 3 files diff -r 585fe9c5488e8e7bd4a8048aeb578b95c5dc0b32 -r f750c24d6b3fe7f6e5c5f8e256b22e34e3d10e09 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -15,6 +15,9 @@ during collection/loading of test modules. Thanks to Marc Schlaich for the complete PR. +- fix issue490: include pytest_load_initial_conftests in documentation + and improve docstring. + 2.5.2 ----------------------------------- diff -r 585fe9c5488e8e7bd4a8048aeb578b95c5dc0b32 -r f750c24d6b3fe7f6e5c5f8e256b22e34e3d10e09 _pytest/hookspec.py --- a/_pytest/hookspec.py +++ b/_pytest/hookspec.py @@ -53,8 +53,8 @@ pytest_cmdline_main.firstresult = True def pytest_load_initial_conftests(args, early_config, parser): - """ implements loading initial conftests. - """ + """ implements the loading of initial conftest files ahead + of command line option parsing. """ def pytest_configure(config): """ called after command line options have been parsed diff -r 585fe9c5488e8e7bd4a8048aeb578b95c5dc0b32 -r f750c24d6b3fe7f6e5c5f8e256b22e34e3d10e09 doc/en/plugins.txt --- a/doc/en/plugins.txt +++ b/doc/en/plugins.txt @@ -309,6 +309,7 @@ .. currentmodule:: _pytest.hookspec +.. autofunction:: pytest_load_initial_conftests .. autofunction:: pytest_cmdline_preparse .. autofunction:: pytest_cmdline_parse .. autofunction:: pytest_namespace Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Wed Mar 26 07:16:03 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Wed, 26 Mar 2014 06:16:03 -0000 Subject: [Pytest-commit] commit/pytest: hpk42: fix issue472: clarify that ``pytest.config.getvalue()`` cannot work Message-ID: <20140326061603.8971.93383@app09.ash-private.bitbucket.org> 1 new commit in pytest: https://bitbucket.org/hpk42/pytest/commits/3577522e05cd/ Changeset: 3577522e05cd User: hpk42 Date: 2014-03-26 07:15:54 Summary: fix issue472: clarify that ``pytest.config.getvalue()`` cannot work if it's triggered ahead of command line parsing. Affected #: 2 files diff -r f750c24d6b3fe7f6e5c5f8e256b22e34e3d10e09 -r 3577522e05cd08a1816324793801af642efe285b CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -18,6 +18,9 @@ - fix issue490: include pytest_load_initial_conftests in documentation and improve docstring. +- fix issue472: clarify that ``pytest.config.getvalue()`` cannot work + if it's triggered ahead of command line parsing. + 2.5.2 ----------------------------------- diff -r f750c24d6b3fe7f6e5c5f8e256b22e34e3d10e09 -r 3577522e05cd08a1816324793801af642efe285b doc/en/skipping.txt --- a/doc/en/skipping.txt +++ b/doc/en/skipping.txt @@ -286,4 +286,9 @@ def test_function(...): pass +.. note:: + You cannot use ``pytest.config.getvalue()`` in code + imported before py.test's argument parsing takes place. For example, + ``conftest.py`` files are imported before command line parsing and thus + ``config.getvalue()`` will not execute correctly. Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Wed Mar 26 18:33:31 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Wed, 26 Mar 2014 17:33:31 -0000 Subject: [Pytest-commit] commit/pytest-xdist: hpk42: fix pytest/xdist issue485 (also depends on py-1.4.21.dev1): Message-ID: <20140326173331.3582.83729@app05.ash-private.bitbucket.org> 1 new commit in pytest-xdist: https://bitbucket.org/hpk42/pytest-xdist/commits/81566ffbb271/ Changeset: 81566ffbb271 User: hpk42 Date: 2014-03-26 18:33:09 Summary: fix pytest/xdist issue485 (also depends on py-1.4.21.dev1): attach stdout/stderr on --boxed processes that die. Affected #: 5 files diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +XXX +------------------------- + +- fix pytest/xdist issue485 (also depends on py-1.4.21.dev1): + attach stdout/stderr on --boxed processes that die. + 1.10 ------------------------- diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 setup.py --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ setup( name="pytest-xdist", - version='1.10', + version='1.11.dev1', description='py.test xdist plugin for distributed testing and loop-on-failing modes', long_description=open('README.txt').read(), license='MIT', diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 testing/test_boxed.py --- a/testing/test_boxed.py +++ b/testing/test_boxed.py @@ -1,6 +1,10 @@ -import py +import pytest +import os - at py.test.mark.skipif("not hasattr(os, 'fork')") +needsfork = pytest.mark.skipif(not hasattr(os, "fork"), + reason="os.fork required") + + at needsfork def test_functional_boxed(testdir): p1 = testdir.makepyfile(""" import os @@ -13,12 +17,32 @@ "*1 failed*" ]) + at needsfork +def test_functional_boxed_stdout(testdir): + p1 = testdir.makepyfile(""" + import os + import sys + def test_function(): + sys.stdout.write("hello\\n") + sys.stderr.write("world\\n") + os.kill(os.getpid(), 15) + """) + result = testdir.runpytest(p1, "--boxed") + result.stdout.fnmatch_lines(""" + *CRASHED* + *stdout* + hello + *stderr* + world + *1 failed* + """) + class TestOptionEffects: def test_boxed_option_default(self, testdir): tmpdir = testdir.tmpdir.ensure("subdir", dir=1) config = testdir.parseconfig() assert not config.option.boxed - py.test.importorskip("execnet") + pytest.importorskip("execnet") config = testdir.parseconfig('-d', tmpdir) assert not config.option.boxed diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 xdist/__init__.py --- a/xdist/__init__.py +++ b/xdist/__init__.py @@ -1,2 +1,2 @@ # -__version__ = '1.10' +__version__ = '1.11.dev1' diff -r b47ddaa7cc6ceb0345895db32f65861d450982f9 -r 81566ffbb2715bdd28499c808fd76e3315489908 xdist/plugin.py --- a/xdist/plugin.py +++ b/xdist/plugin.py @@ -118,10 +118,14 @@ def report_process_crash(item, result): path, lineno = item._getfslineno() - info = "%s:%s: running the test CRASHED with signal %d" %( - path, lineno, result.signal) + info = ("%s:%s: running the test CRASHED with signal %d" % + (path, lineno, result.signal)) from _pytest import runner call = runner.CallInfo(lambda: 0/0, "???") call.excinfo = info rep = runner.pytest_runtest_makereport(item, call) + if result.out: + rep.sections.append(("captured stdout", result.out)) + if result.err: + rep.sections.append(("captured stderr", result.err)) return rep Repository URL: https://bitbucket.org/hpk42/pytest-xdist/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Wed Mar 26 18:33:40 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Wed, 26 Mar 2014 17:33:40 -0000 Subject: [Pytest-commit] commit/py: hpk42: ForkedFunc now opens unbuffered stdout/stderr FDs Message-ID: <20140326173340.16395.17509@app10.ash-private.bitbucket.org> 1 new commit in py: https://bitbucket.org/hpk42/py/commits/f7c2b8011d27/ Changeset: f7c2b8011d27 User: hpk42 Date: 2014-03-26 18:29:53 Summary: ForkedFunc now opens unbuffered stdout/stderr FDs (helps to see output/err from a dying process) Affected #: 5 files diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +1.4.X +================================================== + +- ForkedFunc now opens unbuffered stdout/stderr FDs + (helps to see output/err from a dying process) + 1.4.20 ================================================== diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 py/__init__.py --- a/py/__init__.py +++ b/py/__init__.py @@ -8,7 +8,7 @@ (c) Holger Krekel and others, 2004-2013 """ -__version__ = '1.4.20' +__version__ = '1.4.21.dev1' from py import _apipkg diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 py/_process/forkedfunc.py --- a/py/_process/forkedfunc.py +++ b/py/_process/forkedfunc.py @@ -36,13 +36,11 @@ def _child(self, nice_level): # right now we need to call a function, but first we need to # map all IO that might happen - # make sure sys.stdout points to file descriptor one - sys.stdout = stdout = self.STDOUT.open('w') - sys.stdout.flush() + sys.stdout = stdout = open(str(self.STDOUT), "w", 0) fdstdout = stdout.fileno() if fdstdout != 1: os.dup2(fdstdout, 1) - sys.stderr = stderr = self.STDERR.open('w') + sys.stderr = stderr = open(str(self.STDERR), "w", 0) fdstderr = stderr.fileno() if fdstderr != 2: os.dup2(fdstderr, 2) diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 setup.py --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ name='py', description='library with cross-python path, ini-parsing, io, code, log facilities', long_description = open('README.txt').read(), - version='1.4.20', + version='1.4.21.dev1', url='http://pylib.readthedocs.org/', license='MIT license', platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], diff -r 978558572564d033591cc73c3426ee1b68fa62ca -r f7c2b8011d273c2f69872b662c6b5765356827a5 testing/process/test_forkedfunc.py --- a/testing/process/test_forkedfunc.py +++ b/testing/process/test_forkedfunc.py @@ -50,6 +50,12 @@ assert result.signal == 0 assert result.retval == 2 +def test_forkedfunc_on_fds_output(): + result = py.process.ForkedFunc(boxf3).waitfinish() + assert result.signal == 11 + assert result.out == "s" + + def test_forkedfunc_signal(): result = py.process.ForkedFunc(boxseg).waitfinish() assert result.retval is None @@ -120,6 +126,10 @@ os.write(2, "someerr".encode('ascii')) return 2 +def boxf3(): + os.write(1, "s".encode('ascii')) + os.kill(os.getpid(), 11) + def boxseg(): os.kill(os.getpid(), 11) Repository URL: https://bitbucket.org/hpk42/py/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Wed Mar 26 19:04:39 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Wed, 26 Mar 2014 18:04:39 -0000 Subject: [Pytest-commit] commit/pytest: 2 new changesets Message-ID: <20140326180439.31054.38705@app11.ash-private.bitbucket.org> 2 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/5e861a65e190/ Changeset: 5e861a65e190 Branch: help_show_args_with_equals_instead_of_space User: Marc Abramowitz Date: 2014-03-26 18:47:30 Summary: _pytest/config.py: In --help, show args with `=` instead of space. The `=` is better because it encourages folks to use the form that doesn't suffer from issue #436 (https://bitbucket.org/hpk42/pytest/issue/436), which can cause the arg to be treated as an "anchor" and used as the (unexpected) path for searching for conftest.py files. Affected #: 1 file diff -r 3577522e05cd08a1816324793801af642efe285b -r 5e861a65e190c4c87e19807fdaf5edfc5b117ed7 _pytest/config.py --- a/_pytest/config.py +++ b/_pytest/config.py @@ -436,7 +436,7 @@ if len(option) == 2 or option[2] == ' ': return_list.append(option) if option[2:] == short_long.get(option.replace('-', '')): - return_list.append(option) + return_list.append(option.replace(' ', '=')) action._formatted_action_invocation = ', '.join(return_list) return action._formatted_action_invocation https://bitbucket.org/hpk42/pytest/commits/071018d4de31/ Changeset: 071018d4de31 User: hpk42 Date: 2014-03-26 19:04:35 Summary: Merged in msabramo/pytest/help_show_args_with_equals_instead_of_space (pull request #130) _pytest/config.py: In --help, show args with `=` instead of space. Affected #: 1 file diff -r 3577522e05cd08a1816324793801af642efe285b -r 071018d4de31ec8d34b7663e50c4a9c633db12a9 _pytest/config.py --- a/_pytest/config.py +++ b/_pytest/config.py @@ -436,7 +436,7 @@ if len(option) == 2 or option[2] == ' ': return_list.append(option) if option[2:] == short_long.get(option.replace('-', '')): - return_list.append(option) + return_list.append(option.replace(' ', '=')) action._formatted_action_invocation = ', '.join(return_list) return action._formatted_action_invocation Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Wed Mar 26 19:05:52 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Wed, 26 Mar 2014 18:05:52 -0000 Subject: [Pytest-commit] commit/pytest: 4 new changesets Message-ID: <20140326180552.22346.46020@app01.ash-private.bitbucket.org> 4 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/b79c1f94f7d6/ Changeset: b79c1f94f7d6 User: cgilling Date: 2014-03-03 19:36:59 Summary: Fix to work properly when @patch is used with new not equal to DEFAULT also updated test_mock to include this situation Affected #: 2 files diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r b79c1f94f7d65333ce68d5518f369d599e31a60e _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1836,7 +1836,13 @@ if startindex is None: startindex = inspect.ismethod(function) and 1 or 0 if realfunction != function: - startindex += len(getattr(function, "patchings", [])) + try: + from mock import DEFAULT + for patching in getattr(function, "patchings", []): + if not patching.attribute_name and patching.new is DEFAULT: + startindex += 1 + except ImportError: + startindex += len(getattr(function, "patchings", [])) function = realfunction argnames = inspect.getargs(py.code.getrawcode(function))[0] defaults = getattr(function, 'func_defaults', diff -r 3ba7553c51cb0a85333f73be76aeffb9733450a6 -r b79c1f94f7d65333ce68d5518f369d599e31a60e testing/python/integration.py --- a/testing/python/integration.py +++ b/testing/python/integration.py @@ -124,8 +124,11 @@ def test_hello(self, abspath): os.path.abspath("hello") abspath.assert_any_call("hello") + def mock_basename(path): + return "mock_basename" @mock.patch("os.path.abspath") @mock.patch("os.path.normpath") + @mock.patch("os.path.basename",new=mock_basename) def test_someting(normpath, abspath, tmpdir): abspath.return_value = "this" os.path.normpath(os.path.abspath("hello")) https://bitbucket.org/hpk42/pytest/commits/c93d674ac9f9/ Changeset: c93d674ac9f9 User: cgilling Date: 2014-03-26 17:27:33 Summary: change try/except to sys.module.get and a conditional Affected #: 1 file diff -r b79c1f94f7d65333ce68d5518f369d599e31a60e -r c93d674ac9f9b838d200fe1f82cc4602f124fb16 _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1836,12 +1836,12 @@ if startindex is None: startindex = inspect.ismethod(function) and 1 or 0 if realfunction != function: - try: - from mock import DEFAULT + mock_default = sys.modules.get('mock.DEFAULT') + if mock_default: for patching in getattr(function, "patchings", []): if not patching.attribute_name and patching.new is DEFAULT: startindex += 1 - except ImportError: + else: startindex += len(getattr(function, "patchings", [])) function = realfunction argnames = inspect.getargs(py.code.getrawcode(function))[0] https://bitbucket.org/hpk42/pytest/commits/daae64b3edbd/ Changeset: daae64b3edbd User: cgilling Date: 2014-03-26 17:36:02 Summary: use sys.modules.get correctly and reference DEFAULT with respect to it Affected #: 1 file diff -r c93d674ac9f9b838d200fe1f82cc4602f124fb16 -r daae64b3edbd8d604112dfd3340b60af6c820db0 _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1836,10 +1836,10 @@ if startindex is None: startindex = inspect.ismethod(function) and 1 or 0 if realfunction != function: - mock_default = sys.modules.get('mock.DEFAULT') - if mock_default: + mock = sys.modules.get('mock') + if mock is not None: for patching in getattr(function, "patchings", []): - if not patching.attribute_name and patching.new is DEFAULT: + if not patching.attribute_name and patching.new is mock.DEFAULT: startindex += 1 else: startindex += len(getattr(function, "patchings", [])) https://bitbucket.org/hpk42/pytest/commits/9f5aad82d1cf/ Changeset: 9f5aad82d1cf User: hpk42 Date: 2014-03-26 19:05:46 Summary: Merged in cgilling/pytest (pull request #123) Fix to work properly when @patch is used with new not equal to DEFAULT Affected #: 2 files diff -r 071018d4de31ec8d34b7663e50c4a9c633db12a9 -r 9f5aad82d1cf661b9a5b6ddfeb1ca945b3bd21de _pytest/python.py --- a/_pytest/python.py +++ b/_pytest/python.py @@ -1841,7 +1841,13 @@ if startindex is None: startindex = inspect.ismethod(function) and 1 or 0 if realfunction != function: - startindex += len(getattr(function, "patchings", [])) + mock = sys.modules.get('mock') + if mock is not None: + for patching in getattr(function, "patchings", []): + if not patching.attribute_name and patching.new is mock.DEFAULT: + startindex += 1 + else: + startindex += len(getattr(function, "patchings", [])) function = realfunction argnames = inspect.getargs(py.code.getrawcode(function))[0] defaults = getattr(function, 'func_defaults', diff -r 071018d4de31ec8d34b7663e50c4a9c633db12a9 -r 9f5aad82d1cf661b9a5b6ddfeb1ca945b3bd21de testing/python/integration.py --- a/testing/python/integration.py +++ b/testing/python/integration.py @@ -124,8 +124,11 @@ def test_hello(self, abspath): os.path.abspath("hello") abspath.assert_any_call("hello") + def mock_basename(path): + return "mock_basename" @mock.patch("os.path.abspath") @mock.patch("os.path.normpath") + @mock.patch("os.path.basename",new=mock_basename) def test_someting(normpath, abspath, tmpdir): abspath.return_value = "this" os.path.normpath(os.path.abspath("hello")) Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Wed Mar 26 19:37:58 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Wed, 26 Mar 2014 18:37:58 -0000 Subject: [Pytest-commit] commit/pytest: 2 new changesets Message-ID: <20140326183758.26182.90686@app02.ash-private.bitbucket.org> 2 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/29366ebd2c3c/ Changeset: 29366ebd2c3c User: hpk42 Date: 2014-03-26 19:06:56 Summary: add changelog: merge PR123: improved integration with mock.patch decorator on tests. Affected #: 2 files diff -r 9f5aad82d1cf661b9a5b6ddfeb1ca945b3bd21de -r 29366ebd2c3c4c201689fbd97ea5cb3b4f41103a AUTHORS --- a/AUTHORS +++ b/AUTHORS @@ -39,3 +39,4 @@ Piotr Banaszkiewicz Jurko Gospodneti? Marc Schlaich +Christopher Gilling diff -r 9f5aad82d1cf661b9a5b6ddfeb1ca945b3bd21de -r 29366ebd2c3c4c201689fbd97ea5cb3b4f41103a CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -21,6 +21,8 @@ - fix issue472: clarify that ``pytest.config.getvalue()`` cannot work if it's triggered ahead of command line parsing. +- merge PR123: improved integration with mock.patch decorator on tests. + 2.5.2 ----------------------------------- https://bitbucket.org/hpk42/pytest/commits/f730b565779a/ Changeset: f730b565779a User: hpk42 Date: 2014-03-26 19:37:49 Summary: extend test Affected #: 2 files diff -r 29366ebd2c3c4c201689fbd97ea5cb3b4f41103a -r f730b565779adea665f10e678baee02687f1a3df testing/python/integration.py --- a/testing/python/integration.py +++ b/testing/python/integration.py @@ -128,11 +128,12 @@ return "mock_basename" @mock.patch("os.path.abspath") @mock.patch("os.path.normpath") - @mock.patch("os.path.basename",new=mock_basename) + @mock.patch("os.path.basename", new=mock_basename) def test_someting(normpath, abspath, tmpdir): abspath.return_value = "this" os.path.normpath(os.path.abspath("hello")) normpath.assert_any_call("this") + assert os.path.basename("123") == "mock_basename" """) reprec = testdir.inline_run() reprec.assertoutcome(passed=2) diff -r 29366ebd2c3c4c201689fbd97ea5cb3b4f41103a -r f730b565779adea665f10e678baee02687f1a3df tox.ini --- a/tox.ini +++ b/tox.ini @@ -7,6 +7,7 @@ commands= py.test --lsof -rfsxX --junitxml={envlogdir}/junit-{envname}.xml [] deps= nose + mock [testenv:genscript] changedir=. Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Thu Mar 27 06:40:40 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Thu, 27 Mar 2014 05:40:40 -0000 Subject: [Pytest-commit] commit/pytest: 2 new changesets Message-ID: <20140327054040.5230.47289@app02.ash-private.bitbucket.org> 2 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/07b30d44418f/ Changeset: 07b30d44418f Branch: nloadholtes/slight-change-to-the-wording-for-readabi-1395890493571 User: nloadholtes Date: 2014-03-27 04:21:58 Summary: Slight change to the wording for readability Affected #: 1 file diff -r f730b565779adea665f10e678baee02687f1a3df -r 07b30d44418fdd5bdc8860af16568a71f03be8c9 doc/en/goodpractises.txt --- a/doc/en/goodpractises.txt +++ b/doc/en/goodpractises.txt @@ -68,7 +68,7 @@ - **avoid "__init__.py" files in your test directories**. This way your tests can run easily against an installed version - of ``mypkg``, independently from if the installed package contains + of ``mypkg``, independently from the installed package if it contains the tests or not. - With inlined tests you might put ``__init__.py`` into test https://bitbucket.org/hpk42/pytest/commits/3159114182b2/ Changeset: 3159114182b2 User: hpk42 Date: 2014-03-27 06:40:35 Summary: Merged in nloadholtes/pytest/nloadholtes/slight-change-to-the-wording-for-readabi-1395890493571 (pull request #131) Slight change to the wording for readability Affected #: 1 file diff -r f730b565779adea665f10e678baee02687f1a3df -r 3159114182b260a16ebfa298a3c878ab4cda3cd4 doc/en/goodpractises.txt --- a/doc/en/goodpractises.txt +++ b/doc/en/goodpractises.txt @@ -68,7 +68,7 @@ - **avoid "__init__.py" files in your test directories**. This way your tests can run easily against an installed version - of ``mypkg``, independently from if the installed package contains + of ``mypkg``, independently from the installed package if it contains the tests or not. - With inlined tests you might put ``__init__.py`` into test Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Thu Mar 27 13:54:21 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Thu, 27 Mar 2014 12:54:21 -0000 Subject: [Pytest-commit] commit/pytest: RonnyPfannschmidt: xfailing test for issue 412 Message-ID: <20140327125421.500.19441@app05.ash-private.bitbucket.org> 1 new commit in pytest: https://bitbucket.org/hpk42/pytest/commits/b5fcd2bfc60e/ Changeset: b5fcd2bfc60e User: RonnyPfannschmidt Date: 2014-03-27 13:53:59 Summary: xfailing test for issue 412 Affected #: 2 files diff -r 3159114182b260a16ebfa298a3c878ab4cda3cd4 -r b5fcd2bfc60ef300e7c8ceef12d97f76a61f7e3a .hgignore --- a/.hgignore +++ b/.hgignore @@ -9,6 +9,7 @@ bin/ include/ .Python/ +.env/ # These lines are suggested according to the svn:ignore property # Feel free to enable them by uncommenting them @@ -27,6 +28,7 @@ *.egg-info issue/ env/ +env3/ 3rdparty/ .tox .cache diff -r 3159114182b260a16ebfa298a3c878ab4cda3cd4 -r b5fcd2bfc60ef300e7c8ceef12d97f76a61f7e3a testing/test_capture.py --- a/testing/test_capture.py +++ b/testing/test_capture.py @@ -533,6 +533,24 @@ assert 'hello19' not in result.stdout.str() + at pytest.mark.xfail(reason='demonstrate #412') +def test_capture_badoutput(testdir): + testdir.makepyfile(""" + import os + + def test_func(): + omg = bytearray([1,129,1]) + os.write(1, omg) + assert 0 + """) + result = testdir.runpytest('--cap=fd') + #this fails on python3 - fnmatch first for debugging + result.stdout.fnmatch_lines([ + '*1 failed*', + ]) + assert result.ret == 1 + + def test_capture_early_option_parsing(testdir): testdir.makeconftest(""" def pytest_runtest_setup(): Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Thu Mar 27 14:01:54 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Thu, 27 Mar 2014 13:01:54 -0000 Subject: [Pytest-commit] commit/pytest: RonnyPfannschmidt: condition for python3 of the xfailing test for 412 Message-ID: <20140327130154.9809.80252@app01.ash-private.bitbucket.org> 1 new commit in pytest: https://bitbucket.org/hpk42/pytest/commits/5ae1d4e50c63/ Changeset: 5ae1d4e50c63 User: RonnyPfannschmidt Date: 2014-03-27 14:01:38 Summary: condition for python3 of the xfailing test for 412 Affected #: 1 file diff -r b5fcd2bfc60ef300e7c8ceef12d97f76a61f7e3a -r 5ae1d4e50c635e3512be6cc8c16314251328d252 testing/test_capture.py --- a/testing/test_capture.py +++ b/testing/test_capture.py @@ -533,7 +533,7 @@ assert 'hello19' not in result.stdout.str() - at pytest.mark.xfail(reason='demonstrate #412') + at pytest.mark.xfail(sys.version_info>=(3,), reason='demonstrate #412') def test_capture_badoutput(testdir): testdir.makepyfile(""" import os Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From issues-reply at bitbucket.org Thu Mar 27 14:22:22 2014 From: issues-reply at bitbucket.org (=?utf-8?q?Thomas_G=C3=BCttler?=) Date: Thu, 27 Mar 2014 13:22:22 -0000 Subject: [Pytest-commit] Issue #491: docs: how to add runtests.py to distribution (hpk42/pytest) Message-ID: <20140327132222.24630.70421@app04.ash-private.bitbucket.org> New issue 491: docs: how to add runtests.py to distribution https://bitbucket.org/hpk42/pytest/issue/491/docs-how-to-add-runtestspy-to-distribution Thomas G?ttler: thank you for the great documentation. I found something that could be improved: Please explain how to integrate the runtests.py file into a distribution: http://pytest.org/latest/goodpractises.html#integrating-with-distutils-python-setup-py-test {{{ Integrating with distutils / python setup.py test You can integrate test runs into your distutils or setuptools based project. Use the genscript method to generate a standalone pytest script: py.test --genscript=runtests.py }}} From commits-noreply at bitbucket.org Fri Mar 28 09:11:03 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 28 Mar 2014 08:11:03 -0000 Subject: [Pytest-commit] commit/pytest: 3 new changesets Message-ID: <20140328081103.6648.83088@app03.ash-private.bitbucket.org> 3 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/250c3345c9fe/ Changeset: 250c3345c9fe Branch: sys_meta_path_remove_hook_only_if_present User: Marc Abramowitz Date: 2014-03-28 08:33:12 Summary: Only try to remove hook from sys.meta_path if it's present Prevent error on exit if some code messes with sys.meta_path and removes the assertionrewrite hook (CaptureMock seems to do this): File "/Users/marca/dev/hg-repos/pytest/_pytest/assertion/__init__.py", line 64, in pytest_unconfigure sys.meta_path.remove(hook) ValueError: list.remove(x): x not in list Affected #: 2 files diff -r 5ae1d4e50c635e3512be6cc8c16314251328d252 -r 250c3345c9fee00ba5db3c443e0e596fd3bdf870 _pytest/assertion/__init__.py --- a/_pytest/assertion/__init__.py +++ b/_pytest/assertion/__init__.py @@ -60,7 +60,7 @@ def pytest_unconfigure(config): hook = config._assertstate.hook - if hook is not None: + if hook is not None and hook in sys.meta_path: sys.meta_path.remove(hook) def pytest_collection(session): diff -r 5ae1d4e50c635e3512be6cc8c16314251328d252 -r 250c3345c9fee00ba5db3c443e0e596fd3bdf870 testing/test_assertrewrite.py --- a/testing/test_assertrewrite.py +++ b/testing/test_assertrewrite.py @@ -482,6 +482,22 @@ assert "@py_builtins" in globals()""".replace("\n", "\r\n"), "wb") assert testdir.runpytest().ret == 0 + def test_sys_meta_path_munged(self, testdir): + # In some versions, if any code messed with sys.meta_path and removed + # the assertionrewrite import hook (one example is CaptureMock), it + # would cause an error on py.test exit: + # + # File "/Users/marca/dev/hg-repos/pytest/_pytest/assertion/__init__.py", line 64, in pytest_unconfigure + # sys.meta_path.remove(hook) + # ValueError: list.remove(x): x not in list + # + testdir.tmpdir.join("test_meta_path.py").write("""#!/usr/bin/env python +def test_meta_path(): + import sys + sys.meta_path = [] + assert True""".replace("\n", "\r\n"), "wb") + assert testdir.runpytest().ret == 0 + def test_write_pyc(self, testdir, tmpdir, monkeypatch): from _pytest.assertion.rewrite import _write_pyc from _pytest.assertion import AssertionState https://bitbucket.org/hpk42/pytest/commits/b156b9799705/ Changeset: b156b9799705 Branch: sys_meta_path_remove_hook_only_if_present User: Marc Abramowitz Date: 2014-03-28 09:03:52 Summary: test_sys_meta_path_munged: Simplify with makepyfile Affected #: 1 file diff -r 250c3345c9fee00ba5db3c443e0e596fd3bdf870 -r b156b9799705667c88b127453edd5dfa401302b4 testing/test_assertrewrite.py --- a/testing/test_assertrewrite.py +++ b/testing/test_assertrewrite.py @@ -483,19 +483,9 @@ assert testdir.runpytest().ret == 0 def test_sys_meta_path_munged(self, testdir): - # In some versions, if any code messed with sys.meta_path and removed - # the assertionrewrite import hook (one example is CaptureMock), it - # would cause an error on py.test exit: - # - # File "/Users/marca/dev/hg-repos/pytest/_pytest/assertion/__init__.py", line 64, in pytest_unconfigure - # sys.meta_path.remove(hook) - # ValueError: list.remove(x): x not in list - # - testdir.tmpdir.join("test_meta_path.py").write("""#!/usr/bin/env python -def test_meta_path(): - import sys - sys.meta_path = [] - assert True""".replace("\n", "\r\n"), "wb") + testdir.makepyfile(""" + def test_meta_path(): + import sys; sys.meta_path = []""") assert testdir.runpytest().ret == 0 def test_write_pyc(self, testdir, tmpdir, monkeypatch): https://bitbucket.org/hpk42/pytest/commits/3f7abe3da427/ Changeset: 3f7abe3da427 User: hpk42 Date: 2014-03-28 09:10:58 Summary: Merged in msabramo/pytest/sys_meta_path_remove_hook_only_if_present (pull request #133) Only try to remove hook from sys.meta_path if it's present Affected #: 2 files diff -r 5ae1d4e50c635e3512be6cc8c16314251328d252 -r 3f7abe3da42704c757ea437f14bd8caf5b8f04c7 _pytest/assertion/__init__.py --- a/_pytest/assertion/__init__.py +++ b/_pytest/assertion/__init__.py @@ -60,7 +60,7 @@ def pytest_unconfigure(config): hook = config._assertstate.hook - if hook is not None: + if hook is not None and hook in sys.meta_path: sys.meta_path.remove(hook) def pytest_collection(session): diff -r 5ae1d4e50c635e3512be6cc8c16314251328d252 -r 3f7abe3da42704c757ea437f14bd8caf5b8f04c7 testing/test_assertrewrite.py --- a/testing/test_assertrewrite.py +++ b/testing/test_assertrewrite.py @@ -482,6 +482,12 @@ assert "@py_builtins" in globals()""".replace("\n", "\r\n"), "wb") assert testdir.runpytest().ret == 0 + def test_sys_meta_path_munged(self, testdir): + testdir.makepyfile(""" + def test_meta_path(): + import sys; sys.meta_path = []""") + assert testdir.runpytest().ret == 0 + def test_write_pyc(self, testdir, tmpdir, monkeypatch): from _pytest.assertion.rewrite import _write_pyc from _pytest.assertion import AssertionState Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Fri Mar 28 14:46:38 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 28 Mar 2014 13:46:38 -0000 Subject: [Pytest-commit] commit/pytest: 3 new changesets Message-ID: <20140328134638.31241.88447@app10.ash-private.bitbucket.org> 3 new commits in pytest: https://bitbucket.org/hpk42/pytest/commits/b1c669731469/ Changeset: b1c669731469 User: dangra Date: 2014-03-28 03:57:18 Summary: no need for im_func and it does not exists in python3 Affected #: 1 file diff -r 5ae1d4e50c635e3512be6cc8c16314251328d252 -r b1c669731469d67efd4419cfc6863162bb6ae11e _pytest/unittest.py --- a/_pytest/unittest.py +++ b/_pytest/unittest.py @@ -154,7 +154,7 @@ if isinstance(item, TestCaseFunction): if 'twisted.trial.unittest' in sys.modules: ut = sys.modules['twisted.python.failure'] - Failure__init__ = ut.Failure.__init__.im_func + Failure__init__ = ut.Failure.__init__ check_testcase_implements_trial_reporter() def excstore(self, exc_value=None, exc_type=None, exc_tb=None, captureVars=None): https://bitbucket.org/hpk42/pytest/commits/6fa555178c17/ Changeset: 6fa555178c17 User: dangra Date: 2014-03-28 14:44:51 Summary: add py33-trial tox environment Affected #: 1 file diff -r b1c669731469d67efd4419cfc6863162bb6ae11e -r 6fa555178c17d485f18cc54f4a5947486266841d tox.ini --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] distshare={homedir}/.tox/distshare -envlist=flakes,py26,py27,pypy,py27-pexpect,py33-pexpect,py27-nobyte,py32,py33,py27-xdist,py33-xdist,trial +envlist=flakes,py26,py27,pypy,py27-pexpect,py33-pexpect,py27-nobyte,py32,py33,py27-xdist,py33-xdist,py27-trial,py33-trial [testenv] changedir=testing @@ -61,12 +61,22 @@ py.test -n3 -rfsxX \ --junitxml={envlogdir}/junit-{envname}.xml {posargs:testing} -[testenv:trial] +[testenv:py27-trial] changedir=. +basepython=python2.7 deps=twisted commands= py.test -rsxf \ --junitxml={envlogdir}/junit-{envname}.xml {posargs:testing/test_unittest.py} + +[testenv:py33-trial] +changedir=. +basepython=python3.3 +deps={[testenv:py27-trial]deps} +commands= + py.test -rsxf \ + --junitxml={envlogdir}/junit-{envname}.xml {posargs:testing/test_unittest.py} + [testenv:doctest] changedir=. commands=py.test --doctest-modules _pytest https://bitbucket.org/hpk42/pytest/commits/fe460df3ae11/ Changeset: fe460df3ae11 User: hpk42 Date: 2014-03-28 14:46:34 Summary: Merged in dangra/pytest (pull request #132) no need for im_func and it does not exists in python3 Affected #: 2 files diff -r 3f7abe3da42704c757ea437f14bd8caf5b8f04c7 -r fe460df3ae1144ac4239cef0b5203d5040776bed _pytest/unittest.py --- a/_pytest/unittest.py +++ b/_pytest/unittest.py @@ -154,7 +154,7 @@ if isinstance(item, TestCaseFunction): if 'twisted.trial.unittest' in sys.modules: ut = sys.modules['twisted.python.failure'] - Failure__init__ = ut.Failure.__init__.im_func + Failure__init__ = ut.Failure.__init__ check_testcase_implements_trial_reporter() def excstore(self, exc_value=None, exc_type=None, exc_tb=None, captureVars=None): diff -r 3f7abe3da42704c757ea437f14bd8caf5b8f04c7 -r fe460df3ae1144ac4239cef0b5203d5040776bed tox.ini --- a/tox.ini +++ b/tox.ini @@ -1,6 +1,6 @@ [tox] distshare={homedir}/.tox/distshare -envlist=flakes,py26,py27,pypy,py27-pexpect,py33-pexpect,py27-nobyte,py32,py33,py27-xdist,py33-xdist,trial +envlist=flakes,py26,py27,pypy,py27-pexpect,py33-pexpect,py27-nobyte,py32,py33,py27-xdist,py33-xdist,py27-trial,py33-trial [testenv] changedir=testing @@ -61,12 +61,22 @@ py.test -n3 -rfsxX \ --junitxml={envlogdir}/junit-{envname}.xml {posargs:testing} -[testenv:trial] +[testenv:py27-trial] changedir=. +basepython=python2.7 deps=twisted commands= py.test -rsxf \ --junitxml={envlogdir}/junit-{envname}.xml {posargs:testing/test_unittest.py} + +[testenv:py33-trial] +changedir=. +basepython=python3.3 +deps={[testenv:py27-trial]deps} +commands= + py.test -rsxf \ + --junitxml={envlogdir}/junit-{envname}.xml {posargs:testing/test_unittest.py} + [testenv:doctest] changedir=. commands=py.test --doctest-modules _pytest Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Fri Mar 28 14:49:44 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 28 Mar 2014 13:49:44 -0000 Subject: [Pytest-commit] commit/pytest: hpk42: fix issue483: trial/py33 works now properly. Thanks Daniel Grana for PR. Message-ID: <20140328134944.32722.55127@app15.ash-private.bitbucket.org> 1 new commit in pytest: https://bitbucket.org/hpk42/pytest/commits/3410ee5d359e/ Changeset: 3410ee5d359e User: hpk42 Date: 2014-03-28 14:47:34 Summary: fix issue483: trial/py33 works now properly. Thanks Daniel Grana for PR. Affected #: 2 files diff -r fe460df3ae1144ac4239cef0b5203d5040776bed -r 3410ee5d359e36d0e871f4c687fcfaa20fc066b4 AUTHORS --- a/AUTHORS +++ b/AUTHORS @@ -40,3 +40,4 @@ Jurko Gospodneti? Marc Schlaich Christopher Gilling +Daniel Grana diff -r fe460df3ae1144ac4239cef0b5203d5040776bed -r 3410ee5d359e36d0e871f4c687fcfaa20fc066b4 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -23,6 +23,8 @@ - merge PR123: improved integration with mock.patch decorator on tests. +- fix issue483: trial/py33 works now properly. Thanks Daniel Grana for PR. + 2.5.2 ----------------------------------- Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Fri Mar 28 14:51:08 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 28 Mar 2014 13:51:08 -0000 Subject: [Pytest-commit] commit/pytest: hpk42: fix toxenv spec for py33-pexpect, thanks Daniel Grana. Message-ID: <20140328135108.15896.87633@app07.ash-private.bitbucket.org> 1 new commit in pytest: https://bitbucket.org/hpk42/pytest/commits/d4b093bc36df/ Changeset: d4b093bc36df User: hpk42 Date: 2014-03-28 14:51:00 Summary: fix toxenv spec for py33-pexpect, thanks Daniel Grana. Affected #: 1 file diff -r 3410ee5d359e36d0e871f4c687fcfaa20fc066b4 -r d4b093bc36df977c017b43286953286542c788cf tox.ini --- a/tox.ini +++ b/tox.ini @@ -45,7 +45,7 @@ [testenv:py33-pexpect] changedir=testing -basepython=python2.7 +basepython=python3.3 deps={[testenv:py27-pexpect]deps} commands= py.test -rfsxX test_pdb.py test_terminal.py test_unittest.py Repository URL: https://bitbucket.org/hpk42/pytest/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From commits-noreply at bitbucket.org Fri Mar 28 15:32:36 2014 From: commits-noreply at bitbucket.org (commits-noreply at bitbucket.org) Date: Fri, 28 Mar 2014 14:32:36 -0000 Subject: [Pytest-commit] commit/tox: 3 new changesets Message-ID: <20140328143236.11407.26808@app01.ash-private.bitbucket.org> 3 new commits in tox: https://bitbucket.org/hpk42/tox/commits/c7155565c89d/ Changeset: c7155565c89d User: hpk42 Date: 2014-03-28 15:19:10 Summary: 1.7.1 quick bugfix release Affected #: 4 files diff -r a813c18ba50a86e19786eb5b67cc2c4f5bb82418 -r c7155565c89d1bb3684c881ca774d921188223a0 CHANGELOG --- a/CHANGELOG +++ b/CHANGELOG @@ -1,4 +1,4 @@ -XXX +1.7.1 --------- - fix issue162: don't list python 2.5 as compatibiliy/supported diff -r a813c18ba50a86e19786eb5b67cc2c4f5bb82418 -r c7155565c89d1bb3684c881ca774d921188223a0 README.rst --- a/README.rst +++ b/README.rst @@ -21,5 +21,5 @@ have fun, -holger krekel, January 2014 +holger krekel, 2014 diff -r a813c18ba50a86e19786eb5b67cc2c4f5bb82418 -r c7155565c89d1bb3684c881ca774d921188223a0 setup.py --- a/setup.py +++ b/setup.py @@ -28,7 +28,7 @@ description='virtualenv-based automation of test activities', long_description=open("README.rst").read(), url='http://tox.testrun.org/', - version='1.7.0', + version='1.7.1', license='http://opensource.org/licenses/MIT', platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'], author='holger krekel', diff -r a813c18ba50a86e19786eb5b67cc2c4f5bb82418 -r c7155565c89d1bb3684c881ca774d921188223a0 tox/__init__.py --- a/tox/__init__.py +++ b/tox/__init__.py @@ -1,5 +1,5 @@ # -__version__ = '1.7.0' +__version__ = '1.7.1' class exception: class Error(Exception): https://bitbucket.org/hpk42/tox/commits/d4d44f933aec/ Changeset: d4d44f933aec User: hpk42 Date: 2014-03-28 15:31:58 Summary: Added tag 1.7.1 for changeset c7155565c89d Affected #: 1 file diff -r c7155565c89d1bb3684c881ca774d921188223a0 -r d4d44f933aec4f11c6568c906856ebb95b7d4dac .hgtags --- a/.hgtags +++ b/.hgtags @@ -16,3 +16,4 @@ 33e5e5dff406e699893a65ecd5044d3eee35b69b 1.6.0 2e580ee6feea934cc2e683635abded27c0de0be9 1.6.1 5b4e536b8d3810c791b742b2a8723c53b8d3d720 1.7.0 +c7155565c89d1bb3684c881ca774d921188223a0 1.7.1 https://bitbucket.org/hpk42/tox/commits/da5a5817e35d/ Changeset: da5a5817e35d User: hpk42 Date: 2014-03-28 15:32:27 Summary: bump doc version to 1.7.1 Affected #: 1 file diff -r d4d44f933aec4f11c6568c906856ebb95b7d4dac -r da5a5817e35ddb4b63219b6194f4f215593525fd doc/conf.py --- a/doc/conf.py +++ b/doc/conf.py @@ -48,7 +48,7 @@ # built documents. # # The short X.Y version. -release = version = "1.7.0" +release = version = "1.7.1" # The full version, including alpha/beta/rc tags. # The language for content autogenerated by Sphinx. Refer to documentation Repository URL: https://bitbucket.org/hpk42/tox/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. From issues-reply at bitbucket.org Fri Mar 28 18:16:15 2014 From: issues-reply at bitbucket.org (Marc Abramowitz) Date: Fri, 28 Mar 2014 17:16:15 -0000 Subject: [Pytest-commit] Issue #492: File descriptor leakage (hpk42/pytest) Message-ID: <20140328171615.27654.59639@app13.ash-private.bitbucket.org> New issue 492: File descriptor leakage https://bitbucket.org/hpk42/pytest/issue/492/file-descriptor-leakage Marc Abramowitz: I am periodically seeing failures due to file descriptor leakage in both builds on Drone.io (e.g.: https://drone.io/bitbucket.org/msabramo/pytest/6) and locally using `tox`: >From https://drone.io/bitbucket.org/msabramo/pytest/6: ``` ==================================== ERRORS ==================================== ERROR at teardown of TestStdCaptureFD.test_capturing_readouterr_decode_error_handling item = __multicall__ = , 'item': }> def pytest_runtest_teardown(item, __multicall__): item.config._basedir.chdir() if hasattr(item.config, '_numfiles'): x = __multicall__.execute() > check_open_files(item.config) conftest.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = <_pytest.config.Config object at 0x7f9230096290> def check_open_files(config): out2 = py.process.cmdexec("lsof -p %d" % pid) lines2 = getopenfiles(out2) if len(lines2) > config._numfiles + 3: error = [] error.append("***** %s FD leackage detected" % (len(lines2)-config._numfiles)) error.extend(lines2) error.append(error[0]) # update numfile so that the overall test run continuess config._numfiles = len(lines2) > raise AssertionError("\n".join(error)) E AssertionError: ***** 4 FD leackage detected E py.test 1283 ubuntu 0r CHR 1,3 0t0 1445164 /dev/null E py.test 1283 ubuntu 8r REG 253,0 3 3929 /tmp/pytest-0/testdir/test_writeorg0/test_writeorg.py E py.test 1283 ubuntu 9r CHR 1,3 0t0 1445164 /dev/null E py.test 1283 ubuntu 11r CHR 1,3 0t0 1445164 /dev/null E ***** 4 FD leackage detected conftest.py:44: AssertionError ``` >From a local `tox` run: ``` ==================================================================================== ERRORS ==================================================================================== _______________________________________________________ ERROR at teardown of TestStdCaptureFD.test_capturing_done_simple _______________________________________________________ item = __multicall__ = , 'nextitem': }> def pytest_runtest_teardown(item, __multicall__): item.config._basedir.chdir() if hasattr(item.config, '_numfiles'): x = __multicall__.execute() > check_open_files(item.config) conftest.py:50: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ config = <_pytest.config.Config object at 0x1013c4350> def check_open_files(config): out2 = py.process.cmdexec("lsof -p %d" % pid) lines2 = getopenfiles(out2) if len(lines2) > config._numfiles + 3: error = [] error.append("***** %s FD leackage detected" % (len(lines2)-config._numfiles)) error.extend(lines2) error.append(error[0]) # update numfile so that the overall test run continuess config._numfiles = len(lines2) > raise AssertionError("\n".join(error)) E AssertionError: ***** 4 FD leackage detected E python3.3 99001 marca 0r CHR 3,2 0t0 305 /dev/null E python3.3 99001 marca 1u REG 1,2 0 29288704 /private/var/folders/gw/w0clrs515zx9x_55zgtpv4mm0000gp/T/tmpn1zy1r E python3.3 99001 marca 2u REG 1,2 0 29288705 /private/var/folders/gw/w0clrs515zx9x_55zgtpv4mm0000gp/T/tmp1ho8lz E python3.3 99001 marca 3w REG 1,2 3681 29266158 /Users/marca/dev/hg-repos/pytest/.tox/py26/log/py26-0.log E python3.3 99001 marca 6w REG 1,2 3819 29276170 /Users/marca/dev/hg-repos/pytest/.tox/py27/log/py27-0.log E python3.3 99001 marca 7w REG 1,2 3841 29286174 /Users/marca/dev/hg-repos/pytest/.tox/py33/log/py33-0.log E python3.3 99001 marca 8u CHR 16,3 0t11092970 811 /dev/ttys003 E python3.3 99001 marca 9u REG 1,2 0 29288704 /private/var/folders/gw/w0clrs515zx9x_55zgtpv4mm0000gp/T/tmpn1zy1r E python3.3 99001 marca 10u REG 1,2 0 29288705 /private/var/folders/gw/w0clrs515zx9x_55zgtpv4mm0000gp/T/tmp1ho8lz E python3.3 99001 marca 11u CHR 16,3 0t11092970 811 /dev/ttys003 E python3.3 99001 marca 12u CHR 16,3 0t11092970 811 /dev/ttys003 E python3.3 99001 marca 13u REG 1,2 3 29290273 /private/var/folders/gw/w0clrs515zx9x_55zgtpv4mm0000gp/T/pytest-205/testdir/test_writeorg0/test_writeorg.py E python3.3 99001 marca 14r CHR 3,2 0t0 305 /dev/null E python3.3 99001 marca 15u REG 1,2 0 29288704 /private/var/folders/gw/w0clrs515zx9x_55zgtpv4mm0000gp/T/tmpn1zy1r E python3.3 99001 marca 17u REG 1,2 0 29288705 /private/var/folders/gw/w0clrs515zx9x_55zgtpv4mm0000gp/T/tmp1ho8lz E ***** 4 FD leackage detected conftest.py:44: AssertionError ``` From issues-reply at bitbucket.org Sun Mar 30 18:56:05 2014 From: issues-reply at bitbucket.org (Felix Yan) Date: Sun, 30 Mar 2014 16:56:05 -0000 Subject: [Pytest-commit] Issue #493: Example failure in pytest's own testcase (test_simple.yml) (hpk42/pytest) Message-ID: <20140330165605.18948.33216@app05.ash-private.bitbucket.org> New issue 493: Example failure in pytest's own testcase (test_simple.yml) https://bitbucket.org/hpk42/pytest/issue/493/example-failure-in-pytests-own-testcase Felix Yan: test_simple.yml was gathered when running tests with python 2.7.6, and gives the same error as the example failure in docs: ``` =================================== FAILURES =================================== ________________________________ usecase: hello ________________________________ usecase execution failed spec failed: 'some': 'other' no further details known at this point. ``` Not happening for Python 3 though. The tests were ran with "python setup.py test" From issues-reply at bitbucket.org Mon Mar 31 13:24:17 2014 From: issues-reply at bitbucket.org (Ionel Maries Cristian) Date: Mon, 31 Mar 2014 11:24:17 -0000 Subject: [Pytest-commit] Issue #494: Better assertion help when comparing lists (hpk42/pytest) Message-ID: <20140331112417.18695.51378@app03.ash-private.bitbucket.org> New issue 494: Better assertion help when comparing lists https://bitbucket.org/hpk42/pytest/issue/494/better-assertion-help-when-comparing-lists Ionel Maries Cristian: Example output ``` > assert hist == ['before', 'the-return-valuex', 'after', 'finally', 'closed'] E assert ['before', 't...ly', 'closed'] == ['before', 'th...ly', 'closed'] E At index 1 diff: 'the-return-value' != 'the-return-valuex' ``` I use these options: ``` -rxEfs --strict --ignore docs/conf.py --ignore setup.py --doctest-modules --doctest-glob \*.rst --tb short ```