예제 #1
0
    def test_xform_filter(self):
        ch = c.promise_chan(xf.filter(lambda x: x > 0))
        self.assertIs(ch.b_put(-1), True)
        self.assertIs(ch.b_put(1), True)
        self.assertIs(ch.b_put(2), True)

        self.assertEqual(ch.b_get(), 1)
        self.assertEqual(ch.b_get(), 1)
예제 #2
0
 def test_after_close(self):
     ch = c.promise_chan()
     ch.b_put('success')
     ch.close()
     self.assertIs(ch.b_put('failure'), False)
     self.assertIs(ch.b_put('failure'), False)
     self.assertEqual(ch.b_get(), 'success')
     self.assertEqual(ch.b_get(), 'success')
예제 #3
0
 def test_xform_complete_flush(self):
     ch = c.promise_chan(xf.partition_all(3))
     self.assertIs(ch.b_put(1), True)
     self.assertIs(ch.b_put(2), True)
     self.assertIsNone(ch.poll())
     ch.close()
     self.assertEqual(ch.b_get(), (1, 2))
     self.assertEqual(ch.b_get(), (1, 2))
     self.assertIs(ch.b_put('drop me'), False)
예제 #4
0
 def test_xform_with_reduced_return(self):
     ch = c.promise_chan(xf.take(1))
     self.assertIs(ch.b_put('success'), True)
     self.assertIs(ch.b_put('failure'), False)
     self.assertEqual(ch.b_get(), 'success')
     self.assertEqual(ch.b_get(), 'success')
예제 #5
0
 def test_multiple_puts(self):
     ch = c.promise_chan()
     self.assertIs(ch.b_put('success'), True)
     self.assertIs(ch.b_put('drop me'), True)
예제 #6
0
 def test_multiple_gets(self):
     ch = c.promise_chan()
     self.assertIs(ch.b_put('success'), True)
     self.assertEqual(ch.b_get(), 'success')
     self.assertEqual(ch.b_get(), 'success')