<?xml version="1.0" encoding="utf-8"?><testsuites name="pytest tests"><testsuite name="pytest" errors="0" failures="0" skipped="0" tests="36" time="8.741" timestamp="2026-10-29T09:38:56.737421+00:00" hostname="Mac"><testcase classname="tests.test_workflow" name="test_exact_pipeline_filters_counts_private_metadata_and_no_financial_effects" time="0.331" /><testcase classname="tests.test_workflow" name="test_job_save_idempotency_race_and_stale_rejection" time="0.255" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change0]" time="0.178" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change1]" time="0.179" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change2]" time="0.199" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change3]" time="0.172" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change4]" time="0.189" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change5]" time="0.187" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change6]" time="0.182" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change7]" time="0.210" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change8]" time="0.179" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change9]" time="0.182" /><testcase classname="tests.test_workflow" name="test_invalid_metadata_does_not_write[change10]" time="0.183" /><testcase classname="tests.test_workflow" name="test_archive_guards_future_booking_repeat_contract_draft_billing_and_reopen" time="0.345" /><testcase classname="tests.test_workflow" name="test_quote_suggestions_current_shared_age_last_contact_revision_and_status" time="0.256" /><testcase classname="tests.test_workflow" name="test_repeat_exact_customer_open_work_recurring_work_and_explicit_dates" time="0.271" /><testcase classname="tests.test_workflow" name="test_dismissal_survives_private_edits_snooze_reopens_by_date_and_new_work_is_new" time="0.225" /><testcase classname="tests.test_workflow" name="test_review_stale_facts_parallel_decisions_idempotency_and_no_delivery" time="0.274" /><testcase classname="tests.test_workflow" name="test_feedback_harmless_metadata_preserves_original_permission_and_history" time="0.294" /><testcase classname="tests.test_workflow" name="test_material_job_changes_suspend_without_rewriting_consent_or_answers[change0]" time="0.225" /><testcase classname="tests.test_workflow" name="test_material_job_changes_suspend_without_rewriting_consent_or_answers[change1]" time="0.225" /><testcase classname="tests.test_workflow" name="test_material_job_changes_suspend_without_rewriting_consent_or_answers[change2]" time="0.228" /><testcase classname="tests.test_workflow" name="test_material_job_changes_suspend_without_rewriting_consent_or_answers[change3]" time="0.227" /><testcase classname="tests.test_workflow" name="test_review_suggestions_follow_exact_feedback_history_without_reinviting" time="0.234" /><testcase classname="tests.test_workflow" name="test_postcode_group_is_opt_in_explicit_exact_and_stale_sensitive" time="0.340" /><testcase classname="tests.test_workflow" name="test_owner_business_staff_portal_and_private_projection_boundaries" time="0.346" /><testcase classname="tests.test_workflow" name="test_uk_report_counts_estimates_invoices_receipts_deposits_and_internal_costs" time="0.241" /><testcase classname="tests.test_workflow" name="test_unfinished_timer_and_source_reservation_block_archive_without_changes" time="0.223" /><testcase classname="tests.test_workflow" name="test_expired_shared_quote_and_voided_invoice_do_not_inflate_current_metrics" time="0.220" /><testcase classname="tests.test_workflow" name="test_settings_and_review_require_fresh_versions_and_deliberate_confirmation" time="0.201" /><testcase classname="tests.test_workforce" name="test_rate_snapshot_exact_rounding_corrections_and_history" time="0.190" /><testcase classname="tests.test_customer_reviews" name="test_stale_pair_and_transfer_reviews_preserve_all_records" time="0.310" /><testcase classname="tests.test_photos" name="test_pair_order_archive_restore_history_and_version_conflicts" time="0.227" /><testcase classname="tests.test_photos" name="test_exact_customer_sharing_is_separate_from_private_metadata" time="0.252" /><testcase classname="tests.test_documents" name="test_draft_edit_revision_preserves_published_snapshot_and_history" time="0.243" /><testcase classname="tests.test_boundaries" name="test_auth_csrf_origin_host_and_security_headers" time="0.180" /></testsuite></testsuites>