Esempio n. 1
0
		def test(dict):
			proc = dict['start']()
			proc.send('increment')
			proc.send('increment')
			time.sleep(PAUSE)
			self.assert_(proc.isAlive())
			cg.exit(proc, 'kill')
Esempio n. 2
0
    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")
Esempio n. 4
0
 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")
Esempio n. 5
0
	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')
Esempio n. 6
0
	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')
Esempio n. 7
0
 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")
Esempio n. 8
0
		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")
Esempio n. 10
0
	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')
Esempio n. 11
0
 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")
Esempio n. 12
0
		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')
Esempio n. 13
0
		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')
Esempio n. 14
0
 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")
Esempio n. 15
0
 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")
Esempio n. 16
0
	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')
Esempio n. 17
0
	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')
Esempio n. 18
0
 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")