def test_collect(): source1 = Stream() source2 = Stream() collector = source1.collect() L = collector.sink_to_list() source2.sink(collector.flush) source1.emit(1) source1.emit(2) assert L == [] source2.emit('anything') # flushes collector assert L == [(1, 2)] source2.emit('anything') assert L == [(1, 2), ()] source1.emit(3) assert L == [(1, 2), ()] source2.emit('anything') assert L == [(1, 2), (), (3, )]
def test_sink_with_args_and_kwargs(): L = dict() def mycustomsink(elem, key, prefix=""): key = prefix + key if key not in L: L[key] = list() L[key].append(elem) s = Stream() s2 = s.sink(mycustomsink, "cat", "super") s.emit(1) s.emit(2) assert L['supercat'] == [1, 2]