test_vectorized_vs_normal |
|
`` |
test_cerebro_vectorized.py |
? |
? |
n/a |
no |
|
|
test_child_order_exectypes_respected |
Child orders retain their exact execution type and are linked correctly. |
TestChildExecutionTypes |
test_broker_bracket_exec_types.py |
unit |
broker |
both |
no |
'stop_exectype, limit_exectype', [(bt.Order.Stop, bt.Order.Limit), (bt.Order.StopLimit, bt.Order.Limit), (bt.Order.Stop, bt.Order.Market), (bt.Order.StopLimit, bt.Order.Market), (bt.Order.Stop, bt.Order.StopLimit), (bt.Order.StopLimit, bt.Order.StopLimit)] |
make_broker, make_data, make_owner, stop_exectype, limit_exectype, mode |
test_child_fills_before_parent_marked_complete |
If a child order is filled before the parent is completed, the system handles it cleanly. |
TestChildFillTiming |
test_broker_bracket_fill_timing.py |
unit |
broker |
both |
no |
'stop_exectype, limit_exectype', [(bt.Order.Stop, bt.Order.Limit), (bt.Order.StopLimit, bt.Order.Limit), (bt.Order.Stop, bt.Order.Market), (bt.Order.StopLimit, bt.Order.Market), (bt.Order.Stop, bt.Order.StopLimit), (bt.Order.StopLimit, bt.Order.StopLimit)] |
make_broker, make_data, make_owner, stop_exectype, limit_exectype, mode |
test_bracket_order_submission_links_children |
Bracket orders properly link parent/children and OCO pairs. |
TestBracketLinking |
test_broker_bracket_linking.py |
unit |
broker |
both |
no |
'stop_exectype, limit_exectype', [(bt.Order.Stop, bt.Order.Limit), (bt.Order.StopLimit, bt.Order.Limit), (bt.Order.Stop, bt.Order.Market), (bt.Order.StopLimit, bt.Order.Market), (bt.Order.Stop, bt.Order.StopLimit), (bt.Order.StopLimit, bt.Order.StopLimit)] |
make_broker, make_data, make_owner, stop_exectype, limit_exectype, mode |
test_notification_queueing |
notify() adds to queue; get_notification() retrieves and clears it. |
TestBrokerCallbacks |
test_broker_callbacks.py |
? |
? |
both |
no |
|
make_broker, make_data, make_order, mode |
test_fill_callback_transitions_status |
Partial fill → complete fill using broker._on_order_update via simulate_order_fill. |
TestBrokerCallbacks |
test_broker_callbacks.py |
unit |
broker |
both |
no |
'instrument_type', ['spot'] |
make_broker, make_data, make_owner, make_order, final_price, instrument_type, mode |
test_fees_deducted_from_cash |
Order fills deduct commission from cash. |
TestCashDeduction |
test_broker_cash_value.py |
unit |
broker |
both |
no |
'instrument_type', ['spot', 'futures', 'margin', 'perp'] |
make_broker, make_data, test_comminfo, instrument_type, mode |
test_order_rejected_if_funds_insufficient |
Orders are rejected if available cash is too low. |
TestCashRejectionRules |
test_broker_cash_value.py |
unit |
broker |
both |
no |
'instrument_type', ['spot', 'futures', 'margin', 'perp'] |
make_broker, make_data, instrument_type, mode |
test_cash_and_value_uses_balance |
getcash() and getvalue() reflect balances and latest price via OHLCV. |
TestLiveBalanceIntegration |
test_broker_cash_value.py |
unit |
broker |
both |
no |
|
make_mock_store, make_broker, mode |
test_getcommissioninfo |
Router returns commission object with correct calculations. |
TestCommissionRouting |
test_broker_commission_routing.py |
unit |
broker |
both |
no |
'instrument_type', ['spot', 'margin', 'futures'] |
make_broker, make_data, instrument_type, mode |
test_commrouter_mixin_is_used |
Ensure all broker variants include CommInfoRouterMixin. |
TestCommissionRouting |
test_broker_commission_routing.py |
unit |
broker |
both |
no |
|
make_broker, mode |
test_threaded_fill_is_consistent |
Order fill simulated on separate thread updates state without race. |
TestThreadSafety |
test_broker_concurrency.py |
unit |
broker |
both |
no |
|
make_broker, make_data, make_order, mode |
test_concurrent_fill_updates_are_safe |
Simulates two updates to the same order in parallel, one partial and one complete. |
TestThreadSafety |
test_broker_concurrency.py |
unit |
broker |
both |
no |
|
make_broker, make_data, make_order, mode |
test_concurrent_cancel_and_fill_safely |
Race condition between cancel and fill should not cause crash. |
TestThreadSafety |
test_broker_concurrency.py |
unit |
broker |
both |
no |
|
make_broker, mock_data, mode |
test_filled_order_cancels_oco_sibling |
When one leg of an OCO pair is filled, the sibling is canceled. |
TestOCOExecution |
test_broker_oco_chains.py |
unit |
broker |
both |
no |
'trigger_side, stop_exectype, limit_exectype', [('stop', bt.Order.Stop, bt.Order.Limit), ('stop', bt.Order.StopLimit, bt.Order.Limit), ('stop', bt.Order.Stop, bt.Order.Market), ('stop', bt.Order.StopLimit, bt.Order.Market), ('stop', bt.Order.Stop, bt.Order.StopLimit), ('stop', bt.Order.StopLimit, bt.Order.StopLimit), ('limit', bt.Order.Stop, bt.Order.Limit), ('limit', bt.Order.StopLimit, bt.Order.Limit), ('limit', bt.Order.Stop, bt.Order.Market), ('limit', bt.Order.StopLimit, bt.Order.Market), ('limit', bt.Order.Stop, bt.Order.StopLimit), ('limit', bt.Order.StopLimit, bt.Order.StopLimit)] |
make_broker, make_data, make_owner, trigger_side, stop_exectype, limit_exectype, mode |
test_partial_fill_does_not_cancel_oco |
Partial fill of an OCO leg should not cancel its sibling. |
TestOCOExecution |
test_broker_oco_chains.py |
unit |
broker |
both |
no |
'stop_exectype', [bt.Order.Stop, bt.Order.StopLimit] |
make_broker, make_data, make_owner, stop_exectype, mode |
test_multiple_oco_groups_on_same_data |
Multiple independent OCO brackets can coexist on the same symbol. |
TestMultipleOCOGroups |
test_broker_oco_chains.py |
unit |
broker |
both |
no |
'stop_exectype, limit_exectype', [(bt.Order.Stop, bt.Order.Limit), (bt.Order.StopLimit, bt.Order.Limit), (bt.Order.Stop, bt.Order.Market), (bt.Order.StopLimit, bt.Order.Market), (bt.Order.Stop, bt.Order.StopLimit), (bt.Order.StopLimit, bt.Order.StopLimit)] |
make_broker, make_data, make_owner, stop_exectype, limit_exectype, mode |
test_manual_cancel_parent_does_not_cancel_children |
Manually canceling a parent order does not cancel its children. |
TestParentChildCancellation |
test_broker_oco_chains.py |
unit |
broker |
both |
no |
'stop_exectype, limit_exectype', [(bt.Order.Stop, bt.Order.Limit), (bt.Order.StopLimit, bt.Order.Limit), (bt.Order.Stop, bt.Order.Market), (bt.Order.StopLimit, bt.Order.Market), (bt.Order.Stop, bt.Order.StopLimit), (bt.Order.StopLimit, bt.Order.StopLimit)] |
make_broker, make_data, make_owner, stop_exectype, limit_exectype, mode |
test_parent_rejected_children_not_submitted |
If the parent order is rejected, children are not submitted. |
TestParentChildCancellation |
test_broker_oco_chains.py |
unit |
broker |
both |
no |
'stop_exectype, limit_exectype', [(bt.Order.Stop, bt.Order.Limit), (bt.Order.StopLimit, bt.Order.Limit)] |
make_broker, make_data, make_owner, stop_exectype, limit_exectype, mode |
test_order_cancellation |
Canceling an order triggers store.cancel_order_async and updates status. |
TestCancelBehaviorAndWarnings |
test_broker_order_cancellation.py |
unit |
broker |
both |
no |
|
mock_run, make_broker, make_data, make_owner, mode |
test_logs_warning_on_unknown_instrument |
Unknown instrument types log a warning and fallback to empty position. |
TestCancelBehaviorAndWarnings |
test_broker_order_cancellation.py |
unit |
broker |
both |
no |
|
make_broker, make_data, make_owner, caplog, mode |
test_order_submission |
Submitting an order attaches it to the broker and assigns a ref. |
TestOrderLifecycleAndFills |
test_broker_order_lifecycle.py |
unit |
broker |
both |
no |
|
make_broker, make_data, make_owner, mode |
test_strategy_order_creation |
broker.buy(...) returns a non-rejected order and registers it. |
TestOrderLifecycleAndFills |
test_broker_order_lifecycle.py |
unit |
broker |
both |
no |
|
make_broker, make_data, make_owner, test_comminfo, mode |
test_order_status_changes_on_fill |
Simulated fill transitions order status to Completed. |
TestOrderLifecycleAndFills |
test_broker_order_lifecycle.py |
unit |
broker |
both |
no |
|
make_broker, make_data, make_order, mode |
test_strategy_order_cancellation |
Simulated cancel updates order status to Canceled. |
TestOrderLifecycleAndFills |
test_broker_order_lifecycle.py |
unit |
broker |
both |
no |
|
make_broker, make_data, make_owner, test_comminfo, mode |
test_submit_returns_existing_order_if_ref_exists |
broker.submit returns the same object if the ref is already registered. |
TestOrderLifecycleAndFills |
test_broker_order_lifecycle.py |
unit |
broker |
both |
no |
|
make_broker, make_order, mode |
test_cancel_does_not_cancel_completed_order |
broker.cancel returns False for completed orders and leaves them untouched. |
TestOrderLifecycleAndFills |
test_broker_order_lifecycle.py |
unit |
broker |
both |
no |
|
make_broker, mode |
test_submit_rejects_unsupported_exectype |
Invalid exectype raises ValueError on submit. |
TestOrderLifecycleAndFills |
test_broker_order_lifecycle.py |
unit |
broker |
both |
no |
|
make_broker, make_data, make_owner, mode |
test_partial_fills |
Simulated partial → complete fill transitions correctly with accurate average price. |
TestOrderLifecycleAndFills |
test_broker_order_lifecycle.py |
unit |
broker |
both |
no |
'final_price', [10050.0, 10025.0] |
make_broker, make_data, make_order, final_price, mode |
test_partial_fill_transitions |
Partial fills are tracked and averaged into final price on full fill. |
TestPartialFillLifecycle |
test_broker_order_lifecycle.py |
unit |
broker |
both |
no |
'final_price', [10050.0, 10025.0] |
make_broker, make_data, make_owner, final_price, mode |
test_buy_sell_orders |
Validates buy/sell order submission and position updates. |
TestOrderSubmission |
test_broker_order_submission.py |
unit |
broker |
back |
no |
|
make_broker, make_data, make_owner, test_comminfo |
test_buy_rejected_on_insufficient_cash |
Verifies that buy orders are rejected if cash is insufficient. |
TestOrderSubmission |
test_broker_order_submission.py |
unit |
broker |
both |
no |
'mode', ['forward', 'back'] |
make_broker, make_data, make_owner, mode |
test_sell_rejected_on_insufficient_position |
Verifies that sells are rejected if position is insufficient, except for futures/perp. |
TestOrderSubmission |
test_broker_order_submission.py |
unit |
broker |
both |
no |
'instrument_type,should_reject', [('spot', True), ('margin', True), ('futures', False), ('perp', False)] |
make_broker, make_data, make_owner, instrument_type, should_reject, mode |
test_various_order_types_submission |
Confirms all order types (Market, Limit, Stop, StopLimit) are accepted. |
TestOrderSubmission |
test_broker_order_submission.py |
unit |
broker |
both |
no |
'mode', ['forward', 'back'] |
make_broker, make_data, make_owner, mode |
test_cancel_skips_dead_order |
Ensures cancel() does nothing for dead orders. |
TestOrderSubmission |
test_broker_order_submission.py |
unit |
broker |
both |
no |
'mode', ['forward', 'back'] |
make_broker, make_data, make_owner, mode |
test_should_reject_sell_logic |
|
TestOrderValidationMixin |
test_broker_order_validation.py |
? |
? |
n/a |
no |
'instrument_type, current_size, order_size, expected_reject', [('spot', 0.5, 1.0, True), ('margin', 0.5, 1.0, True), ('spot', 1.0, 1.0, False), ('margin', 1.0, 0.5, False), ('futures', 0.0, 1.0, False), ('perp', -1.0, 1.0, False)] |
mock_broker, instrument_type, current_size, order_size, expected_reject |
test_should_reject_sell_with_parent_order |
|
TestOrderValidationMixin |
test_broker_order_validation.py |
? |
? |
n/a |
no |
|
mock_broker |
test_should_reject_sell_with_transmit_false |
|
TestOrderValidationMixin |
test_broker_order_validation.py |
? |
? |
n/a |
no |
|
mock_broker |
test_spot_position_tracker_updates |
Spot and margin trackers update correctly. |
TestPositionTracking |
test_broker_positions.py |
unit |
broker |
both |
no |
'instrument_type,side,expected_size', [('spot', 'buy', 0.1), ('spot', 'sell', -0.1), ('margin', 'buy', 0.1), ('margin', 'sell', -0.1)], ids=['spot-buy', 'spot-sell', 'margin-buy', 'margin-sell'] |
make_broker, make_data, make_owner, instrument_type, side, expected_size, mode |
test_futures_position_tracker_updates |
Futures and perp trackers update correctly. |
TestPositionTracking |
test_broker_positions.py |
unit |
broker |
both |
no |
'instrument_type,side,expected_size', [('futures', 'buy', 0.2), ('futures', 'sell', -0.2), ('perp', 'buy', 0.2), ('perp', 'sell', -0.2)], ids=['futures-buy', 'futures-sell', 'perp-buy', 'perp-sell'] |
make_broker, make_data, make_owner, instrument_type, side, expected_size, mode |
test_position_flat_after_round_trip |
After a buy and equal sell, position size is zero. |
TestPositionTracking |
test_broker_positions.py |
unit |
broker |
both |
no |
'instrument_type', ['spot', 'margin', 'futures', 'perp'] |
make_broker, make_data, make_owner, instrument_type, mode |
test_average_price_tracking |
Average price updates correctly over multiple same-direction fills. |
TestPositionTracking |
test_broker_positions.py |
unit |
broker |
both |
no |
'instrument_type', ['spot', 'margin', 'futures', 'perp'] |
make_broker, make_data, make_owner, instrument_type, mode |
test_backbroker_starts_with_specified_cash |
Back broker sets startingcash from the constructor. |
TestBackBrokerInitialization |
test_broker_startup.py |
unit |
broker |
both |
no |
|
mode |
test_livebroker_uses_store_balance_for_startingcash |
Live broker sets startingcash from latest store balance. |
TestLiveBrokerInitialization |
test_broker_startup.py |
unit |
broker |
both |
no |
|
make_mock_store, mode |
test_live_broker_registers_callbacks |
Live broker registers watchers and callbacks on init. |
TestLiveBrokerInitialization |
test_broker_startup.py |
unit |
broker |
both |
no |
|
make_mock_store, mode |
test_initialization_without_store_raises |
Creating a live broker without a store should raise a ValueError. |
TestLiveBrokerInitialization |
test_broker_startup.py |
unit |
broker |
both |
no |
|
mode |
test_falls_back_to_default_startingcash_if_balance_missing |
If get_latest_balance returns None, startingcash defaults to 10000.0. |
TestLiveBrokerInitialization |
test_broker_startup.py |
unit |
broker |
both |
no |
|
make_mock_store, mode |
test_stop_calls_store_stop_watchers |
Broker.stop() calls store's stop_watching_* methods. |
TestLiveBrokerInitialization |
test_broker_startup.py |
unit |
broker |
both |
no |
|
make_mock_store, mode |
test_initial_state |
|
TestPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_update_from_order_buy |
|
TestPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_update_from_order_sell |
|
TestPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_update_from_order_zero_size |
|
TestPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_get_position_clone |
|
TestPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_get_position_no_clone |
|
TestPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_estimated_value |
|
TestPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_initial_state |
|
TestSpotPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_update_from_order_buy |
|
TestSpotPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_update_from_order_sell |
|
TestSpotPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_update_from_order_zero_size |
|
TestSpotPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_get_position_clone |
|
TestSpotPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_get_position_no_clone |
|
TestSpotPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_reset |
|
TestSpotPositionTracker |
test_position_tracker.py |
? |
? |
n/a |
no |
|
|
test_cerebro_run_returns_strategy_instances |
PRECONDITION: Cerebro.run() returns strategy instances. |
TestCerebroDataProcessing |
test_cerebro_data_processing.py |
? |
? |
n/a |
no |
|
|
test_cerebro_run_async_compatibility |
PRECONDITION: Cerebro.run_async() method exists and works. |
TestCerebroDataProcessing |
test_cerebro_data_processing.py |
? |
? |
n/a |
no |
|
|
test_cerebro_strategy_data_access |
PRECONDITION: Strategies can access data through Cerebro. |
TestCerebroDataProcessing |
test_cerebro_data_processing.py |
? |
? |
n/a |
no |
|
|
test_cerebro_multi_strategy_execution |
PRECONDITION: Cerebro can run multiple strategies simultaneously. |
TestCerebroDataProcessing |
test_cerebro_data_processing.py |
? |
? |
n/a |
no |
|
|
test_cerebro_indicator_strategy_execution |
PRECONDITION: Cerebro can execute strategies with indicators. |
TestCerebroDataProcessing |
test_cerebro_data_processing.py |
? |
? |
n/a |
no |
|
|
test_cerebro_data_feed_integration |
PRECONDITION: Cerebro integrates properly with custom data feeds. |
TestCerebroDataProcessing |
test_cerebro_data_processing.py |
? |
? |
n/a |
no |
|
|
test_cerebro_empty_data_handling |
PRECONDITION: Cerebro handles empty/insufficient data gracefully. |
TestCerebroDataProcessing |
test_cerebro_data_processing.py |
? |
? |
n/a |
no |
|
|
test_comminfo_init_sets_expected_attributes |
|
TestCCXTCommissionInfo |
test_broker_commission_info.py |
unit |
comm_info |
n/a |
no |
'label, CommClass, expected_stocklike', INSTRUMENT_CLASSES |
make_mock_store, CommClass, expected_stocklike, label |
test_comminfo_init_with_fees |
|
TestCCXTCommissionInfo |
test_broker_commission_info.py |
unit |
comm_info |
n/a |
no |
'label, CommClass, _', INSTRUMENT_CLASSES |
make_mock_store, CommClass, _, label |
test_comminfo_init_handles_error |
|
TestCCXTCommissionInfo |
test_broker_commission_info.py |
unit |
comm_info |
n/a |
no |
'label, CommClass, _', INSTRUMENT_CLASSES |
make_mock_store, CommClass, _, label |
test_getoperationcost_maker |
|
TestCCXTCommissionInfo |
test_broker_commission_info.py |
unit |
comm_info |
n/a |
no |
'label, CommClass, _', INSTRUMENT_CLASSES |
make_mock_store, CommClass, _, label, size, price, expected |
test_getoperationcost_taker |
|
TestCCXTCommissionInfo |
test_broker_commission_info.py |
unit |
comm_info |
n/a |
no |
'label, CommClass, _', INSTRUMENT_CLASSES |
make_mock_store, CommClass, _, label, size, price, expected |
test_getcommission |
|
TestCCXTCommissionInfo |
test_broker_commission_info.py |
unit |
comm_info |
n/a |
no |
'CommClass', [CCXTSpotCommInfo, CCXTMarginCommInfo, CCXTFuturesCommInfo] |
make_mock_store, CommClass, is_maker, expected |
test_commtype_property_is_perc |
|
TestCCXTCommissionInfo |
test_broker_commission_info.py |
unit |
comm_info |
n/a |
no |
'label, CommClass, _', INSTRUMENT_CLASSES |
make_mock_store, CommClass, _, label |
test_stocklike_flag |
|
TestCCXTCommissionInfo |
test_broker_commission_info.py |
unit |
comm_info |
n/a |
no |
'label, CommClass, expected', INSTRUMENT_CLASSES |
make_mock_store, CommClass, expected, label |
test_ccxt_not_supported |
|
TestBrokerFeeFallbacks |
test_broker_commission_info.py |
unit |
broker |
n/a |
no |
|
make_mock_store, caplog |
test_generic_exception |
|
TestBrokerFeeFallbacks |
test_broker_commission_info.py |
unit |
broker |
n/a |
no |
|
make_mock_store, caplog |
test_init_default_fees |
|
TestCCXTCommInfoBase |
test_comm_info_base.py |
? |
? |
n/a |
no |
|
mock_store |
test_init_provided_fees |
|
TestCCXTCommInfoBase |
test_comm_info_base.py |
? |
? |
n/a |
no |
|
mock_store |
test_getoperationcost_maker |
|
TestCCXTCommInfoBase |
test_comm_info_base.py |
? |
? |
n/a |
no |
|
mock_store |
test_getoperationcost_taker |
|
TestCCXTCommInfoBase |
test_comm_info_base.py |
? |
? |
n/a |
no |
|
mock_store |
test_getcommission |
|
TestCCXTCommInfoBase |
test_comm_info_base.py |
? |
? |
n/a |
no |
|
mock_store |
test_get_margin_stocklike_true |
|
TestCCXTCommInfoBase |
test_comm_info_base.py |
? |
? |
n/a |
no |
|
mock_store |
test_get_margin_stocklike_false |
|
TestCCXTCommInfoBase |
test_comm_info_base.py |
? |
? |
n/a |
no |
|
mock_store |
test_stocklike_property |
|
TestCCXTCommInfoBase |
test_comm_info_base.py |
? |
? |
n/a |
no |
|
mock_store |
test_futures_comminfo |
|
TestCommInfoTypes |
test_comm_info_types.py |
? |
? |
n/a |
no |
|
mock_store |
test_margin_comminfo |
|
TestCommInfoTypes |
test_comm_info_types.py |
? |
? |
n/a |
no |
|
mock_store |
test_spot_comminfo |
|
TestCommInfoTypes |
test_comm_info_types.py |
? |
? |
n/a |
no |
|
mock_store |
test_returns_backbroker_for_paper_mode |
BrokerFactory.create returns CCXTBackBroker for paper mode. |
TestBrokerFactory |
test_broker_factory.py |
unit |
factory |
both |
no |
'mode', ['paper'] |
mode |
test_raises_if_store_missing_in_live_mode |
BrokerFactory.create raises if live broker requested without store. |
TestBrokerFactory |
test_broker_factory.py |
unit |
factory |
live |
no |
|
|
test_init_timeframe_mapping |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
'ccxt_tf, expected_bt_tf, expected_comp', [('1m', bt.TimeFrame.Minutes, 1), ('5m', bt.TimeFrame.Minutes, 5), ('1h', bt.TimeFrame.Minutes, 60), ('1d', bt.TimeFrame.Days, 1)] |
mock_store, ccxt_tf, expected_bt_tf, expected_comp |
test_init_unsupported_timeframe_raises_error |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_init_live_mode_registers_callback |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_init_historical_mode_does_not_register_callback |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_start_fetches_historical_data |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_start_filters_historical_data_by_fromdate |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_start_filters_historical_data_by_todate |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_start_starts_live_watching_in_live_mode |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_start_does_not_start_live_watching_in_historical_mode |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_load_historical_data |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store, mock_lines |
test_load_historical_data_finishes |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_load_live_data_from_queue |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store, mock_lines |
test_load_live_data_queue_empty |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_load_live_data_exceeds_todate |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_set_candle_valid_data |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store, mock_lines |
test_set_candle_malformed_data |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
'malformed_candle', [[1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6, 7], 'not a list', None] |
mock_store, malformed_candle, caplog, mock_lines |
test_enqueue_adds_to_queue |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_enqueue_queue_full |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store, caplog |
test_stop_stops_live_watching |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_stop_does_not_stop_historical_watching |
|
TestCCXTDataFeed |
test_ccxt_data_feed.py |
? |
? |
n/a |
no |
|
mock_store |
test_historical_data |
Test that feed correctly loads and processes historical data. |
TestCandleLoadingLogic |
test_feed_candle_loading.py |
? |
? |
n/a |
no |
|
mock_store, pre_allocate_feed |
test_data_gaps |
|
TestCandleLoadingLogic |
test_feed_candle_loading.py |
? |
? |
n/a |
no |
|
mock_store, pre_allocate_feed |
test_set_candle_assigns_lines_correctly |
Test that _set_candle correctly assigns candle data to line buffers. |
TestCandleLoadingLogic |
test_feed_candle_loading.py |
? |
? |
n/a |
no |
|
mock_ccxt_feed |
test_thread_safety |
|
TestCandleLoadingLogic |
test_feed_candle_loading.py |
? |
? |
n/a |
no |
|
mock_store, pre_allocate_feed |
test_feed_initialization_sets_backtrader_attributes |
GIVEN A CCXTDataFeed instance |
TestCCXTDataFeedIntegration |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_can_be_added_to_cerebro |
GIVEN A CCXTDataFeed and Cerebro instance |
TestCCXTDataFeedIntegration |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_enqueue_adds_data_to_internal_queue |
GIVEN A CCXTDataFeed instance |
TestCCXTDataFeedIntegration |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_data_flows_to_strategy_next_method |
GIVEN A CCXTDataFeed with data and a strategy |
TestCCXTDataFeedIntegration |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_multiple_data_points_processed_sequentially |
GIVEN A CCXTDataFeed with multiple data points |
TestCCXTDataFeedIntegration |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_handles_live_mode_configuration |
GIVEN A CCXTDataFeed configured for live mode |
TestCCXTDataFeedIntegration |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_handles_historical_mode_configuration |
GIVEN A CCXTDataFeed configured for historical mode |
TestCCXTDataFeedIntegration |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_next_method_retrieves_data_from_queue |
GIVEN A CCXTDataFeed with data in queue |
TestCCXTDataFeedIntegration |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_queue_get, mock_store |
test_feed_queue_integration_with_backtrader_lines |
GIVEN A CCXTDataFeed with enqueued data |
TestCCXTDataFeedIntegration |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_with_empty_queue_does_not_crash_strategy |
GIVEN A CCXTDataFeed with no data |
TestDataFeedFailureScenarios |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_queue_empty_exception_handled |
GIVEN A CCXTDataFeed that might have queue issues |
TestDataFeedFailureScenarios |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_mode_configuration_affects_data_flow |
GIVEN A CCXTDataFeed in different modes (live/historical) |
TestDataFeedFailureScenarios |
test_feed_data_flow.py |
? |
? |
live |
no |
'live_mode', [True, False] |
mock_store, live_mode |
test_original_issue_no_data_flow_to_strategy |
This test demonstrates the original issue where CCXTDataFeed |
TestOriginalDataFlowIssue |
test_feed_data_flow.py |
? |
? |
n/a |
no |
|
mock_store |
test_historical_date_bounds |
Test that feed correctly filters historical data by date bounds. |
TestDateFilteringLogic |
test_feed_date_filtering.py |
? |
? |
n/a |
no |
|
mocked_store |
test_fromdate_after_todate_yields_no_data |
|
TestDateFilteringLogic |
test_feed_date_filtering.py |
? |
? |
n/a |
no |
|
mock_store, pre_allocate_feed |
test_bad_candle_format_skipped_or_warns |
Ensures malformed candles are skipped and log a warning, rather than raising. |
TestMalformedCandleHandling |
test_feed_resilience.py |
? |
? |
n/a |
no |
'bad_candle', [[1743055740000, 87331.24], [None, None, None, None, None, None], ['bad', 'data', 'in', 'string', 'form', 1.0], []] |
mock_store, pre_allocate_feed, caplog, bad_candle |
test_error_handling |
Test that historical data fetch errors are handled gracefully. |
TestMalformedCandleHandling |
test_feed_resilience.py |
? |
? |
n/a |
no |
|
caplog |
test_queue_drops_when_full_and_logs_warning |
|
TestQueueOverflowHandling |
test_feed_resilience.py |
? |
? |
n/a |
no |
|
mock_store |
test_live_feed_respects_todate_cutoff |
|
TestQueueOverflowHandling |
test_feed_resilience.py |
? |
? |
n/a |
no |
|
mock_store, pre_allocate_feed |
test_shutdown |
|
TestFeedStartStop |
test_feed_state_transitions.py |
? |
? |
n/a |
no |
|
mock_store |
test_is_live_only_after_historical |
|
TestFeedStartStop |
test_feed_state_transitions.py |
? |
? |
n/a |
no |
|
mock_store, pre_allocate_feed |
test_live_data |
|
TestLiveFeedTransition |
test_feed_state_transitions.py |
? |
? |
n/a |
no |
|
mock_store, pre_allocate_feed |
test_historical_to_live_transition |
|
TestLiveFeedTransition |
test_feed_state_transitions.py |
? |
? |
n/a |
no |
|
mock_store, pre_allocate_feed |
test_timeframe_mapping |
|
TestTimeframeMapping |
test_feed_timeframe_mapping.py |
? |
? |
n/a |
no |
|
|
test_all_timeframes |
|
TestTimeframeMapping |
test_feed_timeframe_mapping.py |
? |
? |
n/a |
no |
|
mock_store, pre_allocate_feed |
test_timeframe_mapping_includes_sub_minute |
Test that sub-minute timeframes are properly mapped. |
TestSubMinuteTimeframes |
test_sub_minute_timeframes.py |
? |
? |
n/a |
no |
|
|
test_ccxt_feed_accepts_sub_minute_timeframes |
Test that CCXTDataFeed accepts sub-minute timeframes. |
TestSubMinuteTimeframes |
test_sub_minute_timeframes.py |
? |
? |
n/a |
no |
|
mock_logger |
test_invalid_timeframe_raises_error |
Test that invalid timeframes raise ValueError. |
TestSubMinuteTimeframes |
test_sub_minute_timeframes.py |
? |
? |
n/a |
no |
|
mock_logger |
test_performance_considerations_warning |
Document performance considerations for high-frequency timeframes. |
TestSubMinuteTimeframes |
test_sub_minute_timeframes.py |
? |
? |
n/a |
no |
|
|
test_sub_minute_data_processing_performance |
Test performance with high-frequency sub-minute data. |
TestSubMinuteTimeframes |
test_sub_minute_timeframes.py |
? |
? |
n/a |
no |
|
|
test_reordering_performance_with_high_frequency_data |
Test reordering buffer performance with high-frequency out-of-order data. |
TestSubMinuteTimeframes |
test_sub_minute_timeframes.py |
? |
? |
n/a |
no |
|
|
test_memory_efficiency_long_running_feed |
Test memory efficiency for long-running high-frequency feeds. |
TestSubMinuteTimeframes |
test_sub_minute_timeframes.py |
? |
? |
n/a |
no |
|
|
test_rate_limiting_simulation |
Simulate rate limiting scenarios for high-frequency data. |
TestSubMinuteTimeframes |
test_sub_minute_timeframes.py |
? |
? |
n/a |
no |
|
|
test_reordering_disabled_by_default |
Test that reordering is disabled when buffer size is 0. |
TestTickReordering |
test_tick_reordering.py |
? |
? |
n/a |
no |
|
mock_store |
test_reordering_buffer_initialization |
Test reordering buffer is properly initialized. |
TestTickReordering |
test_tick_reordering.py |
? |
? |
n/a |
no |
|
mock_store |
test_reordering_buffer_sorts_chronologically |
Test that buffer sorts out-of-order candles. |
TestTickReordering |
test_tick_reordering.py |
? |
? |
n/a |
no |
|
mock_store |
test_buffer_flushes_on_timeout |
Test that buffer flushes when timeout is reached. |
TestTickReordering |
test_tick_reordering.py |
? |
? |
n/a |
no |
|
mock_store |
test_direct_enqueue_bypasses_buffer |
Test that direct enqueue bypasses reordering buffer. |
TestTickReordering |
test_tick_reordering.py |
? |
? |
n/a |
no |
|
mock_store |
test_buffer_flushes_on_stop |
Test that remaining buffer is flushed when feed stops. |
TestTickReordering |
test_tick_reordering.py |
? |
? |
n/a |
no |
|
mock_store |
test_feed_initialization_with_historical_data |
PRECONDITION: Feed can store historical data. |
TestCCXTFeedDataFlow |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_backtest_mode_configuration |
PRECONDITION: Feed can be configured for backtest mode. |
TestCCXTFeedDataFlow |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_load_processes_historical_data_in_backtest |
PRECONDITION: Feed._load() processes historical data in backtest mode. |
TestCCXTFeedDataFlow |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_data_conversion_for_backtrader |
PRECONDITION: Feed converts CCXT data format to Backtrader format. |
TestCCXTFeedDataFlow |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_handles_sufficient_data_for_indicators |
PRECONDITION: Feed can provide enough data for strategy indicators. |
TestCCXTFeedDataFlow |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_queue_mechanism_in_backtest |
PRECONDITION: Feed queue provides data in backtest mode. |
TestCCXTFeedDataFlow |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_start_method_loads_historical_data |
PRECONDITION: Feed.start() properly initializes historical data in backtest. |
TestCCXTFeedDataFlow |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_can_be_added_to_cerebro |
PRECONDITION: CCXTDataFeed can be added to Cerebro. |
TestCCXTFeedBacktraderIntegration |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_provides_data_to_simple_strategy |
PRECONDITION: Feed provides data to strategies (minimal case). |
TestCCXTFeedBacktraderIntegration |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_supports_indicator_initialization |
PRECONDITION: Feed provides enough data for indicator initialization. |
TestCCXTFeedBacktraderIntegration |
test_ccxt_feed_data_flow.py |
? |
? |
n/a |
no |
|
|
test_ccxt_data_feed_initialization |
Test that CCXTDataFeed can be initialized with a mock store. |
TestDataFlowValidation |
test_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_historical_data_assignment |
Test that historical data can be assigned to feed. |
TestDataFlowValidation |
test_data_flow.py |
? |
? |
n/a |
no |
|
|
test_feed_load_method_with_historical_data |
Test that feed._load() method processes historical data correctly. |
TestDataFlowValidation |
test_data_flow.py |
? |
? |
n/a |
no |
|
|
test_strategy_data_availability_in_backtest |
Test that strategies can access data in backtest mode. |
TestDataFlowValidation |
test_data_flow.py |
? |
? |
n/a |
no |
|
|
test_strategy_indicator_initialization_with_data |
Test that strategy indicators can initialize when sufficient data is available. |
TestDataFlowValidation |
test_data_flow.py |
? |
? |
n/a |
no |
|
|
test_insufficient_data_handling |
Test behavior when insufficient data is provided for strategy indicators. |
TestDataFlowValidation |
test_data_flow.py |
? |
? |
n/a |
no |
|
|
test_data_feed_integration_with_cerebro |
Integration test for CCXTDataFeed -> Cerebro -> Strategy data flow. |
TestDataFlowValidation |
test_data_flow.py |
? |
? |
n/a |
no |
|
|
test_order_initialization |
|
TestOrderExecutionState |
test_order_behavior.py |
? |
? |
both |
no |
'side', ['buy', 'sell'] |
make_broker, mock_data, make_owner, side, mode |
test_initialization_without_data |
|
TestOrderExecutionState |
test_order_behavior.py |
? |
? |
both |
no |
'mode', ['forward', 'back'] |
make_broker, make_owner, mode |
test_unsupported_exectype |
|
TestOrderExecutionState |
test_order_behavior.py |
? |
? |
both |
no |
'mode', ['forward', 'back'] |
make_broker, mock_data, make_owner, mode |
test_order_submission |
|
TestOrderExecutionState |
test_order_behavior.py |
? |
? |
both |
no |
'mode', ['forward', 'back'] |
make_broker, mock_data, make_owner, mode |
test_order_update |
|
TestOrderExecutionState |
test_order_behavior.py |
? |
? |
both |
no |
'mode', ['forward', 'back'] |
make_broker, mock_data, make_owner, side, mode |
test_partial_fill |
|
TestOrderExecutionState |
test_order_behavior.py |
? |
? |
both |
no |
'mode', ['forward', 'back'] |
make_broker, mock_data, make_owner, mode |
test_complete_after_partial_fill |
|
TestOrderExecutionState |
test_order_behavior.py |
? |
? |
both |
no |
'mode', ['forward', 'back'] |
make_broker, mock_data, make_owner, mode |
test_datetime_handling_in_update |
|
TestOrderExecutionState |
test_order_behavior.py |
? |
? |
both |
no |
'mode', ['forward', 'back'] |
make_broker, mock_data, make_owner, mode |
test_initialization |
Test full initialization from a typical CCXT order with timestamp. |
TestOrderParsingBehavior |
test_order_state_parsing.py |
? |
? |
n/a |
no |
|
|
test_initialization_with_minimal_info |
Test initialization when only 'id' and 'status' are provided. |
TestOrderParsingBehavior |
test_order_state_parsing.py |
? |
? |
n/a |
no |
|
|
test_status_mapping |
Test mapping of CCXT status strings to Backtrader status constants. |
TestOrderParsingBehavior |
test_order_state_parsing.py |
? |
? |
n/a |
no |
'exchange_status, expected_bt_status', [('open', bt.Order.Submitted), ('closed', bt.Order.Completed), ('canceled', bt.Order.Canceled), ('cancelled', bt.Order.Canceled), ('rejected', bt.Order.Rejected), ('expired', bt.Order.Expired), ('unknown', bt.Order.Submitted)] |
exchange_status, expected_bt_status |
test_datetime_from_iso_string |
Test parsing of ISO 8601 datetime strings. |
TestOrderParsingBehavior |
test_order_state_parsing.py |
? |
? |
n/a |
no |
|
|
test_datetime_from_milliseconds |
Test conversion of timestamp in milliseconds to datetime. |
TestOrderParsingBehavior |
test_order_state_parsing.py |
? |
? |
n/a |
no |
|
|
test_zero_or_negative_values |
Test proper parsing of 0 values and string-castable values. |
TestOrderParsingBehavior |
test_order_state_parsing.py |
? |
? |
n/a |
no |
|
|
test_missing_fields |
Test default behavior when fields are missing. |
TestOrderParsingBehavior |
test_order_state_parsing.py |
? |
? |
n/a |
no |
|
|
test_average_price_fallback |
Use 'average' price if 'price' is missing. |
TestOrderParsingBehavior |
test_order_state_parsing.py |
? |
? |
n/a |
no |
|
|
test_price_priority_over_average |
Use 'price' if both 'price' and 'average' are present. |
TestOrderParsingBehavior |
test_order_state_parsing.py |
? |
? |
n/a |
no |
|
|
test_async_generator_works_in_same_event_loop |
Test that async generator works when called from same event loop. |
TestEventLoopThreading |
test_event_loop_threading.py |
? |
? |
n/a |
no |
|
|
test_async_generator_fails_across_threads |
Test that identifies the cross-thread async generator issue. |
TestEventLoopThreading |
test_event_loop_threading.py |
? |
? |
n/a |
no |
|
|
test_callback_registration_thread_safety |
Test callback registration from different threads. |
TestEventLoopThreading |
test_event_loop_threading.py |
? |
? |
n/a |
no |
|
|
test_async_task_creation_thread_context |
Test that async tasks are created in wrong context when called from different threads. |
TestEventLoopThreading |
test_event_loop_threading.py |
? |
? |
n/a |
no |
|
|
test_event_loop_scheduling_fix_requirement |
Test that demonstrates the need for proper event loop scheduling. |
TestEventLoopThreading |
test_event_loop_threading.py |
? |
? |
n/a |
no |
|
|
test_ohlcv_processor_task_creation_context |
Test that identifies where _ohlcv_processor tasks fail to execute. |
TestOHLCVCandleRouterThreading |
test_event_loop_threading.py |
? |
? |
n/a |
no |
|
|
test_stream_method_cross_thread_behavior |
Test new thread-safe StreamingFeedSubsystem API. |
TestStreamingFeedSubsystemThreading |
test_event_loop_threading.py |
? |
? |
n/a |
no |
|
|
test_create_order |
|
TestOrderLifecycle |
test_store_order_lifecycle.py |
? |
? |
both |
no |
|
make_store, mode |
test_cancel_order |
|
TestOrderLifecycle |
test_store_order_lifecycle.py |
? |
? |
both |
no |
|
make_store, mode |
test_fetch_order |
|
TestOrderLifecycle |
test_store_order_lifecycle.py |
? |
? |
both |
no |
|
make_store, mode |
test_fetch_open_orders |
|
TestOrderLifecycle |
test_store_order_lifecycle.py |
? |
? |
both |
no |
|
make_store, mode |
test_multiple_orders_tracked |
|
TestOrderLifecycle |
test_store_order_lifecycle.py |
? |
? |
both |
no |
|
make_store, mode |
test_order_status_after_cancel |
|
TestOrderLifecycle |
test_store_order_lifecycle.py |
? |
? |
both |
no |
|
make_store, mode |
test_duplicate_order_ids_not_generated |
|
TestOrderLifecycle |
test_store_order_lifecycle.py |
? |
? |
both |
no |
|
make_store, mode |
test_get_instance_singleton |
|
TestConfigManager |
test_config_manager.py |
? |
? |
n/a |
no |
|
|
test_reset_instance |
|
TestConfigManager |
test_config_manager.py |
? |
? |
n/a |
no |
|
|
test_load_from_dict |
|
TestConfigManager |
test_config_manager.py |
? |
? |
live |
no |
|
|
test_get_config_success |
|
TestConfigManager |
test_config_manager.py |
? |
? |
live |
no |
|
|
test_get_config_not_found |
|
TestConfigManager |
test_config_manager.py |
? |
? |
n/a |
no |
|
|
test_get_exchange_mode_config_success |
|
TestConfigManager |
test_config_manager.py |
? |
? |
live |
no |
|
|
test_get_exchange_mode_config_mode_not_found |
|
TestConfigManager |
test_config_manager.py |
? |
? |
live |
no |
|
|
test_load_from_file_success |
|
TestConfigManager |
test_config_manager.py |
? |
? |
n/a |
no |
|
|
test_load_from_file_not_found |
|
TestConfigManager |
test_config_manager.py |
? |
? |
n/a |
no |
|
|
test_get_instance_loads_default_config_on_first_call |
|
TestConfigManager |
test_config_manager.py |
? |
? |
n/a |
no |
|
|
test_health_status_values |
Test that HealthStatus enum has correct values. |
TestHealthStatus |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_component_type_values |
Test that ComponentType enum has expected values. |
TestComponentType |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_health_check_creation |
Test creating a HealthCheck instance. |
TestHealthCheck |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_performance_metric_creation |
Test creating a PerformanceMetric instance. |
TestPerformanceMetric |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_initialization |
Test HealthMonitor initialization. |
TestHealthMonitor |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_add_check |
Test adding a custom health check. |
TestHealthMonitor |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_remove_check |
Test removing a health check. |
TestHealthMonitor |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_get_status |
Test getting system status. |
TestHealthMonitor |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_get_detailed_status |
Test getting detailed system status. |
TestHealthMonitor |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_record_metric |
Test recording a performance metric. |
TestHealthMonitor |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_increment_counter |
Test incrementing a counter. |
TestHealthMonitor |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_record_timing |
Test recording timing metrics. |
TestHealthMonitor |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_get_metrics_summary |
Test getting metrics summary. |
TestHealthMonitor |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_timing_context |
Test timing context manager. |
TestTimingContext |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_sync_function_timing |
Test timing decorator on synchronous function. |
TestTimeOperationDecorator |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_get_health_monitor |
Test getting the global health monitor. |
TestModuleFunctions |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_add_health_check_function |
Test the add_health_check convenience function. |
TestModuleFunctions |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_record_metric_function |
Test the record_metric convenience function. |
TestModuleFunctions |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_increment_counter_function |
Test the increment_counter convenience function. |
TestModuleFunctions |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_record_timing_function |
Test the record_timing convenience function. |
TestModuleFunctions |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_status_with_healthy_required_checks |
Test status calculation with all required checks healthy. |
TestSystemStatusCalculation |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_status_with_degraded_required_check |
Test status calculation with degraded required check. |
TestSystemStatusCalculation |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_status_with_unhealthy_required_check |
Test status calculation with unhealthy required check. |
TestSystemStatusCalculation |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_status_with_optional_checks |
Test status calculation with optional checks. |
TestSystemStatusCalculation |
test_health_monitor.py |
? |
? |
n/a |
no |
|
|
test_format_basic_record |
Test formatting a basic log record. |
TestStructuredFormatter |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_format_with_extra_fields |
Test formatting with extra fields. |
TestStructuredFormatter |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_format_with_exception |
Test formatting with exception info. |
TestStructuredFormatter |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_format_basic_record |
Test formatting a basic log record. |
TestColoredConsoleFormatter |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_format_different_levels |
Test formatting with different log levels. |
TestColoredConsoleFormatter |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_singleton_behavior |
Test that multiple instances share state. |
TestCracktraderLogger |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_configure_basic |
Test basic configuration. |
TestCracktraderLogger |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_get_logger_enum |
Test getting logger with LogComponent enum. |
TestCracktraderLogger |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_get_logger_string |
Test getting logger with string name. |
TestCracktraderLogger |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_trade |
Test trade logging functionality. |
TestCracktraderLogger |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_order |
Test order logging functionality. |
TestCracktraderLogger |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_performance |
Test performance logging functionality. |
TestCracktraderLogger |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_health |
Test health logging functionality. |
TestCracktraderLogger |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_setup_logging |
Test the setup_logging function. |
TestModuleFunctions |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_get_logger |
Test the get_logger function. |
TestModuleFunctions |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_trade_function |
Test the log_trade convenience function. |
TestModuleFunctions |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_order_function |
Test the log_order convenience function. |
TestModuleFunctions |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_performance_function |
Test the log_performance convenience function. |
TestModuleFunctions |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_health_function |
Test the log_health convenience function. |
TestModuleFunctions |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_level_values |
Test that LogLevel enum has correct values. |
TestLogLevel |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_log_component_values |
Test that LogComponent enum has expected component names. |
TestLogComponent |
test_logging_setup.py |
? |
? |
n/a |
no |
|
|
test_invalid_data_name_format |
Ensure parse_data_name returns empty strings when format is invalid or missing. |
TestParseDataName |
test_misc_utils.py |
? |
? |
n/a |
no |
|
|
test_initialization |
Test runner initializes correctly. |
TestCracktraderRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
runner |
test_get_status_idle |
Test status when runner is idle. |
TestCracktraderRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
runner |
test_get_status_with_broker |
Test status when runner has a broker. |
TestCracktraderRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
runner |
test_get_status_broker_error |
Test status when broker throws an error. |
TestCracktraderRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
runner |
test_reset_while_running |
Test reset while running should raise error. |
TestCracktraderRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
runner |
test_reset_idle |
Test reset when idle. |
TestCracktraderRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
runner |
test_get_results |
Test getting results. |
TestCracktraderRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
runner |
test_import_strategy_test_strategy |
Test importing the built-in TestStrategy. |
TestCracktraderRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
runner |
test_import_strategy_not_found |
Test importing a non-existent strategy. |
TestCracktraderRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
runner |
test_get_runner_singleton |
Test that get_runner returns the same instance. |
TestGetRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
|
test_get_runner_reset_preserves_singleton |
Test that resetting doesn't break singleton behavior. |
TestGetRunner |
test_api_runner.py |
? |
? |
n/a |
no |
|
|
test_run_mode_values |
Test RunMode enum values. |
TestEnums |
test_models.py |
? |
? |
live |
no |
|
|
test_run_status_values |
Test RunStatus enum values. |
TestEnums |
test_models.py |
? |
? |
n/a |
no |
|
|
test_valid_request |
Test valid backtest request. |
TestBacktestRequest |
test_models.py |
? |
? |
n/a |
no |
|
|
test_minimal_request |
Test minimal valid request with defaults. |
TestBacktestRequest |
test_models.py |
? |
? |
n/a |
no |
|
|
test_missing_required_fields |
Test request missing required fields. |
TestBacktestRequest |
test_models.py |
? |
? |
n/a |
no |
|
|
test_empty_symbols |
Test request with empty symbols list. |
TestBacktestRequest |
test_models.py |
? |
? |
n/a |
no |
|
|
test_negative_cash |
Test request with negative initial cash. |
TestBacktestRequest |
test_models.py |
? |
? |
n/a |
no |
|
|
test_model_dump |
Test model serialization. |
TestBacktestRequest |
test_models.py |
? |
? |
n/a |
no |
|
|
test_valid_paper_request |
Test valid paper trading request. |
TestLiveTradingRequest |
test_models.py |
? |
? |
n/a |
no |
|
|
test_valid_live_request |
Test valid live trading request. |
TestLiveTradingRequest |
test_models.py |
? |
? |
n/a |
no |
|
|
test_defaults |
Test default values. |
TestLiveTradingRequest |
test_models.py |
? |
? |
n/a |
no |
|
|
test_run_response |
Test RunResponse model. |
TestResponseModels |
test_models.py |
? |
? |
n/a |
no |
|
|
test_status_response |
Test StatusResponse model. |
TestResponseModels |
test_models.py |
? |
? |
n/a |
no |
|
|
test_status_response_minimal |
Test StatusResponse with minimal data. |
TestResponseModels |
test_models.py |
? |
? |
n/a |
no |
|
|
test_detailed_status_response |
Test DetailedStatusResponse model. |
TestResponseModels |
test_models.py |
? |
? |
n/a |
no |
|
|
test_results_response |
Test ResultsResponse model. |
TestResponseModels |
test_models.py |
? |
? |
n/a |
no |
|
|
test_health_response |
Test HealthResponse model. |
TestResponseModels |
test_models.py |
? |
? |
n/a |
no |
|
|
test_health_response_defaults |
Test HealthResponse with defaults. |
TestResponseModels |
test_models.py |
? |
? |
n/a |
no |
|
|
test_error_response |
Test ErrorResponse model. |
TestResponseModels |
test_models.py |
? |
? |
n/a |
no |
|
|
test_error_response_minimal |
Test ErrorResponse with minimal data. |
TestResponseModels |
test_models.py |
? |
? |
n/a |
no |
|
|
test_invalid_run_mode |
Test invalid run mode in request. |
TestModelValidation |
test_models.py |
? |
? |
n/a |
no |
|
|
test_invalid_run_status |
Test invalid run status in response. |
TestModelValidation |
test_models.py |
? |
? |
n/a |
no |
|
|
test_model_json_serialization |
Test JSON serialization of models. |
TestModelValidation |
test_models.py |
? |
? |
n/a |
no |
|
|
test_datetime_handling |
Test datetime field handling. |
TestModelValidation |
test_models.py |
? |
? |
n/a |
no |
|
|
test_optional_fields |
Test models with all optional fields as None. |
TestModelValidation |
test_models.py |
? |
? |
n/a |
no |
|
|
test_root_endpoint |
Test root endpoint. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
client |
test_health_endpoint_success |
Test health endpoint success. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_health_monitor, client |
test_health_endpoint_error |
Test health endpoint when health monitor fails. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_health_monitor, client |
test_status_endpoint |
Test status endpoint. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_status_endpoint_error |
Test status endpoint when runner fails. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_detailed_status_endpoint |
Test detailed status endpoint. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_start_backtest_success |
Test starting backtest successfully. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_start_backtest_not_idle |
Test starting backtest when runner is not idle. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_start_backtest_invalid_request |
Test starting backtest with invalid request. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_start_live_trading_success |
Test starting live trading successfully. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_stop_run_success |
Test stopping run successfully. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_stop_run_no_active_run |
Test stopping when no active run. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_reset_runner_success |
Test resetting runner successfully. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_reset_runner_while_running |
Test resetting runner while running. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_get_results |
Test getting results. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
mock_get_runner, client |
test_list_strategies |
Test listing available strategies. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
client |
test_list_exchanges |
Test listing supported exchanges. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
client |
test_invalid_endpoint |
Test calling invalid endpoint. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
client |
test_invalid_json |
Test sending invalid JSON. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
client |
test_missing_required_fields |
Test request with missing required fields. |
TestAPIRoutes |
test_routes.py |
? |
? |
n/a |
no |
|
client |
test_basic_cerebro_run |
Test basic Cerebro.run() functionality. |
TestCerebroCompatibility |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_feed |
test_cerebro_run_with_preload_true |
Test Cerebro.run(preload=True) compatibility. |
TestCerebroCompatibility |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_feed |
test_cerebro_with_analyzers |
Test Cerebro with various Backtrader analyzers. |
TestCerebroCompatibility |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_feed |
test_cerebro_with_observers |
Test Cerebro with Backtrader observers. |
TestCerebroCompatibility |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_feed |
test_cerebro_preload_with_analyzers_and_observers |
Test comprehensive Cerebro functionality with preload=True. |
TestCerebroCompatibility |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_feed |
test_cerebro_multiple_data_feeds |
Test Cerebro with multiple data feeds. |
TestCerebroCompatibility |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_store |
test_cerebro_error_handling |
Test Cerebro error handling and edge cases. |
TestCerebroCompatibility |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_feed |
test_cerebro_parameter_passing |
Test parameter passing to strategies. |
TestCerebroCompatibility |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_feed |
test_cerebro_with_commission_settings |
Test Cerebro with commission and slippage settings. |
TestCerebroCompatibility |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_feed |
test_cerebro_optimization |
Test Cerebro parameter optimization functionality. |
TestAdvancedCerebroFeatures |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_store |
test_cerebro_with_timer |
Test Cerebro timer functionality. |
TestAdvancedCerebroFeatures |
test_cerebro_compatibility.py |
? |
? |
n/a |
no |
|
mock_feed |
test_cross_thread_callbacks |
Test callback registration works across threads. |
TestWebSocketStreaming |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance |
test_ccxt_feed_data_flow |
Test CCXTDataFeed receives and queues streaming data. |
TestWebSocketStreaming |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance |
test_backtrader_integration |
Test complete Backtrader strategy with streaming data. |
TestWebSocketStreaming |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance |
test_event_loop_thread_isolation |
Test that store maintains proper event loop isolation. |
TestWebSocketStreaming |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance |
test_cross_thread_task_scheduling |
Test asyncio.run_coroutine_threadsafe functionality. |
TestWebSocketStreaming |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance |
test_callback_thread_safety |
Test that callbacks execute safely across threads. |
TestWebSocketStreaming |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance |
test_concurrent_thread_access |
Test multiple threads accessing store concurrently. |
TestWebSocketStreaming |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance |
test_sandbox_websocket_connection |
Test direct WebSocket connection to sandbox. |
TestSandboxWebSocketIntegration |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance, sandbox_config |
test_sandbox_threading_stability |
Test threading stability with real sandbox WebSocket. |
TestSandboxWebSocketIntegration |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance, sandbox_config |
test_sandbox_backtrader_streaming |
Test complete Backtrader integration with sandbox streaming. |
TestSandboxWebSocketIntegration |
test_websocket_integration.py |
? |
? |
n/a |
no |
|
exchange_instance, sandbox_config |
test_complete_backtest_workflow |
Test complete backtest workflow from start to finish. |
TestWebAPIWorkflow |
test_api_workflow.py |
? |
? |
n/a |
no |
|
client |
test_stop_running_backtest |
Test stopping a running backtest. |
TestWebAPIWorkflow |
test_api_workflow.py |
? |
? |
n/a |
no |
|
client |
test_error_handling_workflow |
Test error handling in API workflow. |
TestWebAPIWorkflow |
test_api_workflow.py |
? |
? |
n/a |
no |
|
client |
test_validation_errors |
Test request validation errors. |
TestWebAPIWorkflow |
test_api_workflow.py |
? |
? |
n/a |
no |
|
client |
test_concurrent_request_handling |
Test handling of concurrent requests. |
TestWebAPIWorkflow |
test_api_workflow.py |
? |
? |
n/a |
no |
|
client |
test_live_trading_workflow |
Test live trading workflow (mocked). |
TestWebAPIWorkflow |
test_api_workflow.py |
? |
? |
n/a |
no |
|
mock_register_health, client |
test_health_endpoint_integration |
Test health endpoint with real health monitor structure. |
TestHealthMonitoringIntegration |
test_api_workflow.py |
? |
? |
n/a |
no |
|
mock_get_health_monitor, client |
test_status_with_health_data |
Test detailed status includes health data. |
TestHealthMonitoringIntegration |
test_api_workflow.py |
? |
? |
n/a |
no |
|
client |