def test__deepcopy__(self): from copy import deepcopy x = promise(double, 4) y = deepcopy(x) self.assertEqual(x._fun, y._fun) self.assertEqual(x._args, y._args) self.assertEqual(x(), y())
def test_firstmethod_promises(self): class A(object): def __init__(self, value=None): self.value = value def m(self): return self.value self.assertEqual("four", utils.firstmethod("m")([ A(), A(), A(), A("four"), A("five")])) self.assertEqual("four", utils.firstmethod("m")([ A(), A(), A(), promise(lambda: A("four")), A("five")]))
def test_firstmethod_promises(self): class A(object): def __init__(self, value=None): self.value = value def m(self): return self.value self.assertEqual( "four", utils.firstmethod("m")([A(), A(), A(), A("four"), A("five")])) self.assertEqual( "four", utils.firstmethod("m")( [A(), A(), A(), promise(lambda: A("four")), A("five")]))
def test__str__(self): self.assertEqual(str(promise(lambda: "the quick brown fox")), "the quick brown fox")
def test_evaluate(self): self.assertEqual(promise(lambda: 2 + 2)(), 4) self.assertEqual(promise(lambda x: x * 4, 2), 8) self.assertEqual(promise(lambda x: x * 8, 2)(), 16)
def test_evaluates(self): self.assertEqual(maybe_promise(promise(lambda: 10)), 10) self.assertEqual(maybe_promise(20), 20)
def test_cmp(self): self.assertEqual(promise(lambda: 10), promise(lambda: 10)) self.assertNotEqual(promise(lambda: 10), promise(lambda: 20))
def test__reduce__(self): x = promise(double, 4) y = pickle.loads(pickle.dumps(x)) self.assertEqual(x(), y())
def test__repr__(self): self.assertEqual(repr(promise(lambda: "fi fa fo")), "'fi fa fo'")
def new(self): return promise(self.create_publisher)