[FIX] survey: keep the action helper alive when the RPC is unreachable
`SurveySurveyActionHelper` (shown when the survey list/kanban is empty)
fetches the sample templates in `onWillStart` and lets any error
through.
In the offline clickbot (`TestMenusAdminLight.test_02_click_apps_menus_
as_admin_offline`) that RPC is cut and the whole Surveys app fails:
Error found:
- Current testing app is Surveys (survey.menu_surveys)
- Currently running offline
Connection to
"/web/dataset/call_kw/survey.survey/get_survey_templates_data"
couldn't be established or was interrupted
Odoo's runbot never renders the helper during that test because the
enterprise `hr_appraisal_survey` ships surveys as regular data; a
community-only database without demo data has an empty list and hits it.
Swallow `ConnectionLostError` only and render the helper without
templates: "Start from scratch" stays available, other errors still
propagate.
Verified with `-i survey,web --test-enable
--test-tags=/web:TestMenusAdminLight`
on a community checkout without demo data: test_02 fails without this
change and passes with it (2/2).
Odoo 20 Test Suite Using Docker
Post install tests: from point_of_sale to purchase_requisition_stock
- install_module account,account_check_printing,account_debit_note,account_edi,account_edi_proxy_client,account_edi_ubl_cii,account_fleet,account_payment,account_payment_custom,account_payment_interco,account_peppol,account_qr_code_emv,account_qr_code_sepa,account_tax_python,account_test,account_update_tax_tags,analytic,api_doc,attachment_indexation,auth_oauth,auth_passkey,auth_passkey_portal,auth_password_policy,auth_password_policy_portal,auth_password_policy_signup,auth_signup,auth_timeout,auth_totp,auth_totp_mail,auth_totp_portal,barcodes,barcodes_gs1_nomenclature,base,base_address_extended,base_automation,base_geolocalize,base_import,base_import_module,base_install_request,base_report_paper_muncher,base_report_wkhtmltox,base_setup,base_sparse_field,board,bus,calendar,calendar_sms,certificate,cloud_storage,cloud_storage_azure,cloud_storage_google,cloud_storage_migration,contacts,crm,crm_iap_enrich,crm_iap_mine,crm_livechat,crm_mail_plugin,crm_sale_project,crm_sms,data_recycle,delivery,digest,event,event_booth,event_booth_sale,event_crm,event_crm_sale,event_product,event_sale,event_sms,fleet,fleet_maintenance,gamification,gamification_sale_crm,google_account,google_address_autocomplete,google_calendar,google_gmail,google_recaptcha,hr,hr_address_extended,hr_attendance,hr_calendar,hr_calendar_google,hr_expense,hr_fleet,hr_gamification,hr_holidays,hr_holidays_attendance,hr_livechat,hr_maintenance,hr_presence,hr_recruitment,hr_recruitment_skills,hr_recruitment_sms,hr_recruitment_survey,hr_skills,hr_skills_event,hr_skills_slides,hr_skills_survey,hr_timesheet,hr_timesheet_attendance,hr_work_entry,html_builder,html_editor,http_routing,iap,iap_crm,iap_mail,im_livechat,iot_webserial,l10n_vn_edi_viettel,l10n_vn_edi_viettel_pos,l10n_vn_edi_viettel_stock,link_tracker,loyalty,lunch,mail,mail_bot,mail_bot_hr,mail_group,mail_plugin,mail_tracking,mail_tracking_mass_mailing,mail_tracking_sms,maintenance,marketing_card,marketing_card_event,mass_mailing,mass_mailing_crm,mass_mailing_crm_sms,mass_mailing_event,mass_mailing_event_sms,mass_mailing_event_track,mass_mailing_event_track_sms,mass_mailing_sale,mass_mailing_sale_sms,mass_mailing_slides,mass_mailing_sms,mass_mailing_themes,microsoft_account,microsoft_calendar,microsoft_outlook,mrp,mrp_account,mrp_delivery,mrp_landed_costs,mrp_product_expiry,mrp_repair,mrp_subcontracting,mrp_subcontracting_account,mrp_subcontracting_dropshipping,mrp_subcontracting_landed_costs,mrp_subcontracting_purchase,mysubscription,onboarding,partner_autocomplete,partnership,payment,payment_adyen,payment_aps,payment_asiapay,payment_authorize,payment_buckaroo,payment_custom,payment_demo,payment_dpo,payment_ecpay,payment_flutterwave,payment_iyzico,payment_mercado_pago,payment_mollie,payment_nuvei,payment_paymob,payment_paypal,payment_payu,payment_razorpay,payment_redsys,payment_stripe,payment_toss_payments,payment_worldline,payment_xendit,phone_validation,point_of_sale,populate,portal,portal_discuss,portal_rating,pos_account_tax_python,pos_adyen,pos_bancontact_pay,pos_cashdro,pos_cashmatic,pos_discount,pos_dpopay,pos_edi_ubl,pos_event,pos_event_sale,pos_glory_cash,pos_hr,pos_hr_restaurant,pos_imin,pos_loyalty,pos_mercado_pago,pos_mollie,pos_mrp,pos_online_payment,pos_online_payment_self_order,pos_partner_autocomplete,pos_pine_labs,pos_qfpay,pos_razorpay,pos_repair,pos_restaurant,pos_restaurant_loyalty,pos_safaricom,pos_sale,pos_sale_delivery,pos_sale_loyalty,pos_sale_margin,pos_sale_stock,pos_self_order,pos_self_order_bancontact_pay,pos_self_order_event,pos_self_order_pine_labs,pos_self_order_qfpay,pos_self_order_razorpay,pos_self_order_sale,pos_self_order_sms,pos_sms,pos_stock,pos_stripe,pos_viva_com,printer,privacy_lookup,product,product_email_template,product_expiry,product_margin,product_matrix,project,project_account,project_hr_expense,project_hr_skills,project_mail_plugin,project_mrp,project_mrp_account,project_mrp_sale,project_mrp_stock_landed_costs,project_purchase,project_purchase_stock,project_sale_expense,project_sms,project_stock,project_stock_account,project_stock_landed_costs,project_timesheet_holidays,project_todo,purchase,purchase_alternative,purchase_alternative_sale,purchase_alternative_stock,purchase_edi_ubl_bis3,purchase_mrp,purchase_product_matrix,purchase_repair,purchase_requisition,purchase_requisition_stock,purchase_stock,rating,repair,resource,resource_mail,rpc,sale,sale_crm,sale_edi_ubl,sale_expense,sale_expense_margin,sale_gelato,sale_gelato_stock,sale_loyalty,sale_loyalty_delivery,sale_management,sale_margin,sale_mrp,sale_mrp_margin,sale_pdf_quote_builder,sale_product_matrix,sale_project,sale_project_margin,sale_project_stock,sale_project_stock_account,sale_purchase,sale_purchase_project,sale_purchase_stock,sale_service,sale_sms,sale_stock,sale_stock_margin,sale_stock_product_expiry,sale_timesheet,sale_timesheet_margin,sales_team,sms,sms_twilio,snailmail,snailmail_account,social_media,spreadsheet,spreadsheet_account,spreadsheet_dashboard,spreadsheet_dashboard_account,spreadsheet_dashboard_event_sale,spreadsheet_dashboard_hr_expense,spreadsheet_dashboard_hr_timesheet,spreadsheet_dashboard_im_livechat,spreadsheet_dashboard_pos_hr,spreadsheet_dashboard_pos_restaurant,spreadsheet_dashboard_sale,spreadsheet_dashboard_sale_timesheet,spreadsheet_dashboard_stock_account,spreadsheet_dashboard_website_sale,spreadsheet_dashboard_website_sale_slides,stock,stock_account,stock_delivery,stock_dropshipping,stock_fleet,stock_landed_costs,stock_maintenance,stock_sms,survey,survey_crm,test_assetsbundle,test_base,test_base_automation,test_crm_full,test_data_module,test_data_module_install,test_discuss_full,test_event_full,test_html_field_history,test_http,test_import_export,test_inherit,test_inherit_depends,test_inherits_depends,test_l10n,test_mail,test_mail_full,test_mail_sms,test_main_flows,test_mass_mailing,test_populate,test_resource,test_sale_product_configurators,test_sale_purchase_edi_ubl,test_spreadsheet,test_tests,test_translation,test_uninstall,test_utm,test_web,test_website,test_website_modules,test_website_slides_full,theme_default,uom,utm,web,web_hierarchy,web_tour,web_unsplash,website,website_address_autocomplete,website_blog,website_cf_turnstile,website_crm,website_crm_iap_reveal,website_crm_livechat,website_crm_partner_assign,website_crm_sms,website_customer,website_event,website_event_booth,website_event_booth_exhibitor,website_event_booth_sale,website_event_booth_sale_exhibitor,website_event_crm,website_event_exhibitor,website_event_sale,website_event_track,website_event_track_live,website_event_track_live_quiz,website_event_track_quiz,website_forum,website_google_map,website_hr_recruitment,website_hr_recruitment_livechat,website_links,website_livechat,website_mail,website_mail_group,website_mass_mailing,website_mass_mailing_event,website_mass_mailing_sms,website_partner,website_partnership,website_payment,website_profile,website_project,website_sale,website_sale_collect,website_sale_gelato,website_sale_loyalty,website_sale_mass_mailing,website_sale_mrp,website_sale_project,website_sale_slides,website_sale_stock,website_slides,website_slides_forum,website_slides_survey,website_sms,website_timesheet
- exec_odoo --db_port 5435 --log-level=test --max-cron-threads=0 --http-interface=127.0.0.1 --load=base,rpc,web,viin_brand,to_erponline_utility,test_runbot_support --stop-after-init --test-enable --test-tags=/point_of_sale,/populate,/portal,/portal_discuss,/portal_rating,/pos_account_tax_python,/pos_adyen,/pos_bancontact_pay,/pos_cashdro,/pos_cashmatic,/pos_discount,/pos_dpopay,/pos_edi_ubl,/pos_event,/pos_event_sale,/pos_glory_cash,/pos_hr,/pos_hr_restaurant,/pos_imin,/pos_loyalty,/pos_mercado_pago,/pos_mollie,/pos_mrp,/pos_online_payment,/pos_online_payment_self_order,/pos_partner_autocomplete,/pos_pine_labs,/pos_qfpay,/pos_razorpay,/pos_repair,/pos_restaurant,/pos_restaurant_loyalty,/pos_safaricom,/pos_sale,/pos_sale_delivery,/pos_sale_loyalty,/pos_sale_margin,/pos_sale_stock,/pos_self_order,/pos_self_order_bancontact_pay,/pos_self_order_event,/pos_self_order_pine_labs,/pos_self_order_qfpay,/pos_self_order_razorpay,/pos_self_order_sale,/pos_self_order_sms,/pos_sms,/pos_stock,/pos_stripe,/pos_viva_com,/printer,/privacy_lookup,/product,/product_email_template,/product_expiry,/product_margin,/product_matrix,/project,/project_account,/project_hr_expense,/project_hr_skills,/project_mail_plugin,/project_mrp,/project_mrp_account,/project_mrp_sale,/project_mrp_stock_landed_costs,/project_purchase,/project_purchase_stock,/project_sale_expense,/project_sms,/project_stock,/project_stock_account,/project_stock_landed_costs,/project_timesheet_holidays,/project_todo,/purchase,/purchase_alternative,/purchase_alternative_sale,/purchase_alternative_stock,/purchase_edi_ubl_bis3,/purchase_mrp,/purchase_product_matrix,/purchase_repair,/purchase_requisition,/purchase_requisition_stock,-at_install,-/website_event_booth_exhibitor/tests/test_wevent_booth_exhibitor.py:TestWEventBoothExhibitorCommon.test_register,-/website_sale/tests/test_website_sale_image.py:TestWebsiteSaleRemoveImage.test_website_sale_add_and_remove_main_product_image_no_variant,-:TestIndustryFsmUi.test_ui,-/sale_management/tests/test_sale_ui.py:TestUi.test_04_portal_sale_signature_without_name_tour,-:TestMigrateEmployeeWithContract,-:TestMigrateEmployee,-/l10n_pe_edi_pos/tests/test_frontend.py:TestUi.test_pos_invoice_order_and_refund,-/helpdesk/tests/test_helpdesk_rating.py:TestHelpdeskRating.test_helpdesk_dashboard,-/website/tests/test_ui.py:TestUi.test_33_website_menus,-/account/tests/test_tour.py:TestUi.test_01_account_tour,-/website_sale_wishlist/tests/test_wishlist_process.py:TestWishlistProcess.test_01_wishlist_tour,-/test_l10n_be_hr_payroll_account/tests/test_employee_job_change.py:TestEmployeeJobChange.test_employee_job_change,-/test_website_sale_full/tests/test_ui_rental_comparison.py:TestUi.test_website_sale_renting_comparison_ui,-/knowledge/tests/test_knowledge_editor_commands.py:TestKnowledgeEditorCommands.test_knowledge_calendar_command_tour,-:TestAddToCartSnippet.test_configure_product,-.test_generic_localization,-:TestPickShipBackorder.test_pick_assign_and_backorder,-/hr_holidays/tests/test_leave_requests.py:TestLeaveRequests.test_calendar_event_create_access_rights,-:TestError.test_04_multi_db,-:TestOrderEdiUbl.test_so_import_product_from_po,-:TestReportsRendering.test_report_specific_paperformat_args,-:TestKpiProvider
| Create Date | Level | Message |
|---|---|---|
| 10/20/2026 05:30:16 PM | WARNING |
Not loading server-wide module(s) viin_brand, to_erponline_utility, test_runbot_support: not on the addons path of this build (their repository is left out, e.g. it has no 20.0 branch)
|
| 10/20/2026 05:30:16 PM | INFO |
Post install tests: from point_of_sale to purchase_requisition_stock:
Command: exec_odoo args: --db_port 5435 --log-level=test --max-cron-threads=0 --http-interface=127.0.0.1 --load=base,rpc,web --stop-after-init --test-enable --test-tags=/point_of_sale,/populate,/portal,/portal_discuss,/portal_rating,/pos_account_tax_python,/pos_adyen,/pos_bancontact_pay,/pos_cashdro,/pos_cashmatic,/pos_discount,/pos_dpopay,/pos_edi_ubl,/pos_event,/pos_event_sale,/pos_glory_cash,/pos_hr,/pos_hr_restaurant,/pos_imin,/pos_loyalty,/pos_mercado_pago,/pos_mollie,/pos_mrp,/pos_online_payment,/pos_online_payment_self_order,/pos_partner_autocomplete,/pos_pine_labs,/pos_qfpay,/pos_razorpay,/pos_repair,/pos_restaurant,/pos_restaurant_loyalty,/pos_safaricom,/pos_sale,/pos_sale_delivery,/pos_sale_loyalty,/pos_sale_margin,/pos_sale_stock,/pos_self_order,/pos_self_order_bancontact_pay,/pos_self_order_event,/pos_self_order_pine_labs,/pos_self_order_qfpay,/pos_self_order_razorpay,/pos_self_order_sale,/pos_self_order_sms,/pos_sms,/pos_stock,/pos_stripe,/pos_viva_com,/printer,/privacy_lookup,/product,/product_email_template,/product_expiry,/product_margin,/product_matrix,/project,/project_account,/project_hr_expense,/project_hr_skills,/project_mail_plugin,/project_mrp,/project_mrp_account,/project_mrp_sale,/project_mrp_stock_landed_costs,/project_purchase,/project_purchase_stock,/project_sale_expense,/project_sms,/project_stock,/project_stock_account,/project_stock_landed_costs,/project_timesheet_holidays,/project_todo,/purchase,/purchase_alternative,/purchase_alternative_sale,/purchase_alternative_stock,/purchase_edi_ubl_bis3,/purchase_mrp,/purchase_product_matrix,/purchase_repair,/purchase_requisition,/purchase_requisition_stock,-at_install,-/website_event_booth_exhibitor/tests/test_wevent_booth_exhibitor.py:TestWEventBoothExhibitorCommon.test_register,-/website_sale/tests/test_website_sale_image.py:TestWebsiteSaleRemoveImage.test_website_sale_add_and_remove_main_product_image_no_variant,-:TestIndustryFsmUi.test_ui,-/sale_management/tests/test_sale_ui.py:TestUi.test_04_portal_sale_signature_without_name_tour,-:TestMigrateEmployeeWithContract,-:TestMigrateEmployee,-/l10n_pe_edi_pos/tests/test_frontend.py:TestUi.test_pos_invoice_order_and_refund,-/helpdesk/tests/test_helpdesk_rating.py:TestHelpdeskRating.test_helpdesk_dashboard,-/website/tests/test_ui.py:TestUi.test_33_website_menus,-/account/tests/test_tour.py:TestUi.test_01_account_tour,-/website_sale_wishlist/tests/test_wishlist_process.py:TestWishlistProcess.test_01_wishlist_tour,-/test_l10n_be_hr_payroll_account/tests/test_employee_job_change.py:TestEmployeeJobChange.test_employee_job_change,-/test_website_sale_full/tests/test_ui_rental_comparison.py:TestUi.test_website_sale_renting_comparison_ui,-/knowledge/tests/test_knowledge_editor_commands.py:TestKnowledgeEditorCommands.test_knowledge_calendar_command_tour,-:TestAddToCartSnippet.test_configure_product,-.test_generic_localization,-:TestPickShipBackorder.test_pick_assign_and_backorder,-/hr_holidays/tests/test_leave_requests.py:TestLeaveRequests.test_calendar_event_create_access_rights,-:TestError.test_04_multi_db,-:TestOrderEdiUbl.test_so_import_product_from_po,-:TestReportsRendering.test_report_specific_paperformat_args,-:TestKpiProvider
|
| 10/20/2026 05:30:16 PM | INFO |
Docker command:
cd /data/build; python3 rb-3d383b4-225775/odoo-bin --addons-path rb-3d383b4-225775/odoo/addons,rb-3d383b4-225775/addons -d rb-3d383b4-225775-426863 --data-dir /data/build/datadir --db_port 5435 --log-level=test --max-cron-threads=0 --http-interface=127.0.0.1 --load=base,rpc,web --stop-after-init --test-enable --test-tags=/point_of_sale,/populate,/portal,/portal_discuss,/portal_rating,/pos_account_tax_python,/pos_adyen,/pos_bancontact_pay,/pos_cashdro,/pos_cashmatic,/pos_discount,/pos_dpopay,/pos_edi_ubl,/pos_event,/pos_event_sale,/pos_glory_cash,/pos_hr,/pos_hr_restaurant,/pos_imin,/pos_loyalty,/pos_mercado_pago,/pos_mollie,/pos_mrp,/pos_online_payment,/pos_online_payment_self_order,/pos_partner_autocomplete,/pos_pine_labs,/pos_qfpay,/pos_razorpay,/pos_repair,/pos_restaurant,/pos_restaurant_loyalty,/pos_safaricom,/pos_sale,/pos_sale_delivery,/pos_sale_loyalty,/pos_sale_margin,/pos_sale_stock,/pos_self_order,/pos_self_order_bancontact_pay,/pos_self_order_event,/pos_self_order_pine_labs,/pos_self_order_qfpay,/pos_self_order_razorpay,/pos_self_order_sale,/pos_self_order_sms,/pos_sms,/pos_stock,/pos_stripe,/pos_viva_com,/printer,/privacy_lookup,/product,/product_email_template,/product_expiry,/product_margin,/product_matrix,/project,/project_account,/project_hr_expense,/project_hr_skills,/project_mail_plugin,/project_mrp,/project_mrp_account,/project_mrp_sale,/project_mrp_stock_landed_costs,/project_purchase,/project_purchase_stock,/project_sale_expense,/project_sms,/project_stock,/project_stock_account,/project_stock_landed_costs,/project_timesheet_holidays,/project_todo,/purchase,/purchase_alternative,/purchase_alternative_sale,/purchase_alternative_stock,/purchase_edi_ubl_bis3,/purchase_mrp,/purchase_product_matrix,/purchase_repair,/purchase_requisition,/purchase_requisition_stock,-at_install,-/website_event_booth_exhibitor/tests/test_wevent_booth_exhibitor.py:TestWEventBoothExhibitorCommon.test_register,-/website_sale/tests/test_website_sale_image.py:TestWebsiteSaleRemoveImage.test_website_sale_add_and_remove_main_product_image_no_variant,-:TestIndustryFsmUi.test_ui,-/sale_management/tests/test_sale_ui.py:TestUi.test_04_portal_sale_signature_without_name_tour,-:TestMigrateEmployeeWithContract,-:TestMigrateEmployee,-/l10n_pe_edi_pos/tests/test_frontend.py:TestUi.test_pos_invoice_order_and_refund,-/helpdesk/tests/test_helpdesk_rating.py:TestHelpdeskRating.test_helpdesk_dashboard,-/website/tests/test_ui.py:TestUi.test_33_website_menus,-/account/tests/test_tour.py:TestUi.test_01_account_tour,-/website_sale_wishlist/tests/test_wishlist_process.py:TestWishlistProcess.test_01_wishlist_tour,-/test_l10n_be_hr_payroll_account/tests/test_employee_job_change.py:TestEmployeeJobChange.test_employee_job_change,-/test_website_sale_full/tests/test_ui_rental_comparison.py:TestUi.test_website_sale_renting_comparison_ui,-/knowledge/tests/test_knowledge_editor_commands.py:TestKnowledgeEditorCommands.test_knowledge_calendar_command_tour,-:TestAddToCartSnippet.test_configure_product,-.test_generic_localization,-:TestPickShipBackorder.test_pick_assign_and_backorder,-/hr_holidays/tests/test_leave_requests.py:TestLeaveRequests.test_calendar_event_create_access_rights,-:TestError.test_04_multi_db,-:TestOrderEdiUbl.test_so_import_product_from_po,-:TestReportsRendering.test_report_specific_paperformat_args,-:TestKpiProvider ;
|
| 10/20/2026 05:30:16 PM | INFO |
Restoring from: rb-3d383b4-225775-426860
|
| 10/20/2026 05:30:16 PM | INFO |
Using Dockerfile tag odoo20python314:DockerImage
|
| 10/20/2026 05:30:16 PM | INFO |
Container rb-3d383b4-225775-426863 started !
|
| 10/20/2026 09:00:53 PM | INFO |
Container rb-3d383b4-225775-426863 stopped !
|
| 10/20/2026 09:00:53 PM | ERROR |
odoo.addons.pos_self_order.tests.test_self_order_mobile.TestSelfOrderMobile.test_self_order_snooze_service.browser: FAILED: [4/5] Tour test_self_order_snooze_service → Step .modal-body .btn-group .form-check-input[id="1hour"].
Element (.modal-body .btn-group .form-check-input[id="1hour"]) has not been found.
TIMEOUT step failed to complete within 10000 ms.
|
| 10/20/2026 09:00:53 PM | ERROR |
odoo.addons.pos_self_order.tests.test_self_order_mobile: FAIL: TestSelfOrderMobile.test_self_order_snooze_service
Traceback (most recent call last):
File "/data/build/rb-3d383b4-225775/addons/pos_self_order/tests/test_self_order_mobile.py", line 284, in test_self_order_snooze_service
self.start_tour('/pos/ui?config_id=%d' % self.pos_config.id, 'test_self_order_snooze_service', login='pos_user')
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-3d383b4-225775/odoo/tests/common.py", line 3004, in start_tour
self.browser_js(url_path=url_path, code=code, ready=ready, timeout=timeout, success_signal="tour succeeded", **kwargs)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-3d383b4-225775/odoo/tests/common.py", line 2979, in browser_js
self.fail(str(error))
~~~~~~~~~^^^^^^^^^^^^
AssertionError: FAILED: [4/5] Tour test_self_order_snooze_service → Step .modal-body .btn-group .form-check-input[id="1hour"].
Element (.modal-body .btn-group .form-check-input[id="1hour"]) has not been found.
TIMEOUT step failed to complete within 10000 ms.
|
| 10/20/2026 09:00:53 PM | ERROR |
odoo.tests.result: 1 failed, 0 error(s) of 1602 tests when loading database 'rb-3d383b4-225775-426863'
|
| 10/20/2026 09:00:53 PM | INFO |
Cleaning all resource
|
| 10/20/2026 09:00:53 PM | INFO |
Cleanup finished
|