def test_retries(create_retries, retries, result): # TODO: Не работает с started_utc=None FlowItem.delete().where(FlowItem.name == FLOW_NAME).execute() FlowItem.create( **{ FlowItem.name.name: FLOW_NAME, FlowItem.worktime.name: pendulum.datetime(2020, 1, 1, tz="Europe/Moscow"), FlowItem.started_utc.name: dt.datetime(2020, 1, 1), FlowItem.status.name: FlowStatus.error, FlowItem.retries.name: create_retries, } ) FlowItem.retry_error_items(FLOW_NAME, retries=retries, retry_delay=60) items = FlowItem.select().where( FlowItem.name == FLOW_NAME, FlowItem.status == FlowStatus.add ) assert len(items) == int(result)
def test_retry_delay(retry_delay, passed_sec, is_run): # TODO: Не работает с started_utc=None FlowItem.delete().where(FlowItem.name == FLOW_NAME).execute() FlowItem.create( **{ FlowItem.name.name: FLOW_NAME, FlowItem.worktime.name: pendulum.datetime(2020, 1, 1, tz="Europe/Moscow"), FlowItem.started_utc.name: dt.datetime(2020, 1, 1, 0, 0, 0), FlowItem.status.name: FlowStatus.error, FlowItem.retries.name: 0, } ) FlowItem.get_utcnow = Mock(return_value=dt.datetime(2020, 1, 1, 0, 0, passed_sec)) FlowItem.retry_error_items(FLOW_NAME, retries=1, retry_delay=retry_delay) items = FlowItem.select().where( FlowItem.name == FLOW_NAME, FlowItem.status == FlowStatus.add ) assert len(items) == int(is_run)
def test_retries(create_retries, retries, result, pendulum_utctoday, flowitem_model): name = "__test_retries__" flowitem_model.clear(name) flowitem_model.create( **{ FlowItem.name.name: name, FlowItem.worktime.name: pendulum_utctoday, FlowItem.finished_utc.name: pendulum_utctoday, FlowItem.status.name: Statuses.error, FlowItem.retries.name: create_retries, }) items = FlowItem.retry_error_items(name, retries=retries, retry_delay=0) assert len(items) == int(result)