def test_reverse(self): callback = Mock() x = barrier(self.ps, callback=promise(callback)) for p in self.ps: p() self.assertTrue(x.ready) callback.assert_called_with()
def test_apply(self): m = Mock() p = ppartial(m, 1) p() m.assert_called_with(1) p = ppartial(m, z=2) p() m.assert_called_with(z=2)
def test_basic_nack(self, delivery_tag=3172312312): self.args.write_longlong(delivery_tag) self.args.write_bit(0) self.args.write_bit(0) with self.assertRaises(NotConfirmed): self.channel._basic_nack(AMQPReader(self.args.getvalue())) callback = Mock(name='callback') self.channel.events['basic_nack'].add(callback) self.channel._basic_nack(AMQPReader(self.args.getvalue())) callback.assert_called_with(delivery_tag, False, False)
def test_wrap(self): cb1 = Mock() cb2 = Mock() x = wrap(promise(cb1)) x(1, y=2) cb1.assert_called_with(1, y=2) p2 = promise(cb2) x(p2) p2() cb1.assert_called_with(cb2())
def test_transform(self): callback = Mock() def filter_key_value(key, filter_, mapping): return filter_(mapping[key]) x = transform(filter_key_value, promise(callback), 'Value', int) x({'Value': 303}) callback.assert_called_with(303) with self.assertRaises(KeyError): x({})
def test_shallow_filter(self): a, b = promise(Mock(name='a')), promise(Mock(name='b')) p = promise(a, callback=b) self.assertIsNotNone(p._svpending) self.assertIsNone(p._lvpending) p(30) self.assertIsNone(p._svpending) a.fun.assert_called_with(30) b.fun.assert_called_with(a.fun.return_value) c, d = Mock(name='c'), Mock(name='d') promise(c, callback=d)(1) c.assert_called_with(1) d.assert_called_with(c.return_value)
def test_chained(self): def add(x, y): return x + y def pow2(x): return x ** 2 adder = Mock(name='adder') adder.side_effect = add power = Mock(name='multiplier') power.side_effect = pow2 final = Mock(name='final') p = promise() p.then(adder).then(power).then(final) p(42, 42) self.assertEqual(p.value, ((42, 42), {})) adder.assert_called_with(42, 42) power.assert_called_with(84) final.assert_called_with(7056)
def test_with_partial_args(self): m = Mock(name='m') p = promise(m, (1, 2, 3), {'foobar': 2}) p() m.assert_called_with(1, 2, 3, foobar=2)
def test_signal(self): callback = Mock(name='callback') a = promise() a.then(callback) a(42) callback.assert_called_with(42)
def test_with_partial_args_and_args(self): m = Mock(name='m') p = promise(m, (1, 2, 3), {'foobar': 2}) p(4, 5, bazbar=3) m.assert_called_with(1, 2, 3, 4, 5, foobar=2, bazbar=3)
def test_empty_promise(self): p = promise() p(42) x = Mock(name='x') p.then(x) x.assert_called_with(42)
def test_apply(self): m = Mock() p = starpromise(m, 1, 2, z=3) p() m.assert_called_with(1, 2, z=3)
def test_apply(self): m = Mock() p = ready_promise(m, 1, 2, 3) m.assert_called_with(1, 2, 3) self.assertTrue(p.ready)
def test_preplace(self): m = Mock() p = promise(m) p2 = preplace(p, 1, 2, z=3) p2(4, 5, x=3) m.assert_called_with(1, 2, z=3)