def METHOD_NAME(mocker, default_conf, caplog) -> None:
    caplog.set_level(logging.DEBUG)
    worker = get_patched_worker(mocker, default_conf)
    sleep_mock = mocker.patch("freqtrade.worker.Worker._sleep")
    with time_machine.travel("2022-09-01 05:00:00 +00:00") as t:
        def throttled_func(x=1):
            t.shift(timedelta(seconds=x))
            return 42
        assert worker._throttle(throttled_func, throttle_secs=5) == 42
        # This moves the clock by 1 second
        assert sleep_mock.call_count == 1
        assert 3.8 < sleep_mock.call_args[0][0] < 4.1
        sleep_mock.reset_mock()
        # This moves the clock by 1 second
        assert worker._throttle(throttled_func, throttle_secs=10) == 42
        assert sleep_mock.call_count == 1
        assert 8.8 < sleep_mock.call_args[0][0] < 9.1
        sleep_mock.reset_mock()
        # This moves the clock by 5 second, so we only throttle by 5s
        assert worker._throttle(throttled_func, throttle_secs=10, x=5) == 42
        assert sleep_mock.call_count == 1
        assert 4.8 < sleep_mock.call_args[0][0] < 5.1
        t.move_to("2022-09-01 05:01:00 +00:00")
        sleep_mock.reset_mock()
        # Throttle for more than 5m (1 timeframe)
        assert worker._throttle(throttled_func, throttle_secs=400, x=5) == 42
        assert sleep_mock.call_count == 1
        assert 394.8 < sleep_mock.call_args[0][0] < 395.1
        t.move_to("2022-09-01 05:01:00 +00:00")
        sleep_mock.reset_mock()
        # Throttle for more than 5m (1 timeframe)
        assert worker._throttle(throttled_func, throttle_secs=400, timeframe='5m',
                                timeframe_offset=0.4, x=5) == 42
        assert sleep_mock.call_count == 1
        # 300 (5m) - 60 (1m - see set time above) - 5 (duration of throttled_func) = 235
        assert 235.2 < sleep_mock.call_args[0][0] < 235.6
        t.move_to("2022-09-01 05:04:51 +00:00")
        sleep_mock.reset_mock()
        # Offset of 5s, so we hit the sweet-spot between "candle" and "candle offset"
        # Which should not get a throttle iteration to avoid late candle fetching
        assert worker._throttle(throttled_func, throttle_secs=10, timeframe='5m',
                                timeframe_offset=5, x=1.2) == 42
        assert sleep_mock.call_count == 1
        # Time is slightly bigger than throttle secs due to the high timeframe offset.
        assert 11.1 < sleep_mock.call_args[0][0] < 13.2