From f946ab1835a5da74df68da2d2c5707a92d9768d5 Mon Sep 17 00:00:00 2001 From: holger krekel Date: Tue, 8 Nov 2011 17:54:26 +0000 Subject: [PATCH] adapt to pytest-2.2.0.dev2 --- CHANGELOG | 5 +++++ setup.py | 6 +++--- testing/test_boxed.py | 6 +++--- testing/test_remote.py | 18 ++++++++---------- testing/test_slavemanage.py | 8 ++++---- tox.ini | 2 +- xdist/__init__.py | 2 +- xdist/dsession.py | 7 ++++--- 8 files changed, 29 insertions(+), 25 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index c823db9..fba6a3d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +1.7 +------------------------- + +- fix incompatibilities with pytest-2.2.0 + 1.6 ------------------------- diff --git a/setup.py b/setup.py index cb8fe12..3ef61dd 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup setup( name="pytest-xdist", - version='1.6', + version='1.7.dev1', description='py.test xdist plugin for distributed testing and loop-on-failing modes', long_description=open('README.txt').read(), license='GPLv2 or later', @@ -13,7 +13,7 @@ setup( packages = ['xdist'], entry_points = {'pytest11': ['xdist = xdist.plugin'],}, zip_safe=False, - install_requires = ['execnet>=1.0.8', 'pytest>2.0.2'], + install_requires = ['execnet>=1.0.8', 'pytest>=2.2.0.dev2'], classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', @@ -27,4 +27,4 @@ setup( 'Programming Language :: Python', 'Programming Language :: Python :: 3', ], -) \ No newline at end of file +) diff --git a/testing/test_boxed.py b/testing/test_boxed.py index d3c6daa..4b522f4 100644 --- a/testing/test_boxed.py +++ b/testing/test_boxed.py @@ -16,13 +16,13 @@ def test_functional_boxed(testdir): class TestOptionEffects: def test_boxed_option_default(self, testdir): tmpdir = testdir.tmpdir.ensure("subdir", dir=1) - config = testdir.reparseconfig() + config = testdir.parseconfig() assert not config.option.boxed py.test.importorskip("execnet") - config = testdir.reparseconfig(['-d', tmpdir]) + config = testdir.parseconfig('-d', tmpdir) assert not config.option.boxed def test_is_not_boxed_by_default(self, testdir): - config = testdir.reparseconfig([testdir.tmpdir]) + config = testdir.parseconfig(testdir.tmpdir) assert not config.option.boxed diff --git a/testing/test_remote.py b/testing/test_remote.py index ad52e2e..7a211cc 100644 --- a/testing/test_remote.py +++ b/testing/test_remote.py @@ -80,7 +80,7 @@ class TestReportSerialization: py.test.xfail("hello") """) reports = reprec.getreports("pytest_runtest_logreport") - assert len(reports) == 6 + assert len(reports) == 17 # with setup/teardown "passed" reports for rep in reports: d = serialize_report(rep) check_marshallable(d) @@ -138,6 +138,7 @@ class TestSlaveInteractor: ids = ev.kwargs['ids'] assert len(ids) == 1 slave.sendcommand("runtests", ids=ids) + ev = slave.popevent("testreport") # setup ev = slave.popevent("testreport") assert ev.name == "testreport" rep = unserialize_report(ev.name, ev.kwargs['data']) @@ -194,15 +195,12 @@ class TestSlaveInteractor: ids = ev.kwargs['ids'] assert len(ids) == 2 slave.sendcommand("runtests_all", ) - ev = slave.popevent("testreport") - assert ev.name == "testreport" - rep = unserialize_report(ev.name, ev.kwargs['data']) - assert rep.nodeid.endswith("::test_func") - ev = slave.popevent("testreport") - assert ev.name == "testreport" - rep = unserialize_report(ev.name, ev.kwargs['data']) - assert rep.nodeid.endswith("::test_func2") - assert rep.passed + for func in "::test_func", "::test_func2": + for i in range(3): # setup/call/teardown + ev = slave.popevent("testreport") + assert ev.name == "testreport" + rep = unserialize_report(ev.name, ev.kwargs['data']) + assert rep.nodeid.endswith(func) slave.sendcommand("shutdown") ev = slave.popevent("slavefinished") assert 'slaveoutput' in ev.kwargs diff --git a/testing/test_slavemanage.py b/testing/test_slavemanage.py index 918e265..0be54df 100644 --- a/testing/test_slavemanage.py +++ b/testing/test_slavemanage.py @@ -135,7 +135,7 @@ class TestNodeManager: @py.test.mark.xfail def test_rsync_roots_no_roots(self, testdir, mysetup): mysetup.source.ensure("dir1", "file1").write("hello") - config = testdir.reparseconfig([source]) + config = testdir.parseconfig(source) nodemanager = NodeManager(config, ["popen//chdir=%s" % mysetup.dest]) #assert nodemanager.config.topdir == source == config.topdir nodemanager.makegateways() @@ -179,7 +179,7 @@ class TestNodeManager: [pytest] rsyncdirs=dir1/dir2 """)) - config = testdir.reparseconfig([source]) + config = testdir.parseconfig(source) nodemanager = NodeManager(config, ["popen//chdir=%s" % dest]) nodemanager.makegateways() nodemanager.rsync_roots() @@ -198,7 +198,7 @@ class TestNodeManager: rsyncdirs = dir1 dir5 rsyncignore = dir1/dir2 dir5/dir6 """)) - config = testdir.reparseconfig([source]) + config = testdir.parseconfig(source) nodemanager = NodeManager(config, ["popen//chdir=%s" % dest]) nodemanager.makegateways() nodemanager.rsync_roots() @@ -212,7 +212,7 @@ class TestNodeManager: specs = ["popen"] * 3 source.join("conftest.py").write("rsyncdirs = ['a']") source.ensure('a', dir=1) - config = testdir.reparseconfig([source]) + config = testdir.parseconfig(source) nodemanager = NodeManager(config, specs) nodemanager.makegateways() nodemanager.rsync_roots() diff --git a/tox.ini b/tox.ini index b545ccf..14b9cdd 100644 --- a/tox.ini +++ b/tox.ini @@ -6,7 +6,7 @@ indexserver= [testenv] changedir=testing -deps=:testrun:pytest +deps=:testrun:pytest>=2.2.0.dev2 commands= py.test --junitxml={envlogdir}/junit-{envname}.xml [] [testenv:py31] diff --git a/xdist/__init__.py b/xdist/__init__.py index 49e36d6..9a4499e 100644 --- a/xdist/__init__.py +++ b/xdist/__init__.py @@ -1,2 +1,2 @@ # -__version__ = '1.6' +__version__ = '1.7.dev1' diff --git a/xdist/dsession.py b/xdist/dsession.py index c2c73b5..fa6d3a9 100644 --- a/xdist/dsession.py +++ b/xdist/dsession.py @@ -271,7 +271,7 @@ class DSession: self.terminal.write_line("") self.terminal.write_line("scheduling tests via %s" %( self.sched.__class__.__name__)) - + self.sched.init_distribute() def slave_logstart(self, node, nodeid, location): @@ -279,8 +279,9 @@ class DSession: nodeid=nodeid, location=location) def slave_testreport(self, node, rep): - if rep.when in ("setup", "call"): - self.sched.remove_item(node, rep.nodeid) + if not (rep.passed and rep.when != "call"): + if rep.when in ("setup", "call"): + self.sched.remove_item(node, rep.nodeid) #self.report_line("testreport %s: %s" %(rep.id, rep.status)) rep.node = node self.config.hook.pytest_runtest_logreport(report=rep)