[py-svn] r57758 - py/trunk/py/test/dsession/testing
hpk at codespeak.net
hpk at codespeak.net
Tue Sep 2 15:22:11 CEST 2008
Author: hpk
Date: Tue Sep 2 15:22:10 2008
New Revision: 57758
Removed:
py/trunk/py/test/dsession/testing/basetest.py
Modified:
py/trunk/py/test/dsession/testing/test_functional_dsession.py
py/trunk/py/test/dsession/testing/test_hostmanage.py
py/trunk/py/test/dsession/testing/test_masterslave.py
Log:
unify test support, remove basetest.py
Deleted: /py/trunk/py/test/dsession/testing/basetest.py
==============================================================================
--- /py/trunk/py/test/dsession/testing/basetest.py Tue Sep 2 15:22:10 2008
+++ (empty file)
@@ -1,32 +0,0 @@
-
-""" Support module for running tests
-"""
-
-import py
-from py.__.test.testing.setupdata import getexamplefile
-
-class DirSetup(object):
- def setup_method(self, method):
- name = "%s.%s" %(self.__class__.__name__, method.func_name)
- self.tmpdir = py.test.ensuretemp(name)
- self.source = self.tmpdir.ensure("source", dir=1)
- self.dest = self.tmpdir.join("dest")
-
-
-class BasicRsessionTest(object):
- def setup_class(cls):
- path = getexamplefile("test_funcexamples.py")
- cls.config = py.test.config._reparse([path.dirpath()])
- cls.modulecol = cls.config.getfsnode(path)
-
- def setup_method(self, method):
- self.session = self.config.initsession()
-
- def getfunc(self, name):
- funcname = "test_func" + name
- col = self.modulecol.join(funcname)
- assert col is not None, funcname
- return col
-
- def getdocexample(self):
- return getexamplefile("docexample.txt")
Modified: py/trunk/py/test/dsession/testing/test_functional_dsession.py
==============================================================================
--- py/trunk/py/test/dsession/testing/test_functional_dsession.py (original)
+++ py/trunk/py/test/dsession/testing/test_functional_dsession.py Tue Sep 2 15:22:10 2008
@@ -6,7 +6,6 @@
from py.__.test import event
from py.__.test.dsession.dsession import DSession
from py.__.test.dsession.hostmanage import HostManager, Host
-from basetest import BasicRsessionTest, DirSetup
from py.__.test.testing import suptest
import os
Modified: py/trunk/py/test/dsession/testing/test_hostmanage.py
==============================================================================
--- py/trunk/py/test/dsession/testing/test_hostmanage.py (original)
+++ py/trunk/py/test/dsession/testing/test_hostmanage.py Tue Sep 2 15:22:10 2008
@@ -3,12 +3,18 @@
"""
import py
-from basetest import DirSetup
+from py.__.test.testing import suptest
from py.__.test.dsession.hostmanage import HostRSync, Host, HostManager, gethosts
from py.__.test.dsession.hostmanage import sethomedir, gethomedir, getpath_relto_home
from py.__.test import event
-class TestHost(DirSetup):
+class TmpWithSourceDest(suptest.FileCreation):
+ def setup_method(self, method):
+ super(TmpWithSourceDest, self).setup_method(method)
+ self.source = self.tmpdir.mkdir("source")
+ self.dest = self.tmpdir.mkdir("dest")
+
+class TestHost(suptest.FileCreation):
def _gethostinfo(self, relpath=""):
exampledir = self.tmpdir.join("gethostinfo")
if relpath:
@@ -119,7 +125,7 @@
res = channel.receive()
assert res == host.gw_remotepath
-class TestSyncing(DirSetup):
+class TestSyncing(TmpWithSourceDest):
def _gethostinfo(self):
hostinfo = Host("localhost:%s" % self.dest)
return hostinfo
@@ -181,7 +187,7 @@
res2 = rsync.add_target_host(h2)
assert not res2
-class TestHostManager(DirSetup):
+class TestHostManager(TmpWithSourceDest):
def gethostmanager(self, dist_hosts, dist_rsync_roots=None):
l = ["dist_hosts = %r" % dist_hosts]
if dist_rsync_roots:
Modified: py/trunk/py/test/dsession/testing/test_masterslave.py
==============================================================================
--- py/trunk/py/test/dsession/testing/test_masterslave.py (original)
+++ py/trunk/py/test/dsession/testing/test_masterslave.py Tue Sep 2 15:22:10 2008
@@ -1,11 +1,11 @@
import py
from py.__.test.dsession.masterslave import MasterNode
-from py.__.test.dsession.hostmanage import Host
-from basetest import BasicRsessionTest
+from py.__.test.dsession.hostmanage import Host
from py.__.test import event
+from py.__.test.testing import suptest
-class TestMasterSlaveConnection(BasicRsessionTest):
+class TestMasterSlaveConnection(suptest.InlineCollection):
def getevent(self, eventtype=event.ItemTestReport, timeout=2.0):
events = []
while 1:
@@ -23,15 +23,30 @@
def setup_method(self, method):
super(TestMasterSlaveConnection, self).setup_method(method)
+ self.makepyfile(__init__="")
+ self.config = self.parseconfig(self.tmpdir)
self.queue = py.std.Queue.Queue()
self.host = Host("localhost")
self.host.initgateway()
- self.node = MasterNode(self.host, self.session.config,
- self.queue.put)
+ self.node = MasterNode(self.host, self.config, self.queue.put)
assert not self.node.channel.isclosed()
+
+ def getitem(self, source):
+ kw = {"test_" + self.tmpdir.basename: py.code.Source(source).strip()}
+ path = self.makepyfile(**kw)
+ fscol = self.config.getfsnode(path)
+ return fscol.collect_by_name("test_func")
+
+ def getitems(self, source):
+ kw = {"test_" + self.tmpdir.basename: py.code.Source(source).strip()}
+ path = self.makepyfile(**kw)
+ fscol = self.config.getfsnode(path)
+ return fscol.collect()
def teardown_method(self, method):
print "at teardown:", self.node.channel
+ #if not self.node.channel.isclosed():
+ # self.node.shutdown()
self.host.gw.exit()
def test_crash_invalid_item(self):
@@ -43,7 +58,11 @@
def test_crash_killed(self):
if not hasattr(py.std.os, 'kill'):
py.test.skip("no os.kill")
- item = self.getfunc("kill15")
+ item = self.getitem("""
+ def test_func():
+ import os
+ os.kill(os.getpid(), 15)
+ """)
self.node.send(item)
ev = self.getevent(event.HostDown)
assert ev.host == self.host
@@ -59,15 +78,15 @@
"self.getevent(event.HostDown, timeout=0.01)")
def test_send_on_closed_channel(self):
- item = self.getfunc("passed")
+ item = self.getitem("def test_func(): pass")
self.node.channel.close()
py.test.raises(IOError, "self.node.send(item)")
#ev = self.getevent(event.InternalException)
#assert ev.excinfo.errisinstance(IOError)
def test_send_one(self):
- item = self.getfunc("passed")
- self.node.send(self.getfunc("passed"))
+ item = self.getitem("def test_func(): pass")
+ self.node.send(item)
ev = self.getevent()
assert ev.passed
assert ev.colitem == item
@@ -75,16 +94,22 @@
#assert event.item is not item
def test_send_some(self):
+ items = self.getitems("""
+ def test_pass():
+ pass
+ def test_fail():
+ assert 0
+ def test_skip():
+ import py
+ py.test.skip("x")
+ """)
+ for item in items:
+ self.node.send(item)
for outcome in "passed failed skipped".split():
- self.node.send(self.getfunc(outcome))
ev = self.getevent()
assert getattr(ev, outcome)
- def test_send_list(self):
- l = []
- for outcome in "passed failed skipped".split():
- l.append(self.getfunc(outcome))
- self.node.sendlist(l)
+ self.node.sendlist(items)
for outcome in "passed failed skipped".split():
ev = self.getevent()
assert getattr(ev, outcome)
More information about the pytest-commit
mailing list