Removed "is not None"

https://stackoverflow.com/users/566644/lauritz-v-thaulow

freqtrade\configuration\configuration.py:461 reduced checks

freqtrade\persistence\trade_model.py:fee_updated - reduced code
This commit is contained in:
மனோஜ்குமார் பழனிச்சாமி
2022-05-18 03:27:18 +05:30
parent 7b9439f2e4
commit e7f15fb61f
48 changed files with 191 additions and 194 deletions

View File

@@ -258,8 +258,8 @@ def create_mock_trades(fee, is_short: Optional[bool] = False, use_db: bool = Tru
Trade.query.session.add(trade)
else:
LocalTrade.add_bt_trade(trade)
is_short1 = is_short if is_short is not None else True
is_short2 = is_short if is_short is not None else False
is_short1 = is_short if is_short else True
is_short2 = is_short if is_short else False
# Simulate dry_run entries
trade = mock_trade_1(fee, is_short1)
add_trade(trade)

View File

@@ -621,7 +621,7 @@ def test_download_trades_history(trades_history, mocker, default_conf, testdatad
assert ght_mock.call_count == 1
# Check this in seconds - since we had to convert to seconds above too.
assert int(ght_mock.call_args_list[0][1]['since'] // 1000) == since_time2 - 5
assert ght_mock.call_args_list[0][1]['from_id'] is not None
assert ght_mock.call_args_list[0][1]['from_id']
file1.unlink()

View File

@@ -173,12 +173,12 @@ class TestCCXTExchange():
tickers = exchange.get_tickers()
assert pair in tickers
assert 'ask' in tickers[pair]
assert tickers[pair]['ask'] is not None
assert tickers[pair]['ask']
assert 'bid' in tickers[pair]
assert tickers[pair]['bid'] is not None
assert tickers[pair]['bid']
assert 'quoteVolume' in tickers[pair]
if EXCHANGES[exchangename].get('hasQuoteVolume'):
assert tickers[pair]['quoteVolume'] is not None
assert tickers[pair]['quoteVolume']
def test_ccxt_fetch_ticker(self, exchange):
exchange, exchangename = exchange
@@ -186,12 +186,12 @@ class TestCCXTExchange():
ticker = exchange.fetch_ticker(pair)
assert 'ask' in ticker
assert ticker['ask'] is not None
assert ticker['ask']
assert 'bid' in ticker
assert ticker['bid'] is not None
assert ticker['bid']
assert 'quoteVolume' in ticker
if EXCHANGES[exchangename].get('hasQuoteVolume'):
assert ticker['quoteVolume'] is not None
assert ticker['quoteVolume']
def test_ccxt_fetch_l2_orderbook(self, exchange):
exchange, exchangename = exchange

View File

@@ -2384,7 +2384,7 @@ def test_get_exit_rate(default_conf, mocker, caplog, side, bid, ask,
caplog.set_level(logging.DEBUG)
default_conf['exit_pricing']['price_side'] = side
if last_ab is not None:
if last_ab:
default_conf['exit_pricing']['price_last_balance'] = last_ab
mocker.patch('freqtrade.exchange.Exchange.fetch_ticker',
return_value={'ask': ask, 'bid': bid, 'last': last})

View File

@@ -40,7 +40,7 @@ def test_stoploss_order_kucoin(default_conf, mocker, limitratio, expected, side,
api_mock.create_order.reset_mock()
order_types = {'stoploss': order_type}
if limitratio is not None:
if limitratio:
order_types.update({'stoploss_on_exchange_limit_ratio': limitratio})
order = exchange.stoploss(pair='ETH/BTC', amount=1, stop_price=220,
order_types=order_types, side=side, leverage=1.0)

View File

@@ -914,7 +914,7 @@ def test_backtest_results(default_conf, fee, mocker, caplog, data: BTContainer)
'exit': data.timeout,
})
# Only add this to configuration If it's necessary
if data.trailing_stop_positive is not None:
if data.trailing_stop_positive:
default_conf["trailing_stop_positive"] = data.trailing_stop_positive
default_conf["trailing_stop_positive_offset"] = data.trailing_stop_positive_offset
default_conf["use_exit_signal"] = data.use_exit_signal

View File

@@ -407,7 +407,7 @@ def test_backtesting_start(default_conf, mocker, testdatadir, caplog) -> None:
]
for line in exists:
assert log_has(line, caplog)
assert backtesting.strategy.dp._pairlists is not None
assert backtesting.strategy.dp._pairlists
assert backtesting.strategy.bot_loop_start.call_count == 1
assert sbs.call_count == 1
assert sbc.call_count == 1
@@ -540,7 +540,7 @@ def test_backtest__enter_trade(default_conf, fee, mocker) -> None:
assert trade is None
LocalTrade.trades_open.pop()
trade = backtesting._enter_trade(pair, row=row, direction='long')
assert trade is not None
assert trade
backtesting.strategy.custom_stake_amount = lambda **kwargs: 123.5
backtesting.wallets.update()
@@ -716,7 +716,7 @@ def test_backtest__get_sell_trade_entry(default_conf, fee, mocker) -> None:
# No data available.
res = backtesting._get_exit_trade_entry(trade, row_sell)
assert res is not None
assert res
assert res.exit_reason == ExitType.ROI.value
assert res.close_date_utc == datetime(2020, 1, 1, 5, 0, tzinfo=timezone.utc)
@@ -735,12 +735,12 @@ def test_backtest__get_sell_trade_entry(default_conf, fee, mocker) -> None:
backtesting.detail_data[pair] = row_detail
res = backtesting._get_exit_trade_entry(trade, row_sell)
assert res is not None
assert res
assert res.exit_reason == ExitType.ROI.value
# Sell at minute 3 (not available above!)
assert res.close_date_utc == datetime(2020, 1, 1, 5, 3, tzinfo=timezone.utc)
sell_order = res.select_order('sell', True)
assert sell_order is not None
assert sell_order
def test_backtest_one(default_conf, fee, mocker, testdatadir) -> None:
@@ -801,7 +801,7 @@ def test_backtest_one(default_conf, fee, mocker, testdatadir) -> None:
for _, t in results.iterrows():
ln = data_pair.loc[data_pair["date"] == t["open_date"]]
# Check open trade rate alignes to open rate
assert ln is not None
assert ln
assert round(ln.iloc[0]["open"], 6) == round(t["open_rate"], 6)
# check close trade rate alignes to close rate or is between high and low
ln = data_pair.loc[data_pair["date"] == t["close_date"]]

View File

@@ -76,7 +76,7 @@ def test_backtest_position_adjustment(default_conf, fee, mocker, testdatadir) ->
for _, t in results.iterrows():
ln = data_pair.loc[data_pair["date"] == t["open_date"]]
# Check open trade rate alignes to open rate
assert ln is not None
assert ln
# check close trade rate alignes to close rate or is between high and low
ln = data_pair.loc[data_pair["date"] == t["close_date"]]
assert (round(ln.iloc[0]["open"], 6) == round(t["close_rate"], 6) or

View File

@@ -1169,7 +1169,7 @@ def test_pricefilter_desc(mocker, whitelist_conf, markets, pairlistconfig,
)
whitelist_conf['pairlists'] = [pairlistconfig]
if desc_expected is not None:
if desc_expected:
freqtrade = get_patched_freqtradebot(mocker, whitelist_conf)
short_desc = str(freqtrade.pairlists.short_desc())
assert short_desc == desc_expected

View File

@@ -45,7 +45,7 @@ def test_search_all_strategies_with_failed():
assert len(strategies) == 6
# with enum_failed=True search_all_objects() shall find 2 good strategies
# and 1 which fails to load
assert len([x for x in strategies if x['class'] is not None]) == 5
assert len([x for x in strategies if x['class']]) == 5
assert len([x for x in strategies if x['class'] is None]) == 1

View File

@@ -131,7 +131,7 @@ def test_parse_args_backtesting_custom() -> None:
assert call_args['config'] == ['test_conf.json']
assert call_args['verbosity'] == 0
assert call_args['command'] == 'backtesting'
assert call_args['func'] is not None
assert call_args['func']
assert call_args['timeframe'] == '1m'
assert type(call_args['strategy_list']) is list
assert len(call_args['strategy_list']) == 2
@@ -150,7 +150,7 @@ def test_parse_args_hyperopt_custom() -> None:
assert call_args['verbosity'] == 0
assert call_args['command'] == 'hyperopt'
assert call_args['spaces'] == ['buy']
assert call_args['func'] is not None
assert call_args['func']
assert callable(call_args['func'])

View File

@@ -160,7 +160,7 @@ def test_check_available_stake_amount(
for i in range(0, max_open):
if expected[i] is not None:
if expected[i]:
limit_buy_order_usdt_open['id'] = str(i)
result = freqtrade.wallets.get_trade_stake_amount('ETH/USDT')
assert pytest.approx(result) == expected[i]
@@ -257,18 +257,18 @@ def test_total_open_trades_stakes(mocker, default_conf_usdt, ticker_usdt, fee) -
freqtrade.enter_positions()
trade = Trade.query.first()
assert trade is not None
assert trade
assert trade.stake_amount == 60.0
assert trade.is_open
assert trade.open_date is not None
assert trade.open_date
freqtrade.enter_positions()
trade = Trade.query.order_by(Trade.id.desc()).first()
assert trade is not None
assert trade
assert trade.stake_amount == 60.0
assert trade.is_open
assert trade.open_date is not None
assert trade.open_date
assert Trade.total_open_trades_stakes() == 120.0
@@ -296,10 +296,10 @@ def test_create_trade(default_conf_usdt, ticker_usdt, limit_order,
trade = Trade.query.first()
trade.is_short = is_short
assert trade is not None
assert trade
assert pytest.approx(trade.stake_amount) == 60.0
assert trade.is_open
assert trade.open_date is not None
assert trade.open_date
assert trade.exchange == 'binance'
# Simulate fulfilled LIMIT_BUY order for trade
@@ -553,10 +553,10 @@ def test_process_trade_creation(default_conf_usdt, ticker_usdt, limit_order, lim
trades = Trade.query.filter(Trade.is_open.is_(True)).all()
assert len(trades) == 1
trade = trades[0]
assert trade is not None
assert trade
assert pytest.approx(trade.stake_amount) == default_conf_usdt['stake_amount']
assert trade.is_open
assert trade.open_date is not None
assert trade.open_date
assert trade.exchange == 'binance'
assert trade.open_rate == ticker_usdt.return_value[ticker_side]
assert isclose(trade.amount, 60 / ticker_usdt.return_value[ticker_side])
@@ -2150,7 +2150,7 @@ def test_handle_trade(
assert trade.close_rate == 2.0 if is_short else 2.2
assert trade.close_profit == close_profit
assert trade.calc_profit() == 5.685
assert trade.close_date is not None
assert trade.close_date
assert trade.exit_reason == 'sell_signal1'
@@ -4348,8 +4348,8 @@ def test_get_real_amount_multi(
assert trade.fee_open == expected_fee
assert trade.fee_close == expected_fee
assert trade.fee_open_cost is not None
assert trade.fee_open_currency is not None
assert trade.fee_open_cost
assert trade.fee_open_currency
assert trade.fee_close_cost is None
assert trade.fee_close_currency is None
@@ -4540,10 +4540,10 @@ def test_order_book_depth_of_market(
assert trade is None
else:
trade.is_short = is_short
assert trade is not None
assert trade
assert pytest.approx(trade.stake_amount) == 60.0
assert trade.is_open
assert trade.open_date is not None
assert trade.open_date
assert trade.exchange == 'binance'
assert len(Trade.query.all()) == 1
@@ -4853,15 +4853,15 @@ def test_update_closed_trades_without_assigned_fees(mocker, default_conf_usdt, f
if trade.is_open:
# Exclude Trade 4 - as the order is still open.
if trade.select_order(entry_side(is_short), False):
assert trade.fee_open_cost is not None
assert trade.fee_open_currency is not None
assert trade.fee_open_cost
assert trade.fee_open_currency
else:
assert trade.fee_open_cost is None
assert trade.fee_open_currency is None
else:
assert trade.fee_close_cost is not None
assert trade.fee_close_currency is not None
assert trade.fee_close_cost
assert trade.fee_close_currency
@pytest.mark.usefixtures("init_persistence")
@@ -4954,7 +4954,7 @@ def test_handle_insufficient_funds(mocker, default_conf_usdt, fee, is_short, cap
assert mock_fo.call_count == 1
assert mock_uts.call_count == 1
# Found open buy order
assert trade.open_order_id is not None
assert trade.open_order_id
assert trade.stoploss_order_id is None
caplog.clear()
@@ -4973,7 +4973,7 @@ def test_handle_insufficient_funds(mocker, default_conf_usdt, fee, is_short, cap
assert mock_uts.call_count == 2
# stoploss_order_id is "refound" and added to the trade
assert trade.open_order_id is None
assert trade.stoploss_order_id is not None
assert trade.stoploss_order_id
caplog.clear()
mock_fo.reset_mock()

View File

@@ -374,7 +374,7 @@ def test_dca_order_adjust(default_conf_usdt, ticker_usdt, fee, mocker) -> None:
assert len(Trade.get_trades().all()) == 1
trade: Trade = Trade.get_trades().first()
assert len(trade.orders) == 1
assert trade.open_order_id is not None
assert trade.open_order_id
assert pytest.approx(trade.stake_amount) == 60
assert trade.open_rate == 1.96
assert trade.stop_loss_pct is None
@@ -385,7 +385,7 @@ def test_dca_order_adjust(default_conf_usdt, ticker_usdt, fee, mocker) -> None:
freqtrade.process()
trade = Trade.get_trades().first()
assert len(trade.orders) == 1
assert trade.open_order_id is not None
assert trade.open_order_id
assert pytest.approx(trade.stake_amount) == 60
# Cancel order and place new one
@@ -393,7 +393,7 @@ def test_dca_order_adjust(default_conf_usdt, ticker_usdt, fee, mocker) -> None:
freqtrade.process()
trade = Trade.get_trades().first()
assert len(trade.orders) == 2
assert trade.open_order_id is not None
assert trade.open_order_id
# Open rate is not adjusted yet
assert trade.open_rate == 1.96
assert trade.stop_loss_pct is None
@@ -421,7 +421,7 @@ def test_dca_order_adjust(default_conf_usdt, ticker_usdt, fee, mocker) -> None:
freqtrade.process()
trade = Trade.get_trades().first()
assert len(trade.orders) == 3
assert trade.open_order_id is not None
assert trade.open_order_id
assert trade.open_rate == 1.99
assert trade.orders[-1].price == 1.96
assert trade.orders[-1].cost == 120
@@ -432,7 +432,7 @@ def test_dca_order_adjust(default_conf_usdt, ticker_usdt, fee, mocker) -> None:
freqtrade.process()
trade = Trade.get_trades().first()
assert len(trade.orders) == 4
assert trade.open_order_id is not None
assert trade.open_order_id
assert trade.open_rate == 1.99
assert trade.orders[-1].price == 1.95
assert pytest.approx(trade.orders[-1].cost) == 120

View File

@@ -38,7 +38,7 @@ def test_parse_args_backtesting(mocker) -> None:
assert call_args['config'] == ['config.json']
assert call_args['verbosity'] == 0
assert call_args['command'] == 'backtesting'
assert call_args['func'] is not None
assert call_args['func']
assert callable(call_args['func'])
assert call_args['timeframe'] is None
@@ -55,7 +55,7 @@ def test_main_start_hyperopt(mocker) -> None:
assert call_args['config'] == ['config.json']
assert call_args['verbosity'] == 0
assert call_args['command'] == 'hyperopt'
assert call_args['func'] is not None
assert call_args['func']
assert callable(call_args['func'])

View File

@@ -501,7 +501,7 @@ def test_update_limit_order(fee, caplog, limit_buy_order_usdt, limit_sell_order_
assert trade.open_order_id is None
assert trade.close_rate == close_rate
assert trade.close_profit == profit
assert trade.close_date is not None
assert trade.close_date
assert log_has_re(f"LIMIT_{exit_side.upper()} has been fulfilled for "
r"Trade\(id=2, pair=ADA/USDT, amount=30.00000000, "
f"is_short={is_short}, leverage={lev}, open_rate={open_rate}0000000, "
@@ -547,7 +547,7 @@ def test_update_market_order(market_buy_order_usdt, market_sell_order_usdt, fee,
assert trade.open_order_id is None
assert trade.close_rate == 2.2
assert trade.close_profit == round(0.0945137157107232, 8)
assert trade.close_date is not None
assert trade.close_date
assert log_has_re(r"MARKET_SELL has been fulfilled for Trade\(id=1, "
r"pair=ADA/USDT, amount=30.00000000, is_short=False, leverage=1.0, "
r"open_rate=2.00000000, open_since=.*\).",
@@ -632,7 +632,7 @@ def test_trade_close(limit_buy_order_usdt, limit_sell_order_usdt, fee):
trade.close(2.2)
assert trade.is_open is False
assert trade.close_profit == round(0.0945137157107232, 8)
assert trade.close_date is not None
assert trade.close_date
new_date = arrow.Arrow(2020, 2, 2, 15, 6, 1).datetime,
assert trade.close_date != new_date
@@ -2042,7 +2042,7 @@ def test_fee_updated(fee):
trade.update_fee(0.15, 'BTC', 0.0075, 'buy')
assert trade.fee_updated('buy')
assert not trade.fee_updated('sell')
assert trade.fee_open_currency is not None
assert trade.fee_open_currency
assert trade.fee_close_currency is None
trade.update_fee(0.15, 'ABC', 0.0075, 'sell')
@@ -2204,7 +2204,7 @@ def test_update_order_from_ccxt(caplog):
assert o.price == 1234.5
assert o.filled == 9
assert o.remaining == 11
assert o.order_date is not None
assert o.order_date
assert o.ft_is_open
assert o.order_filled_date is None
@@ -2220,7 +2220,7 @@ def test_update_order_from_ccxt(caplog):
assert o.filled == 20.0
assert o.remaining == 0.0
assert not o.ft_is_open
assert o.order_filled_date is not None
assert o.order_filled_date
ccxt_order.update({'id': 'somethingelse'})
with pytest.raises(DependencyException, match=r"Order-id's don't match"):
@@ -2246,7 +2246,7 @@ def test_select_order(fee, is_short):
order = trades[0].select_order(trades[0].entry_side, True)
assert order is None
order = trades[0].select_order(trades[0].entry_side, False)
assert order is not None
assert order
order = trades[0].select_order(trades[0].exit_side, None)
assert order is None
@@ -2254,17 +2254,17 @@ def test_select_order(fee, is_short):
order = trades[1].select_order(trades[1].entry_side, True)
assert order is None
order = trades[1].select_order(trades[1].entry_side, False)
assert order is not None
assert order
order = trades[1].select_order(trades[1].entry_side, None)
assert order is not None
assert order
order = trades[1].select_order(trades[1].exit_side, True)
assert order is None
order = trades[1].select_order(trades[1].exit_side, False)
assert order is not None
assert order
# Has open buy order
order = trades[3].select_order(trades[3].entry_side, True)
assert order is not None
assert order
order = trades[3].select_order(trades[3].entry_side, False)
assert order is None
@@ -2272,15 +2272,15 @@ def test_select_order(fee, is_short):
order = trades[4].select_order(trades[4].entry_side, True)
assert order is None
order = trades[4].select_order(trades[4].entry_side, False)
assert order is not None
assert order
trades[4].orders[1].ft_order_side = trades[4].exit_side
order = trades[4].select_order(trades[4].exit_side, True)
assert order is not None
assert order
trades[4].orders[1].ft_order_side = 'stoploss'
order = trades[4].select_order('stoploss', None)
assert order is not None
assert order
assert order.ft_order_side == 'stoploss'
@@ -2685,7 +2685,7 @@ def test_select_filled_orders(fee):
# Closed buy order, no sell order
orders = trades[0].select_filled_orders('buy')
assert orders is not None
assert orders
assert len(orders) == 1
order = orders[0]
assert order.amount > 0
@@ -2694,30 +2694,30 @@ def test_select_filled_orders(fee):
assert order.ft_order_side == 'buy'
assert order.status == 'closed'
orders = trades[0].select_filled_orders('sell')
assert orders is not None
assert orders
assert len(orders) == 0
# closed buy order, and closed sell order
orders = trades[1].select_filled_orders('buy')
assert orders is not None
assert orders
assert len(orders) == 1
orders = trades[1].select_filled_orders('sell')
assert orders is not None
assert orders
assert len(orders) == 1
# Has open buy order
orders = trades[3].select_filled_orders('buy')
assert orders is not None
assert orders
assert len(orders) == 0
orders = trades[3].select_filled_orders('sell')
assert orders is not None
assert orders
assert len(orders) == 0
# Open sell order
orders = trades[4].select_filled_orders('buy')
assert orders is not None
assert orders
assert len(orders) == 1
orders = trades[4].select_filled_orders('sell')
assert orders is not None
assert orders
assert len(orders) == 0

View File

@@ -147,7 +147,7 @@ def test_get_trade_stake_amount_unlimited_amount(default_conf, ticker, balance_r
conf['dry_run_wallet'] = 100
conf['max_open_trades'] = 2
conf['tradable_balance_ratio'] = balance_ratio
if capital is not None:
if capital:
conf['available_capital'] = capital
freqtrade = get_patched_freqtradebot(mocker, conf)