def test(dict): proc = dict['start']() proc.send('increment') proc.send('increment') time.sleep(PAUSE) self.assert_(proc.isAlive()) cg.exit(proc, 'kill')
def test2(self): import candygram as cg import time def proc_func(): r = cg.Receiver() r.addHandler("land shark", shut_door, cg.Message) r.addHandler("candygram", open_door, cg.Message) for message in r: print >> self.out, message def shut_door(name): return "Go Away " + name def open_door(name): return "Hello " + name proc = cg.spawn(proc_func) proc.send("land shark") proc.send("candygram") # Give the proc a chance to print its messages before termination: time.sleep(1) cg.exit(proc, "kill") # Assert print statements worked as advertised assert self.out.getvalue( ) == "Go Away land shark\n" "Hello candygram\n"
def test(dict): proc = dict["start"]() proc.send("increment") proc.send("increment") time.sleep(PAUSE) assert proc.isAlive() cg.exit(proc, "kill")
def testSpawnMyProcess(self): proc = cg.spawn(echo, cg.self(), _processClass=MyProcess) assert isinstance(proc, MyProcess) proc.send("test") r = cg.Receiver() r.addHandler(cg.Any, lambda m: m, cg.Message) assert r.receive() == ("MyProcess", "test") cg.exit(proc, "kill")
def testSpawnLinkMyProcess(self): proc = cg.spawnLink(echo, cg.self(), _processClass=MyProcess) self.assert_(isinstance(proc, MyProcess)) proc.send('test') r = cg.Receiver() r.addHandler(cg.Any, lambda m: m, cg.Message) self.assertEqual(r.receive(), ('MyProcess', 'test')) cg.exit(proc, 'kill')
def testSingleProc(self): r = cg.Receiver() r.addHandler(1, cg.self().send, 'one') proc = cg.spawn(self.receive, r) proc.send(1) r = cg.Receiver() r.addHandler('one', lambda: 'success') self.assertEqual(r.receive(1000), 'success') cg.exit(proc, 'kill')
def testSingleProc(self): r = cg.Receiver() r.addHandler(1, cg.self().send, "one") proc = cg.spawn(self.receive, r) proc.send(1) r = cg.Receiver() r.addHandler("one", lambda: "success") assert r.receive(1000) == "success" cg.exit(proc, "kill")
def test(dict): proc = dict['start']() resp = dict['add_number']('555-1111', 'Company A') self.assertEqual(resp, 'ack') resp = dict['add_number']('666-2222', 'Company B') self.assertEqual(resp, 'ack') resp = dict['analyse']('555-1111') self.assertEqual(resp, 'Company A') resp = dict['analyse']('666-2222') self.assertEqual(resp, 'Company B') resp = dict['analyse']('777-3333') self.assertEqual(resp, None) cg.exit(proc, 'kill')
def test(dict): proc = dict["start"]() resp = dict["add_number"]("555-1111", "Company A") assert resp == "ack" resp = dict["add_number"]("666-2222", "Company B") assert resp == "ack" resp = dict["analyse"]("555-1111") assert resp == "Company A" resp = dict["analyse"]("666-2222") assert resp == "Company B" resp = dict["analyse"]("777-3333") assert resp == None cg.exit(proc, "kill")
def testReset(self): # test that Receiver resets pointer back to front of mailbox after switching # to another process r1 = cg.Receiver() r1.addHandler(1, cg.self().send, 'one') proc1 = cg.spawn(self.receive, r1) proc1.send(2) proc1.send(1) r = cg.Receiver() r.addHandler('one', lambda: 'success') self.assertEqual(r.receive(1000), 'success') proc2 = cg.spawn(self.receive, r1) proc2.send(1) self.assertEqual(r.receive(1000), 'success') cg.exit(proc1, 'kill') cg.exit(proc2, 'kill')
def testReset(self): # test that Receiver resets pointer back to front of mailbox after switching # to another process r1 = cg.Receiver() r1.addHandler(1, cg.self().send, "one") proc1 = cg.spawn(self.receive, r1) proc1.send(2) proc1.send(1) r = cg.Receiver() r.addHandler("one", lambda: "success") assert r.receive(1000) == "success" proc2 = cg.spawn(self.receive, r1) proc2.send(1) assert r.receive(1000) == "success" cg.exit(proc1, "kill") cg.exit(proc2, "kill")
def test(dict): proc = cg.spawn(dict['s1']) proc.send('msg_a') proc.send('msg_x') proc.send('msg_b') proc.send('msg_c') proc.send('msg_y') proc.send('msg_h') proc.send('msg_i') time.sleep(PAUSE) self.assert_(proc.isAlive()) self.assertEqual(len(proc._mailbox), 0) proc.send('msg_a') proc.send('msg_x') time.sleep(PAUSE) self.assertEqual(len(proc._mailbox), 2) cg.exit(proc, 'kill')
def test(dict): proc = dict['start'](['a', 'b', 'c']) resp = dict['free']('a') self.assertEqual(resp, 'error') resp = dict['allocate']() self.assertEqual(resp, ('yes', 'a')) resp = dict['allocate']() self.assertEqual(resp, ('yes', 'b')) resp = dict['allocate']() self.assertEqual(resp, ('yes', 'c')) resp = dict['allocate']() self.assertEqual(resp, 'no') resp = dict['free']('b') self.assertEqual(resp, 'ok') resp = dict['allocate']() self.assertEqual(resp, ('yes', 'b')) cg.exit(proc, 'kill')
def test(dict): proc = cg.spawn(dict["s1"]) proc.send("msg_a") proc.send("msg_x") proc.send("msg_b") proc.send("msg_c") proc.send("msg_y") proc.send("msg_h") proc.send("msg_i") time.sleep(PAUSE) assert proc.isAlive() assert len(proc._mailbox) == 0 proc.send("msg_a") proc.send("msg_x") time.sleep(PAUSE) assert len(proc._mailbox) == 2 cg.exit(proc, "kill")
def test(dict): proc = dict["start"](["a", "b", "c"]) resp = dict["free"]("a") assert resp == "error" resp = dict["allocate"]() assert resp == ("yes", "a") resp = dict["allocate"]() assert resp == ("yes", "b") resp = dict["allocate"]() assert resp == ("yes", "c") resp = dict["allocate"]() assert resp == "no" resp = dict["free"]("b") assert resp == "ok" resp = dict["allocate"]() assert resp == ("yes", "b") cg.exit(proc, "kill")
def test2(self): import candygram as cg import time def proc_func(): r = cg.Receiver() r.addHandler('land shark', shut_door, cg.Message) r.addHandler('candygram', open_door, cg.Message) for message in r: print >> self.out, message def shut_door(name): return 'Go Away ' + name def open_door(name): return 'Hello ' + name proc = cg.spawn(proc_func) proc.send('land shark') proc.send('candygram') # Give the proc a chance to print its messages before termination: time.sleep(1) cg.exit(proc, 'kill') # Assert print statements worked as advertised self.assertEqual(self.out.getvalue(), 'Go Away land shark\n' \ 'Hello candygram\n')
def testMultiProc(self): r1 = cg.Receiver() r1.addHandler(1, cg.self().send, 'one') proc1 = cg.spawn(self.receive, r1) proc2 = cg.spawn(self.receive, r1) proc1.send(1) proc2.send(1) r = cg.Receiver() r.addHandler('one', lambda: 'success') self.assertEqual(r.receive(1000), 'success') self.assertEqual(r.receive(1000), 'success') proc3 = cg.spawn(self.receive, r1) proc3.send(1) self.assertEqual(r.receive(1000), 'success') cg.exit(proc1, 'kill') cg.exit(proc2, 'kill') cg.exit(proc3, 'kill')
def testMultiProc(self): r1 = cg.Receiver() r1.addHandler(1, cg.self().send, "one") proc1 = cg.spawn(self.receive, r1) proc2 = cg.spawn(self.receive, r1) proc1.send(1) proc2.send(1) r = cg.Receiver() r.addHandler("one", lambda: "success") assert r.receive(1000) == "success" assert r.receive(1000) == "success" proc3 = cg.spawn(self.receive, r1) proc3.send(1) assert r.receive(1000) == "success" cg.exit(proc1, "kill") cg.exit(proc2, "kill") cg.exit(proc3, "kill")