示例#1
0
文件: tests.py 项目: eejd/microasync
 def aux():
     chan = Channel()
     chans = clone(chan, 5, channel_type)
     yield chan.put(10)
     for r_chan in chans:
         self.assertEqual((yield r_chan.get()), 10)
     yield chan.put(22)
     for r_chan in chans:
         self.assertEqual((yield r_chan.get()), 22)
     done.delivery(True)
示例#2
0
文件: tests.py 项目: eejd/microasync
 def test_channel_with_limit(self):
     chan = Channel(limit=5)
     put_proms = [chan.put(x) for x in range(5)]
     get_proms = [chan.get() for _ in range(5)]
     for prom in put_proms:
         process_all()
         self.assertTrue(prom.delivered)
         self.assertTrue(prom.value)
     for n, prom in enumerate(get_proms):
         self.assertTrue(prom.delivered)
         self.assertEqual(prom.value, n)
示例#3
0
文件: tests.py 项目: eejd/microasync
 def test_should_work(self):
     chan = Channel()
     producer = ChannelProducer(chan)
     clones = [producer.get_clone() for _ in range(5)]
     chan.put(12)
     process_all()
     for chan_clone in clones:
         prom = chan_clone.get()
         while not prom.delivered:
             process_all()
         self.assertEqual(prom.value, 12)
示例#4
0
文件: tests.py 项目: eejd/microasync
 def test_get_from_channel(self):
     chan = Channel()
     prom = chan.get()
     chan.put(52)
     chan.process()
     self.assertTrue(prom.delivered)
     self.assertEqual(prom.value, 52)
示例#5
0
文件: tests.py 项目: eejd/microasync
 def test_put_into_channel(self):
     chan = Channel()
     prom = chan.put(10)
     chan.process()
     self.assertTrue(prom.delivered)
     self.assertTrue(prom.value)