[py-svn] r31488 - in py/branch/distributed/py/test/rsession: . testing

hpk at codespeak.net hpk at codespeak.net
Tue Aug 22 17:36:56 CEST 2006


Author: hpk
Date: Tue Aug 22 17:36:50 2006
New Revision: 31488

Added:
   py/branch/distributed/py/test/rsession/masternode.py   (contents, props changed)
   py/branch/distributed/py/test/rsession/testing/test_masternode.py   (contents, props changed)
Log:
(fijal, hpk) bits of the masternode code. 


Added: py/branch/distributed/py/test/rsession/masternode.py
==============================================================================
--- (empty file)
+++ py/branch/distributed/py/test/rsession/masternode.py	Tue Aug 22 17:36:50 2006
@@ -0,0 +1,21 @@
+"""
+Node code for Master. 
+"""
+from py.__.test.rsession.outcome import ReprOutcome 
+
+class MasterNode(object):
+    def __init__(self, channel, report):
+        self.channel = channel
+        self.report = report
+        channel.setcallback(self.receive_result)
+        self.pending = []
+
+    def receive_result(self, outcomestring):
+        repr_outcome = ReprOutcome(outcomestring)
+        item = self.pending.pop()
+        self.report((item, repr_outcome))
+
+    def send(self, item):
+        self.pending.insert(0, item)
+        itemspec = "/".join(item.listnames())
+        self.channel.send(itemspec)

Added: py/branch/distributed/py/test/rsession/testing/test_masternode.py
==============================================================================
--- (empty file)
+++ py/branch/distributed/py/test/rsession/testing/test_masternode.py	Tue Aug 22 17:36:50 2006
@@ -0,0 +1,28 @@
+""" test master node """
+
+import py
+from py.__.test.rsession.masternode import MasterNode
+from py.__.test.rsession.outcome import Outcome 
+
+class DummyChannel(object):
+    def __init__(self):
+        self.sent = []
+
+    def setcallback(self, func):
+        self.callback = func 
+
+    def send(self, item):
+        assert py.std.marshal.dumps(item)
+        self.sent.append(item)
+
+def test_masternode():
+    ch = DummyChannel()
+    reportlist = []
+    mnode = MasterNode(ch, reportlist.append)
+    mnode.send(py.test.Item("ok"))
+    mnode.send(py.test.Item("notok"))
+    ch.callback(Outcome().make_repr())
+    ch.callback(Outcome(excinfo=42).make_repr())
+    assert len(reportlist) == 2
+    assert reportlist[0][1].passed 
+    assert not reportlist[1][1].passed 



More information about the pytest-commit mailing list