[py-svn] r35592 - in py/branch/rsession-cleanup/py/test/rsession: . testing
fijal at codespeak.net
fijal at codespeak.net
Mon Dec 11 19:39:21 CET 2006
Author: fijal
Date: Mon Dec 11 19:39:15 2006
New Revision: 35592
Modified:
py/branch/rsession-cleanup/py/test/rsession/box.py
py/branch/rsession-cleanup/py/test/rsession/testing/test_boxing.py
Log:
Reviewed semantics to a more friendly async mode.
Modified: py/branch/rsession-cleanup/py/test/rsession/box.py
==============================================================================
--- py/branch/rsession-cleanup/py/test/rsession/box.py (original)
+++ py/branch/rsession-cleanup/py/test/rsession/box.py Mon Dec 11 19:39:15 2006
@@ -18,7 +18,7 @@
from StringIO import StringIO
class SimpleBox(object):
- def __init__(self, fun, args = [], kwargs = {}, info=None):
+ def __init__(self, fun, args = [], kwargs = {}):
self.fun = fun
self.args = args
self.info = info
@@ -40,17 +40,16 @@
class FileBox(object):
count = 0
- def __init__(self, fun, args=None, kwargs=None, info=None):
+ def __init__(self, fun, args=None, kwargs=None):
if args is None:
args = []
if kwargs is None:
kwargs = {}
self.fun = fun
- self.info = info
self.args = args
self.kwargs = kwargs
- def run(self):
+ def run(self, continuation=False):
tempdir = py.test.ensuretemp("box%d" % self.count)
self.count += 1
self.tempdir = tempdir
@@ -61,9 +60,10 @@
nice_level = py.test.remote.nice_level
pid = os.fork()
if pid:
- if self.info is not None:
- self.info.pid = pid
- self.parent(pid)
+ if not continuation:
+ self.parent(pid)
+ else:
+ return self.parent, pid
else:
try:
outcome = self.children(nice_level)
Modified: py/branch/rsession-cleanup/py/test/rsession/testing/test_boxing.py
==============================================================================
--- py/branch/rsession-cleanup/py/test/rsession/testing/test_boxing.py (original)
+++ py/branch/rsession-cleanup/py/test/rsession/testing/test_boxing.py Mon Dec 11 19:39:15 2006
@@ -84,22 +84,8 @@
def box_fun():
time.sleep(300) # we don't want to last forever here
- b = RealBox(box_fun, info=info)
- import thread
- def f():
- b.run()
- lock.release()
- lock = thread.allocate_lock()
- lock.acquire()
- thread.start_new_thread(f, ())
- count = 0
- while count < 3000:
- # we don't want to wait forever
- time.sleep(.1)
- if hasattr(info, 'pid'):
- os.kill(info.pid, 15)
- break
- count += 1
- lock.acquire()
- assert count < 3000
+ b = RealBox(box_fun)
+ par, pid = b.run(continuation=True)
+ os.kill(pid, 15)
+ par(pid)
assert b.signal == 15
More information about the pytest-commit
mailing list