def test_unlink(self): """ Test handling of an UNLINK token. """ srcPid = Pid(Atom("foo@bar"), 0, 0, 0) destPid = Pid(Atom("spam@egg"), 0, 0, 0) destPid.link(None, srcPid) # Sanity check self.assertNotEqual(destPid._links, set([])) ctrlMessage = (self.handler.CTRLMSGOP_UNLINK, srcPid, destPid) self.handler.passThroughMessage(None, ctrlMessage, None) self.assertEqual(destPid._links, set([]))
def test_exit2(self): """ Test handling of an EXIT2 token. """ srcPid = Pid(Atom("foo@bar"), 0, 0, 0) destPid = Pid(Atom("spam@egg"), 0, 0, 0) destPid.link(None, srcPid) called = [] destPid._handlers[srcPid] = [lambda *args: called.append(args)] ctrlMessage = (self.handler.CTRLMSGOP_EXIT2, srcPid, destPid, "reason") self.handler.passThroughMessage(None, ctrlMessage, None) self.assertEqual(called, [("reason",)]) self.assertEqual(destPid._links, set([]))
def test_monitorPExitWithHandler(self): """ Test handling of a MONITOR_P_EXIT token with a registered handler to it. """ srcPid = Pid(Atom("foo@bar"), 0, 0, 0) destPid = Pid(Atom("spam@egg"), 0, 0, 0) ref = Reference(Atom("spam@egg"), 0, 0) called = [] destPid._monitorHandlers[ref] = [lambda *args: called.append(args)] ctrlMessage = (self.handler.CTRLMSGOP_MONITOR_P_EXIT, srcPid, destPid, ref, "reason") self.handler.passThroughMessage(None, ctrlMessage, None) self.assertEqual(called, [("reason",)])
def test_demonitorP(self): """ Test handling of a DEMONITOR_P token. """ srcPid = Pid(Atom("foo@bar"), 0, 0, 0) destPid = Pid(Atom("spam@egg"), 0, 0, 0) ref = Reference(Atom("spam@egg"), 0, 0) destPid._remoteMonitor(None, srcPid, ref) # Sanity check self.assertNotEqual(destPid._remoteMonitors, set([])) ctrlMessage = (self.handler.CTRLMSGOP_DEMONITOR_P, srcPid, destPid, ref) self.handler.passThroughMessage(None, ctrlMessage, None) self.assertEqual(destPid._remoteMonitors, set([]))