test_avulsa_and_comanda_finalize_through_real_payment_dialog (test_flow_sales.FlowSalesTests.test_avulsa_and_comanda_finalize_through_real_payment_dialog) ... ok
test_catalogue_unit_change_refreshes_real_card_without_name_or_price_change (test_flow_sales.FlowSalesTests.test_catalogue_unit_change_refreshes_real_card_without_name_or_price_change) ... ok
test_comanda_picker_and_cards_only_display_real_comandas (test_flow_sales.FlowSalesTests.test_comanda_picker_and_cards_only_display_real_comandas) ... ok
test_many_configured_categories_remain_accessible_in_full_icon_menu (test_flow_sales.FlowSalesTests.test_many_configured_categories_remain_accessible_in_full_icon_menu) ... ok
test_method_cards_and_split_handoff_use_real_payment_api (test_flow_sales.FlowSalesTests.test_method_cards_and_split_handoff_use_real_payment_api) ... ok
test_modes_and_navigation_preserve_independent_persisted_orders (test_flow_sales.FlowSalesTests.test_modes_and_navigation_preserve_independent_persisted_orders) ... ok
test_narrow_window_stacks_panels_and_scrolls_to_every_action_without_clipping (test_flow_sales.FlowSalesTests.test_narrow_window_stacks_panels_and_scrolls_to_every_action_without_clipping) ... ok
test_pending_direct_sale_blocks_cash_shift_change (test_flow_sales.FlowSalesTests.test_pending_direct_sale_blocks_cash_shift_change) ... ok
test_real_category_buttons_and_scan_do_not_merge_customers (test_flow_sales.FlowSalesTests.test_real_category_buttons_and_scan_do_not_merge_customers) ... ok
test_reference_geometry_keeps_basket_left_and_catalogue_right (test_flow_sales.FlowSalesTests.test_reference_geometry_keeps_basket_left_and_catalogue_right) ... ok
test_semantic_category_icons_update_without_changing_current_sale (test_flow_sales.FlowSalesTests.test_semantic_category_icons_update_without_changing_current_sale) ... ok
test_suspended_direct_sale_is_recovered_explicitly_without_becoming_comanda (test_flow_sales.FlowSalesTests.test_suspended_direct_sale_is_recovered_explicitly_without_becoming_comanda) ... ok
test_weight_note_discount_and_quantity_keep_actual_rules (test_flow_sales.FlowSalesTests.test_weight_note_discount_and_quantity_keep_actual_rules) ... ok
test_wide_catalogue_fits_seven_or_eight_category_controls_in_one_row (test_flow_sales.FlowSalesTests.test_wide_catalogue_fits_seven_or_eight_category_controls_in_one_row) ... ok
test_batch_price_ui_keeps_launched_item_at_original_price (test_v3_sales.PremiumSalesV3Tests.test_batch_price_ui_keeps_launched_item_at_original_price) ... ok
test_detail_renders_completed_order_without_changing_it (test_v3_sales.PremiumSalesV3Tests.test_detail_renders_completed_order_without_changing_it) ... ok
test_history_exports_complete_audit_beyond_five_thousand (test_v3_sales.PremiumSalesV3Tests.test_history_exports_complete_audit_beyond_five_thousand) ... ok
test_history_filters_backend_and_resets_pagination (test_v3_sales.PremiumSalesV3Tests.test_history_filters_backend_and_resets_pagination) ... ok
test_hold_resume_and_all_status_filter (test_v3_sales.PremiumSalesV3Tests.test_hold_resume_and_all_status_filter) ... ok
test_incomplete_payment_requires_explicit_partial_choice (test_v3_sales.PremiumSalesV3Tests.test_incomplete_payment_requires_explicit_partial_choice) ... ok
test_owner_user_edit_refreshes_table_after_save (test_v3_sales.PremiumSalesV3Tests.test_owner_user_edit_refreshes_table_after_save) ... ok
test_partial_receipt_then_mixed_closure_does_not_duplicate (test_v3_sales.PremiumSalesV3Tests.test_partial_receipt_then_mixed_closure_does_not_duplicate) ... ok
test_pay_selected_items_allocates_discount_and_prevents_reuse (test_v3_sales.PremiumSalesV3Tests.test_pay_selected_items_allocates_discount_and_prevents_reuse) ... ok
test_payment_failure_keeps_inputs_and_no_success_notice (test_v3_sales.PremiumSalesV3Tests.test_payment_failure_keeps_inputs_and_no_success_notice) ... ok
test_preorders_and_reports_use_current_store_contract (test_v3_sales.PremiumSalesV3Tests.test_preorders_and_reports_use_current_store_contract) ... ok
test_refund_form_calls_partial_refund_and_preserves_remainder (test_v3_sales.PremiumSalesV3Tests.test_refund_form_calls_partial_refund_and_preserves_remainder) ... ok
test_scale_label_adds_weight_without_manual_quantity_dialog (test_v3_sales.PremiumSalesV3Tests.test_scale_label_adds_weight_without_manual_quantity_dialog) ... ok
test_scanner_creates_avulsa_and_preserves_barcode_zeroes (test_v3_sales.PremiumSalesV3Tests.test_scanner_creates_avulsa_and_preserves_barcode_zeroes) ... ok
test_stock_entry_from_form_and_report_reflects_real_balance (test_v3_sales.PremiumSalesV3Tests.test_stock_entry_from_form_and_report_reflects_real_balance) ... ok
test_weight_and_item_details_are_recorded (test_v3_sales.PremiumSalesV3Tests.test_weight_and_item_details_are_recorded) ... ok
test_held_sale_requires_explicit_reason_and_confirmation_for_each_closing (test_carried_shortcuts.CarriedSalesTests.test_held_sale_requires_explicit_reason_and_confirmation_for_each_closing) ... ok
test_mutation_invalidates_carry_but_failed_mutation_rolls_back (test_carried_shortcuts.CarriedSalesTests.test_mutation_invalidates_carry_but_failed_mutation_rolls_back) ... ok
test_nonheld_empty_and_missing_price_cannot_be_carried (test_carried_shortcuts.CarriedSalesTests.test_nonheld_empty_and_missing_price_cannot_be_carried) ... ok
test_operator_reason_audit_idempotence_undo_and_backup (test_carried_shortcuts.CarriedSalesTests.test_operator_reason_audit_idempotence_undo_and_backup) ... ok
test_partial_payment_then_next_session_resume_preserves_stock_and_saved_report (test_carried_shortcuts.CarriedSalesTests.test_partial_payment_then_next_session_resume_preserves_stock_and_saved_report) ... ok
test_closing_requires_reason_and_shows_carry_without_reconciliation_leak (test_carried_shortcuts.ShortcutFlowTests.test_closing_requires_reason_and_shows_carry_without_reconciliation_leak) ... ok
test_guard_and_resume_shortcuts_with_prior_date_search_and_arrows (test_carried_shortcuts.ShortcutFlowTests.test_guard_and_resume_shortcuts_with_prior_date_search_and_arrows) ... ok
test_sangria_supply_and_both_menus_dispatch_to_correct_operations (test_carried_shortcuts.ShortcutFlowTests.test_sangria_supply_and_both_menus_dispatch_to_correct_operations) ... ok
test_split_shortcuts_people_enter_then_methods_do_not_pay_prematurely (test_carried_shortcuts.ShortcutFlowTests.test_split_shortcuts_people_enter_then_methods_do_not_pay_prematurely) ... ok
test_installation_requires_closed_cash_and_published_new_version (test_updates.UpdateInterfaceTests.test_installation_requires_closed_cash_and_published_new_version) ... ok
test_online_offline_and_unconfigured_are_distinct_and_do_not_interrupt_sale (test_updates.UpdateInterfaceTests.test_online_offline_and_unconfigured_are_distinct_and_do_not_interrupt_sale) ... ok
test_api_manifest_and_package_require_correct_store_and_installation (test_updates.UpdateTests.test_api_manifest_and_package_require_correct_store_and_installation) ... ok
test_download_verified_before_staging_and_partial_corrupt_downloads_preserve_live_app (test_updates.UpdateTests.test_download_verified_before_staging_and_partial_corrupt_downloads_preserve_live_app) ... ok
test_failed_startup_restores_both_previous_runtime_and_preupdate_database (test_updates.UpdateTests.test_failed_startup_restores_both_previous_runtime_and_preupdate_database) ... ok
test_publication_signature_digest_and_monotonic_versions (test_updates.UpdateTests.test_publication_signature_digest_and_monotonic_versions) ... ok
test_startup_acknowledgement_preserves_data_and_previous_runtime (test_updates.UpdateTests.test_startup_acknowledgement_preserves_data_and_previous_runtime) ... ok
test_tampered_signature_wrong_key_application_and_protocol_are_rejected (test_updates.UpdateTests.test_tampered_signature_wrong_key_application_and_protocol_are_rejected) ... ok
test_upload_handler_requires_idr_admin_csrf_and_origin (test_updates.UpdateTests.test_upload_handler_requires_idr_admin_csrf_and_origin) ... ok
test_zip_traversal_windows_aliases_symlink_duplicates_and_wrong_version (test_updates.UpdateTests.test_zip_traversal_windows_aliases_symlink_duplicates_and_wrong_version) ... ok

----------------------------------------------------------------------
Ran 49 tests in 49.794s

OK
