Merge pull request #10097 from freqtrade/feat/measure_time

Add "measure time" to warn users about strategies taking excessive time
This commit is contained in:
Matthias
2024-04-21 11:28:54 +02:00
committed by GitHub
5 changed files with 92 additions and 4 deletions

View File

@@ -0,0 +1,34 @@
from unittest.mock import MagicMock
import time_machine
from freqtrade.util import MeasureTime
def test_measure_time():
callback = MagicMock()
with time_machine.travel("2021-09-01 05:00:00 +00:00", tick=False) as t:
measure = MeasureTime(callback, 5, ttl=60)
with measure:
pass
assert callback.call_count == 0
with measure:
t.shift(10)
assert callback.call_count == 1
callback.reset_mock()
with measure:
t.shift(10)
assert callback.call_count == 0
callback.reset_mock()
# Shift past the ttl
t.shift(45)
with measure:
t.shift(10)
assert callback.call_count == 1