Example #1
0
 def testLineBreak(self):
     lhs = [ "Hello World", "Happy Days Are Here" ]
     rhs = ["Hello ","World\nHappy", flow.Cooperate(),
            " Days"," Are Here\n"]
     mrg = flow.LineBreak(slowlist(rhs), delimiter='\n')
     rhs = list(flow.Block(mrg))
     self.assertEqual(lhs,rhs)
Example #2
0
 def testDeferredWrapper(self):
     a = defer.Deferred()
     reactor.callLater(0, lambda: a.callback("test"))
     b = flow.Merge(a, slowlist([1,2,flow.Cooperate(),3]))
     d = flow.Deferred(b)
     d.addCallback(self.assertEqual, [1, 2, 'test', 3])
     return d
Example #3
0
 def testFilter(self):
     def odd(val):
         if val % 2:
             return True
     lhs = [ 1, 3 ]
     mrg = flow.Filter(odd,slowlist([1,2,flow.Cooperate(),3]))
     rhs = list(flow.Block(mrg))
     self.assertEqual(lhs,rhs)
Example #4
0
 def testZipFailure(self):
     lhs = [(1,'a'),(2,'b'),(3,'c')]
     mrg = flow.Zip([1,2,flow.Cooperate(),3],badgen())
     d = flow.Deferred(mrg)
     return self.assertFailure(d, ZeroDivisionError)
Example #5
0
 def testZip(self):
     lhs = [(1,'a'),(2,'b'),(3,None)]
     mrg = flow.Zip([1,2,flow.Cooperate(),3],['a','b'])
     rhs = list(flow.Block(mrg))
     self.assertEqual(lhs,rhs)
Example #6
0
 def testBasicList(self):
     lhs = [1,2,3]
     rhs = list(flow.Block([1,2,flow.Cooperate(),3]))
     self.assertEqual(lhs,rhs)
Example #7
0
        It is primarly used to simulate generators by using
        a list (for testing purposes) without being wrapped
        as a flow.List, which has all kinds of shortcuts we
        don't want for testing.
    """
    def __init__(self, list):
        self.list = list[:]
    def __iter__(self):
        return self
    def next(self):
        if self.list:
            return self.list.pop(0)
        raise StopIteration

_onetwothree = ['one','two',flow.Cooperate(),'three']

class producer:
    """ iterator version of the following generator...

        def producer():
            lst = flow.wrap(slowlist([1,2,3]))
            nam = flow.wrap(slowlist(_onetwothree))
            while True:
                yield lst
                yield nam
                yield (lst.next(),nam.next())

    """
    def __iter__(self):
        self.lst   = flow.wrap(slowlist([1,2,3]))