mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-01-20 14:00:38 +00:00
Add NoDbContext context manager
This commit is contained in:
@@ -4,4 +4,5 @@ from freqtrade.persistence.key_value_store import KeyStoreKeys, KeyValueStore
|
||||
from freqtrade.persistence.models import init_db
|
||||
from freqtrade.persistence.pairlock_middleware import PairLocks
|
||||
from freqtrade.persistence.trade_model import LocalTrade, Order, Trade
|
||||
from freqtrade.persistence.usedb_context import disable_database_use, enable_database_use
|
||||
from freqtrade.persistence.usedb_context import (FtNoDBContext, disable_database_use,
|
||||
enable_database_use)
|
||||
|
||||
@@ -20,3 +20,14 @@ def enable_database_use() -> None:
|
||||
PairLocks.use_db = True
|
||||
PairLocks.timeframe = ''
|
||||
Trade.use_db = True
|
||||
|
||||
|
||||
class FtNoDBContext:
|
||||
def __init__(self, timeframe: str = ''):
|
||||
self.timeframe = timeframe
|
||||
|
||||
def __enter__(self):
|
||||
disable_database_use(self.timeframe)
|
||||
|
||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||
enable_database_use()
|
||||
|
||||
24
tests/persistence/test_db_context.py
Normal file
24
tests/persistence/test_db_context.py
Normal file
@@ -0,0 +1,24 @@
|
||||
import pytest
|
||||
|
||||
from freqtrade.persistence import FtNoDBContext, PairLocks, Trade
|
||||
|
||||
|
||||
@pytest.mark.parametrize('timeframe', ['', '5m', '1d'])
|
||||
def test_FtNoDBContext(timeframe):
|
||||
assert Trade.use_db is True
|
||||
assert PairLocks.use_db is True
|
||||
assert PairLocks.timeframe == ''
|
||||
|
||||
with FtNoDBContext(timeframe):
|
||||
assert Trade.use_db is False
|
||||
assert PairLocks.use_db is False
|
||||
assert PairLocks.timeframe == timeframe
|
||||
|
||||
with FtNoDBContext():
|
||||
assert Trade.use_db is False
|
||||
assert PairLocks.use_db is False
|
||||
assert PairLocks.timeframe == ''
|
||||
|
||||
assert Trade.use_db is True
|
||||
assert PairLocks.use_db is True
|
||||
|
||||
Reference in New Issue
Block a user