def test_enter__exit(self): P = self.hub.poller = Mock() on_close = Mock() self.hub.on_close.add(on_close) try: read_A = Mock() read_B = Mock() self.hub.add_reader(10, read_A) self.hub.add_reader(File(11), read_B) write_A = Mock() write_B = Mock() self.hub.add_writer(20, write_A) self.hub.add_writer(File(21), write_B) self.assertTrue(self.hub.readers) self.assertTrue(self.hub.writers) finally: assert self.hub.poller self.hub.close() self.assertFalse(self.hub.readers) self.assertFalse(self.hub.writers) P.unregister.assert_has_calls([ call(10), call(11), call(20), call(21), ], any_order=True) on_close.assert_called_with(self.hub)
def test_on_message_ready(self): channel = Mock(name='channel') msg = Mock(name='msg') callback = Mock(name='callback') self.transport._callbacks = {'q1': callback} self.transport.on_message_ready(channel, msg, queue='q1') callback.assert_called_with(msg)
def test_on_message_ready(self): channel = Mock(name='channel') msg = Mock(name='msg') callback = Mock(name='callback') self.transport._callbacks = {'q1': callback} self.transport.on_message_ready(channel, msg, queue='q1') callback.assert_called_with(msg)
def test_enter__exit(self): P = self.hub.poller = Mock() on_close = Mock() self.hub.on_close.add(on_close) try: read_A = Mock() read_B = Mock() self.hub.add_reader(10, read_A) self.hub.add_reader(File(11), read_B) write_A = Mock() write_B = Mock() self.hub.add_writer(20, write_A) self.hub.add_writer(File(21), write_B) self.assertTrue(self.hub.readers) self.assertTrue(self.hub.writers) finally: assert self.hub.poller self.hub.close() self.assertFalse(self.hub.readers) self.assertFalse(self.hub.writers) P.unregister.assert_has_calls([ call(10), call(11), call(20), call(21), ], any_order=True) on_close.assert_called_with(self.hub)
def test_enter_after(self): t = Timer() t._enter = Mock() fun = Mock(name='fun') time = Mock(name='time') time.return_value = 10 t.enter_after(10, fun, time=time) time.assert_called_with() t._enter.assert_called_with(20, 0, fun)
def test_apply_entry_error_not_handled(self, stdout, stderr): t = Timer() t.schedule.on_error = Mock() fun = Mock() fun.side_effect = ValueError() t.schedule.apply_entry(fun) fun.assert_called_with() self.assertFalse(stderr.getvalue())
def test_enter_after(self): t = Timer() t._enter = Mock() fun = Mock(name="fun") time = Mock(name="time") time.return_value = 10 t.enter_after(10, fun, time=time) time.assert_called_with() t._enter.assert_called_with(20, 0, fun)
def test_apply_entry_error_not_handled(self, stdout, stderr): t = Timer() t.schedule.on_error = Mock() fun = Mock() fun.side_effect = ValueError() t.schedule.apply_entry(fun) fun.assert_called_with() self.assertFalse(stderr.getvalue())
def test_mexe__with_sender(self, _): x = AsyncAWSAuthConnection('aws.vandelay.com', http_client=Mock(name='client')) Conn = x.get_http_connection = Mock(name='get_http_connection') request = x.build_base_http_request('GET', 'foo', '/auth') sender = Mock(name='sender') callback = PromiseMock(name='callback') x._mexe(request, sender=sender, callback=callback) sender.assert_called_with( Conn.return_value, request.method, request.path, request.body, request.headers, callback, )
def test_mexe__with_sender(self, _): x = AsyncAWSAuthConnection('aws.vandelay.com', http_client=Mock(name='client')) Conn = x.get_http_connection = Mock(name='get_http_connection') request = x.build_base_http_request('GET', 'foo', '/auth') sender = Mock(name='sender') callback = PromiseMock(name='callback') x._mexe(request, sender=sender, callback=callback) sender.assert_called_with( Conn.return_value, request.method, request.path, request.body, request.headers, callback, )
def test_simple(self): prev_count, utils.count = utils.count, Mock() try: utils.count.return_value = list(range(1)) x = utils.retry_over_time(self.myfun, self.Predicate, errback=None, interval_max=14) self.assertIsNone(x) utils.count.return_value = list(range(10)) cb = Mock() x = utils.retry_over_time(self.myfun, self.Predicate, errback=self.errback, callback=cb, interval_max=14) self.assertEqual(x, 42) self.assertEqual(self.index, 9) cb.assert_called_with() finally: utils.count = prev_count
def test_simple(self): prev_count, utils.count = utils.count, Mock() try: utils.count.return_value = list(range(1)) x = utils.retry_over_time(self.myfun, self.Predicate, errback=None, interval_max=14) self.assertIsNone(x) utils.count.return_value = list(range(10)) cb = Mock() x = utils.retry_over_time(self.myfun, self.Predicate, errback=self.errback, callback=cb, interval_max=14) self.assertEqual(x, 42) self.assertEqual(self.index, 9) cb.assert_called_with() finally: utils.count = prev_count
def test_acquire_release(self): x = LaxBoundedSemaphore(2) c1 = Mock() x.acquire(c1, 1) self.assertEqual(x.value, 1) c1.assert_called_with(1) c2 = Mock() x.acquire(c2, 2) self.assertEqual(x.value, 0) c2.assert_called_with(2) c3 = Mock() x.acquire(c3, 3) self.assertEqual(x.value, 0) self.assertFalse(c3.called) x.release() self.assertEqual(x.value, 0) x.release() self.assertEqual(x.value, 1) x.release() self.assertEqual(x.value, 2) c3.assert_called_with(3)
def test_acquire_release(self): x = LaxBoundedSemaphore(2) c1 = Mock() x.acquire(c1, 1) self.assertEqual(x.value, 1) c1.assert_called_with(1) c2 = Mock() x.acquire(c2, 2) self.assertEqual(x.value, 0) c2.assert_called_with(2) c3 = Mock() x.acquire(c3, 3) self.assertEqual(x.value, 0) c3.assert_not_called() x.release() self.assertEqual(x.value, 0) x.release() self.assertEqual(x.value, 1) x.release() self.assertEqual(x.value, 2) c3.assert_called_with(3)
def test_grow_shrink(self): x = LaxBoundedSemaphore(1) self.assertEqual(x.initial_value, 1) cb1 = Mock() x.acquire(cb1, 1) cb1.assert_called_with(1) self.assertEqual(x.value, 0) cb2 = Mock() x.acquire(cb2, 2) self.assertFalse(cb2.called) self.assertEqual(x.value, 0) cb3 = Mock() x.acquire(cb3, 3) self.assertFalse(cb3.called) x.grow(2) cb2.assert_called_with(2) cb3.assert_called_with(3) self.assertEqual(x.value, 2) self.assertEqual(x.initial_value, 3) self.assertFalse(x._waiting) x.grow(3) for i in range(x.initial_value): self.assertTrue(x.acquire(Mock())) self.assertFalse(x.acquire(Mock())) x.clear() x.shrink(3) for i in range(x.initial_value): self.assertTrue(x.acquire(Mock())) self.assertFalse(x.acquire(Mock())) self.assertEqual(x.value, 0) for i in range(100): x.release() self.assertEqual(x.value, x.initial_value)
def test_grow_shrink(self): x = LaxBoundedSemaphore(1) self.assertEqual(x.initial_value, 1) cb1 = Mock() x.acquire(cb1, 1) cb1.assert_called_with(1) self.assertEqual(x.value, 0) cb2 = Mock() x.acquire(cb2, 2) cb2.assert_not_called() self.assertEqual(x.value, 0) cb3 = Mock() x.acquire(cb3, 3) cb3.assert_not_called() x.grow(2) cb2.assert_called_with(2) cb3.assert_called_with(3) self.assertEqual(x.value, 2) self.assertEqual(x.initial_value, 3) self.assertFalse(x._waiting) x.grow(3) for i in range(x.initial_value): self.assertTrue(x.acquire(Mock())) self.assertFalse(x.acquire(Mock())) x.clear() x.shrink(3) for i in range(x.initial_value): self.assertTrue(x.acquire(Mock())) self.assertFalse(x.acquire(Mock())) self.assertEqual(x.value, 0) for i in range(100): x.release() self.assertEqual(x.value, x.initial_value)