コード例 #1
0
 def test_parked_closed(self):
     ch = Channel()
     def closing():
         yield sleep(0.005)
         ch.close()
     go(closing)
     self.assertEqual((yield take(ch)), CLOSED)
コード例 #2
0
 def test_immediate_puts_and_takes(self):
     ch = Channel(1)
     i = 0
     while i < self.limit:
         i += 1
         yield put(ch, 1)
         yield take(ch)
コード例 #3
0
 def test_parked_put(self):
     ch = Channel()
     def putting():
         yield sleep(0.005)
         yield put(ch, 42)
     go(putting)
     self.assertEqual((yield take(ch)), 42)
コード例 #4
0
 def test_immediate_closed(self):
     ch = Channel()
     ch.close()
     self.assertEqual((yield take(ch)), CLOSED)
コード例 #5
0
 def test_immediate_buffered(self):
     ch = Channel(1)
     yield put(ch, 42)
     self.assertEqual((yield take(ch)), 42)
コード例 #6
0
 def test_immediate_put(self):
     ch = Channel()
     def putting():
         yield put(ch, 42)
     go(putting)
     self.assertEqual((yield take(ch)), 42)
コード例 #7
0
 def taking():
     yield sleep(0.005)
     yield take(ch)
コード例 #8
0
 def test_taking_from_closed_channel(self):
     i = 0
     while i < self.limit:
         i += 1
         yield take(self.ch)
コード例 #9
0
 def taking():
     yield take(ch)
コード例 #10
0
 def test_returning_CLOSED(self):
     def ident(x):
         yield stop(x)
     ch = go_channel(ident, CLOSED)
     self.assertEqual((yield take(ch)), CLOSED, "CLOSED is delivered")
     self.assertEqual(ch.is_closed(), True, "output channel is closed")
コード例 #11
0
 def test_returning_value(self):
     def ident(x):
         yield stop(x)
     ch = go_channel(ident, 42)
     self.assertEqual((yield take(ch)), 42, "returned value is delivered")
     self.assertEqual(ch.is_closed(), True, "output channel is closed")