def testAWorkerCanHaveLocalVars(self): items = ["a", "b", "a"] w = unique() pipe = items | add("C") | w got = [i for i in pipe] expected = ["aC", "bC"] self.assertEqual(got, expected)
def testSorted(self): items = ["a", "b", "a"] @consumer def s(ITEMS, **kw): return sorted(ITEMS, **kw) s = lambda items, **kw: sorted(items, **kw) s = consumer(lambda items, **kw: sorted(items, **kw)) pipe = items | unique() | s(reverse=True) self.assertEqual(pipe, ["b", "a"])
def testSideeffect(self): l = [] @worker def effect(ITEMS, list_): for i in ITEMS: list_.append(i) yield i items = [1, 2, 3] pipe = items | effect(l) | unique() pipe |= as_list() self.assertEqual(l, items)
def testChainability(self): u2 = consumer(lambda items: items | unique()) self.assertEqual([1, 2, 2, 3] | u2() | as_list(), [1, 2, 3])
def testShorthandConsumers(self): items = ["a", "b", "a"] pipe = items | unique() | list self.assertEqual(pipe, ["a", "b"])