ai.enable_ai_analysis: true and configure
ai.provider and ai.api_key in pytest_html_dashboard.yaml for enhanced AI insights.
Error Type: AssertionError
Message: landing-token 401: '{"error":"__UNAUTHORIZED__"}'
assert False
+ where False =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: нет ни одного валидного варианта assert []
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: нет ни одного валидного варианта assert []
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: нет ни одного валидного варианта assert []
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: нет ни одного валидного варианта assert []
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: нет ни одного валидного варианта assert []
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: нет ни одного валидного варианта assert []
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 200
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 404
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 200
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 200
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 404
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 200
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 200
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 200
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 200
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: KeyError
Message: 'bid1'
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: HTTPError
Message: 502 Server Error: Bad Gateway for url: https://api.testing.fix-freight.com/trades/auctions/c42af72c-b4f3-49bd-8d66-317a2c7803b7/finish
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: JSONDecodeError
Message: Expecting value: line 1 column 1 (char 0)
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: AssertionError
Message: assert 502 == 200
+ where 502 =
💡 Suggested Action: Review error message and stack trace, check logs for additional context
Error Type: JSONDecodeError
Message: Expecting value: line 1 column 1 (char 0)
💡 Suggested Action: Review error message and stack trace, check logs for additional context
| S.No | Test Case | Start Time | End Time | Duration | Result | Error Category | Result Details | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | tests/flows/test_calculator_scenarios.py::test_only_last_mile | 14:05:05 | 14:05:05 | 5.654s | SKIPPED | N/A | |||||||||
| 2 | tests/flows/test_calculator_scenarios.py::test_only_highway | 14:05:05 | 14:05:05 | 0.001s | SKIPPED | N/A | |||||||||
| 3 | tests/flows/test_calculator_scenarios.py::test_intracity | 14:05:05 | 14:05:05 | 0.001s | SKIPPED | N/A | |||||||||
| 4 | tests/flows/test_calculator_scenarios.py::test_first_mile_with_highway | 14:05:05 | 14:05:05 | 0.001s | SKIPPED | N/A | |||||||||
| 5 | tests/flows/test_calculator_scenarios.py::test_highway_with_last_mile | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 6 | tests/flows/test_calculator_scenarios.py::test_intercity_door_to_door_over_300km | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 7 | tests/flows/test_calculator_scenarios.py::test_intercity_door_to_door_reverse_spb_to_moscow | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 8 | tests/flows/test_calculator_scenarios.py::test_ftl_moscow_to_spb_oneway | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 9 | tests/flows/test_calculator_scenarios.py::test_ftl_moscow_to_spb_roundtrip | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 10 | tests/flows/test_calculator_scenarios.py::test_only_first_mile | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 11 | tests/flows/test_calculator_scenarios.py::test_tariff_uses_volume_weight_when_it_exceeds_actual | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 12 | tests/flows/test_user_flow.py::test_check_invalid_token | 14:05:05 | 14:05:05 | 0.017s | PASSED | N/A | |||||||||
| 13 | tests/flows/test_warehouse_handling_flow.py::test_warehouse_handling_not_copied_across_freights | 14:05:05 | 14:05:05 | 5.451s | SKIPPED | N/A | |||||||||
| 14 | tests/flows/test_warehouse_handling_flow.py::test_each_warehouse_has_its_own_handling | 14:05:05 | 14:05:05 | 0.001s | SKIPPED | N/A | |||||||||
| 15 | tests/integration/test_api_rust_proxy_live.py::test_search_cities_live | 14:05:05 | 14:05:05 | 4.942s | SKIPPED | N/A | |||||||||
| 16 | tests/integration/test_api_rust_proxy_live.py::test_search_freights_live | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 17 | tests/integration/test_api_rust_proxy_live.py::test_get_city_live | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 18 | tests/integration/test_api_rust_proxy_live.py::test_get_order_live | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 19 | tests/integration/test_api_rust_proxy_live.py::test_get_trips_many_live | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 20 | tests/integration/test_api_rust_proxy_live.py::test_landing_token_live | 14:05:05 | 14:05:05 | 0.025s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 21 | tests/integration/test_api_rust_proxy_live.py::test_incidents_list_live | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 22 | tests/integration/test_api_rust_proxy_live.py::test_vrt_health_live | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 23 | tests/integration/test_order_full_flow.py::test_order_full_flow_with_attributes | 14:05:05 | 14:05:05 | 5.697s | SKIPPED | N/A | |||||||||
| 24 | tests/integration/test_planner_delivery_composition.py::test_intercity_door_goes_via_warehouse_not_fictitious_direct | 14:05:05 | 14:05:05 | 0.051s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 25 | tests/integration/test_planner_delivery_composition.py::test_near_city_direct_uses_plain_agent_door | 14:05:05 | 14:05:05 | 0.010s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 26 | tests/integration/test_planner_delivery_composition.py::test_far_to_near_city_routes_via_warehouse_hub | 14:05:05 | 14:05:05 | 0.009s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 27 | tests/integration/test_planner_delivery_composition.py::test_ftl_direct_door_is_real_agent_tariff | 14:05:05 | 14:05:05 | 0.014s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 28 | tests/integration/test_planner_delivery_composition.py::test_no_tariff_city_from_moscow_uses_moscow_as_hub | 14:05:05 | 14:05:05 | 0.011s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 29 | tests/integration/test_planner_delivery_composition.py::test_no_tariff_city_far_routes_via_moscow | 14:05:05 | 14:05:05 | 0.007s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 30 | tests/integration/test_planner_discount_live.py::test_service_discount_recalculates_calculation | 14:05:05 | 14:05:05 | 0.006s | SKIPPED | N/A | |||||||||
| 31 | tests/integration/test_planner_discount_live.py::test_zero_discount_target_not_found_is_404 | 14:05:05 | 14:05:05 | 0.005s | SKIPPED | N/A | |||||||||
| 32 | tests/integration/test_schedule_overlap_live.py::test_schedule_overlap_two_trips | 14:05:05 | 14:05:05 | 5.692s | SKIPPED | N/A | |||||||||
| 33 | tests/integration/test_vrt_goap_live.py::test_vrt_goap_plan_self_contained | 14:05:05 | 14:05:05 | 5.741s | SKIPPED | N/A | |||||||||
| 34 | tests/integration/test_works_live.py::test_works_save_and_by_owner | 14:05:05 | 14:05:05 | 5.757s | SKIPPED | N/A | |||||||||
| 35 | tests/integration/test_works_live.py::test_works_save_replaces_not_appends | 14:05:05 | 14:05:05 | 0.001s | SKIPPED | N/A | |||||||||
| 36 | tests/integration/test_works_live.py::test_by_owner_unknown_owner_empty | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 37 | tests/integration/test_works_live.py::test_work_state_set_get_and_idempotent | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 38 | tests/integration/test_wpt_process_live.py::test_wpt_pdf_create_quotes_live | 14:05:05 | 14:05:05 | 5.152s | SKIPPED | N/A | |||||||||
| 39 | tests/integration/test_wpt_process_live.py::test_wpt_generate_documents_trip_live | 14:05:05 | 14:05:05 | 0.001s | SKIPPED | N/A | |||||||||
| 40 | tests/trades/test_01_trades_smoke.py::TestRouteTariff::test_get_all_returns_list | 14:05:05 | 14:05:05 | 0.023s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 41 | tests/trades/test_01_trades_smoke.py::TestRouteTariff::test_not_found | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 42 | tests/trades/test_01_trades_smoke.py::TestRouteTariff::test_delete_idempotent | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 43 | tests/trades/test_01_trades_smoke.py::TestCommissionPolicy::test_get_all_returns_list | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 44 | tests/trades/test_01_trades_smoke.py::TestCommissionPolicy::test_not_found | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 45 | tests/trades/test_01_trades_smoke.py::TestCommissionPolicy::test_delete_idempotent | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 46 | tests/trades/test_01_trades_smoke.py::TestTransportRequest::test_get_all_returns_list | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 47 | tests/trades/test_01_trades_smoke.py::TestTransportRequest::test_filter_by_status | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 48 | tests/trades/test_01_trades_smoke.py::TestTransportRequest::test_not_found | 14:05:05 | 14:05:05 | 0.005s | PASSED | N/A | |||||||||
| 49 | tests/trades/test_01_trades_smoke.py::TestTransportRequest::test_delete_idempotent | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 50 | tests/trades/test_01_trades_smoke.py::TestLtlTripTemplate::test_get_all_returns_list | 14:05:05 | 14:05:05 | 0.002s | PASSED | N/A | |||||||||
| 51 | tests/trades/test_01_trades_smoke.py::TestLtlTripTemplate::test_filter_active | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 52 | tests/trades/test_01_trades_smoke.py::TestLtlTripTemplate::test_not_found | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 53 | tests/trades/test_01_trades_smoke.py::TestLtlTripTemplate::test_delete_idempotent | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 54 | tests/trades/test_01_trades_smoke.py::TestAuctionTrip::test_get_all_returns_list | 14:05:05 | 14:05:05 | 0.002s | PASSED | N/A | |||||||||
| 55 | tests/trades/test_01_trades_smoke.py::TestAuctionTrip::test_filter_by_status | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 56 | tests/trades/test_01_trades_smoke.py::TestAuctionTrip::test_not_found | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 57 | tests/trades/test_01_trades_smoke.py::TestAuctionTrip::test_delete_idempotent | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 58 | tests/trades/test_01_trades_smoke.py::TestAuction::test_get_all_returns_list | 14:05:05 | 14:05:05 | 0.002s | PASSED | N/A | |||||||||
| 59 | tests/trades/test_01_trades_smoke.py::TestAuction::test_filter_by_status | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 60 | tests/trades/test_01_trades_smoke.py::TestAuction::test_not_found | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 61 | tests/trades/test_01_trades_smoke.py::TestAuction::test_delete_idempotent | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 62 | tests/trades/test_01_trades_smoke.py::TestAuction::test_delete_participant_idempotent | 14:05:05 | 14:05:05 | 0.002s | PASSED | N/A | |||||||||
| 63 | tests/trades/test_01_trades_smoke.py::TestAuction::test_delete_bid_idempotent | 14:05:05 | 14:05:05 | 0.002s | PASSED | N/A | |||||||||
| 64 | tests/trades/test_01_trades_smoke.py::TestOrdersTrips::test_get_orders_returns_list | 14:05:05 | 14:05:05 | 0.002s | PASSED | N/A | |||||||||
| 65 | tests/trades/test_01_trades_smoke.py::TestOrdersTrips::test_get_trips_returns_list | 14:05:05 | 14:05:05 | 0.002s | PASSED | N/A | |||||||||
| 66 | tests/trades/test_01_trades_smoke.py::TestOrdersTrips::test_order_not_found | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 67 | tests/trades/test_01_trades_smoke.py::TestOrdersTrips::test_trip_not_found | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 68 | tests/trades/test_01_trades_smoke.py::TestOrdersTrips::test_delete_order_idempotent | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 69 | tests/trades/test_01_trades_smoke.py::TestOrdersTrips::test_delete_trip_idempotent | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 70 | tests/trades/test_01_trades_smoke.py::TestInfra::test_goap_status | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 71 | tests/trades/test_01_trades_smoke.py::TestInfra::test_auction_scheduler_status | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 72 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_01_request_created | 14:05:05 | 14:05:05 | 0.000s | PASSED | N/A | |||||||||
| 73 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_02_auction_trip_auto_created | 14:05:05 | 14:05:05 | 0.001s | PASSED | N/A | |||||||||
| 74 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_03_start_price_includes_commission | 14:05:05 | 14:05:05 | 0.000s | PASSED | N/A | |||||||||
| 75 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_04_auction_is_active | 14:05:05 | 14:05:05 | 0.000s | PASSED | N/A | |||||||||
| 76 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_05_bid_above_threshold_rejected | 14:05:05 | 14:05:05 | 0.003s | PASSED | N/A | |||||||||
| 77 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_06_carrier1_places_valid_bid | 14:05:05 | 14:05:05 | 0.002s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 78 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_07_carrier2_outbids_carrier1 | 14:05:05 | 14:05:05 | 0.000s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 79 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_08_finish_auction | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 80 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_09_winner_and_loser_participants | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 81 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_10_execution_pipeline_creates_order | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 82 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_11_execution_pipeline_creates_trip | 14:05:05 | 14:05:05 | 0.001s | FAILED | UNKNOWN |
🚫 Error Details
Stack Trace:NoneType: None |
||||||||
| 83 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_12_order_linked_to_trip | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A | |||||||||
| 84 | tests/trades/test_02_trades_scenario_ftl.py::TestFtlScenario::test_13_update_trip_status | 14:05:05 | 14:05:05 | 0.000s | SKIPPED | N/A |
📋 Overview: This section provides comprehensive details for each individual test step across all test cases. Use the interactive features to explore step execution patterns and identify potential issues.
[TIP] Click headers to sort 🔍 Hover for tooltips 📊 Interactive charts