def test_periodic_buffered_action_loop_sleep(monkeypatch): handle = {} def sleep(s): assert 0.2 == s handle['slept'] = True handle['pba'].stop() monkeypatch.setattr('time.sleep', sleep) pba = PeriodicBufferedAction(action=None, t_random_fraction=0) handle['pba'] = pba pba.start() pba._loop() assert handle['slept']
def test_periodic_buffered_action_loop_sleep(monkeypatch): handle = {} def sleep(s): assert 0.2 == s handle['slept'] = True handle['pba'].stop() monkeypatch.setattr('time.sleep', sleep) pba = PeriodicBufferedAction(action=None, t_random_fraction=0) handle['pba'] = pba pba.start() pba._loop() assert handle['slept']
def test_periodic_buffered_action(monkeypatch): thread = MagicMock() sleep = MagicMock() monkeypatch.setattr('threading.Thread', thread) monkeypatch.setattr('time.sleep', sleep) data = {'foo': 'bar'} handle = {} def action(elems): assert [data] == elems if not handle.get('counter'): handle['counter'] = 1 raise Exception('Fail the first time') handle['pba'].stop() pba = PeriodicBufferedAction(action=action, t_wait=0) handle['pba'] = pba pba.enqueue(data) pba.start() assert pba.is_active() pba._loop()
def test_periodic_buffered_action_retries_exceeded(monkeypatch): thread = MagicMock() sleep = MagicMock() monkeypatch.setattr('threading.Thread', thread) monkeypatch.setattr('time.sleep', sleep) data = 'FAIL-AND-DROP-ME' handle = {} def action(elems): assert [data] == elems if not handle.get('counter'): handle['counter'] = 1 else: handle['pba'].stop() raise Exception('Fail always') pba = PeriodicBufferedAction(action=action, retries=1, t_wait=0) handle['pba'] = pba pba.enqueue(data) pba.start() pba._loop()
def test_periodic_buffered_action(monkeypatch): thread = MagicMock() sleep = MagicMock() monkeypatch.setattr('threading.Thread', thread) monkeypatch.setattr('time.sleep', sleep) data = {'foo': 'bar'} handle = {} def action(elems): assert [data] == elems if not handle.get('counter'): handle['counter'] = 1 raise Exception('Fail the first time') handle['pba'].stop() pba = PeriodicBufferedAction(action=action, t_wait=0) handle['pba'] = pba pba.enqueue(data) pba.start() assert pba.is_active() pba._loop()
def test_periodic_buffered_action_retries_exceeded(monkeypatch): thread = MagicMock() sleep = MagicMock() monkeypatch.setattr('threading.Thread', thread) monkeypatch.setattr('time.sleep', sleep) data = 'FAIL-AND-DROP-ME' handle = {} def action(elems): assert [data] == elems if not handle.get('counter'): handle['counter'] = 1 else: handle['pba'].stop() raise Exception('Fail always') pba = PeriodicBufferedAction(action=action, retries=1, t_wait=0) handle['pba'] = pba pba.enqueue(data) pba.start() pba._loop()