Name: [Campaign] Brain v17 Complete: v1.4 + v2.0 Foundation — WI-1..WI-11 - Post install tests: from to_website_apps_store_loc to viin_estimate_sale

State: Failed finished in 84m

PR State: merged

PR Author: David Tran

PR Author Email:

PR: #22

Committer: David Tran

Committer Email: davidtran.hp@gmail.com

Commit: bfce74a14cd125b9f91ecabd7cbfb6926393fec6

Description:

                                [REF] viin_brain: drop transient sequence field, order collab steps by id (H3+M5)

The previous _append_step read the latest sequence and wrote
last.sequence + 1 with no row lock. Two concurrent transactions
appending to the same page therefore raced — both saw the same
"last" record and both tried to insert the next sequence value,
producing duplicate sequences (and an inconsistent replay order
on reconnect).

Drop the sequence field entirely and rely on the auto-incremented
id column. PostgreSQL id is monotonic per-table, which is exactly
what a relay buffer needs: stable replay order across reconnects.
The buffer is not authoritative history (the source of truth is
viin.brain.page.content_html), so gap-free numbering is not a
requirement; only deterministic ordering is.

Migration: TransientModel column drop is handled by the ORM at
_auto_init during module update — no manual migration script
needed. New code never references sequence so prune logic and
history shape continue to work after the column disappears.

Also move the json import in viin_brain_collab_step.py to the
module top so it does not happen on every _get_history call (M5).

Tests:

  - test_append_step_single: drop sequence assertion.
  - test_append_step_ordering: rewrite to verify id order matches
    the order callers invoked _append_step (and that step_json
    payloads come back in append order).
  - test_rolling_window_trim: verify pruning by inspecting
    surviving step_json values rather than sequence numbers.
  - test_get_history_order_and_shape: drop sequence key assertion;
    add explicit append-order assertion across client_id values.
  - test_history_endpoint_returns_steps: drop sequence key assertion.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
                                

Branch: 17.0

Instance ID: 0

Age:

Up-time:

Odoo 17 Test Suite Using Docker

Post install tests: from to_website_apps_store_loc to viin_estimate_sale

  • install_module account,account_add_gln,account_audit_trail,account_check_printing,account_debit_note,account_debit_note_sequence,account_edi,account_edi_proxy_client,account_edi_ubl_cii,account_edi_ubl_cii_tax_extension,account_fleet,account_lock,account_payment,account_payment_term,account_peppol,account_peppol_selfbilling,account_qr_code_emv,account_qr_code_sepa,account_tax_python,account_test,account_update_tax_tags,analytic,attachment_indexation,auth_oauth,auth_password_policy,auth_password_policy_portal,auth_password_policy_signup,auth_signup,auth_totp,auth_totp_mail,auth_totp_mail_enforce,auth_totp_portal,barcodes,barcodes_gs1_nomenclature,base,base_address_extended,base_automation,base_geolocalize,base_iban,base_import,base_import_module,base_install_request,base_setup,base_sparse_field,base_vat,board,bus,calendar,calendar_sms,contacts,crm,crm_iap_enrich,crm_iap_mine,crm_livechat,crm_mail_plugin,crm_sms,data_recycle,delivery,delivery_mondialrelay,delivery_stock_picking_batch,digest,event,event_booth,event_booth_sale,event_crm,event_crm_sale,event_sale,event_sms,fleet,gamification,gamification_sale_crm,google_account,google_calendar,google_gmail,google_recaptcha,hr,hr_attendance,hr_contract,hr_expense,hr_fleet,hr_gamification,hr_holidays,hr_holidays_attendance,hr_homeworking,hr_hourly_cost,hr_livechat,hr_maintenance,hr_org_chart,hr_presence,hr_recruitment,hr_recruitment_skills,hr_recruitment_sms,hr_recruitment_survey,hr_skills,hr_skills_slides,hr_skills_survey,hr_timesheet,hr_timesheet_attendance,hr_work_entry,hr_work_entry_contract,hr_work_entry_holidays,http_routing,iap,iap_crm,iap_mail,im_livechat,im_livechat_mail_bot,l10n_vn_edi_summary,l10n_vn_edi_viettel,l10n_vn_viin,l10n_vn_viin_account_asset,l10n_vn_viin_account_auto_transfer,l10n_vn_viin_account_reports,l10n_vn_viin_accounting_meinvoice,l10n_vn_viin_accounting_meinvoice_pos,l10n_vn_viin_accounting_sinvoice,l10n_vn_viin_accounting_sinvoice_pos,l10n_vn_viin_accounting_vninvoice,l10n_vn_viin_accounting_vninvoice_summary,l10n_vn_viin_base_ward,l10n_vn_viin_edi,l10n_vn_viin_edi_patch1,l10n_vn_viin_edi_pos,l10n_vn_viin_einvoice_sale,l10n_vn_viin_foreign_trade,l10n_vn_viin_foreign_trade_account_reports,l10n_vn_viin_freight_project,l10n_vn_viin_hr_account,l10n_vn_viin_hr_payroll,l10n_vn_viin_hr_payroll_account,l10n_vn_viin_hr_payroll_account_overtime,l10n_vn_viin_hr_payroll_administrative_region,l10n_vn_viin_hr_payroll_meal,l10n_vn_viin_hr_payroll_meal_account,l10n_vn_viin_hr_payroll_overtime,l10n_vn_viin_loan_management,l10n_vn_viin_mrp_subcontracting_account,l10n_vn_viin_mrp_subcontracting_settlement,l10n_vn_viin_picking_operation,l10n_vn_viin_pos,l10n_vn_viin_stock_reports,l10n_vn_viin_stock_reports_multi_warehouse_access_control,l10n_vn_viin_update_address,l10n_vn_viin_vat_counterpart,link_tracker,loyalty,lunch,mail,mail_bot,mail_bot_hr,mail_group,mail_plugin,maintenance,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,membership,microsoft_account,microsoft_calendar,microsoft_outlook,mrp,mrp_account,mrp_landed_costs,mrp_product_expiry,mrp_repair,mrp_subcontracting,mrp_subcontracting_account,mrp_subcontracting_dropshipping,mrp_subcontracting_purchase,mrp_subcontracting_repair,mrp_subonctracting_landed_costs,onboarding,partner_autocomplete,payment,payment_adyen,payment_alipay,payment_aps,payment_asiapay,payment_authorize,payment_bidv_viin,payment_buckaroo,payment_custom,payment_demo,payment_flutterwave,payment_mercado_pago,payment_mollie,payment_momo_viin,payment_nganluong,payment_ogone,payment_paypal,payment_payulatam,payment_payumoney,payment_razorpay,payment_razorpay_oauth,payment_sips,payment_stripe,payment_vnpay,payment_worldline,payment_xendit,payment_zalopay,phone_validation,point_of_sale,portal,portal_rating,pos_adyen,pos_discount,pos_epson_printer,pos_hr,pos_hr_restaurant,pos_loyalty,pos_mercado_pago,pos_mercury,pos_mrp,pos_online_payment,pos_online_payment_self_order,pos_paytm,pos_razorpay,pos_restaurant,pos_restaurant_adyen,pos_restaurant_loyalty,pos_restaurant_stripe,pos_sale,pos_sale_loyalty,pos_sale_margin,pos_sale_product_configurator,pos_self_order,pos_self_order_adyen,pos_self_order_epson_printer,pos_self_order_sale,pos_self_order_stripe,pos_stripe,pos_viva_wallet,privacy_lookup,product,product_email_template,product_expiry,product_images,product_margin,product_matrix,project,project_account,project_hr_expense,project_mail_plugin,project_mrp,project_purchase,project_sale_expense,project_sms,project_timesheet_holidays,project_todo,purchase,purchase_mrp,purchase_product_matrix,purchase_requisition,purchase_requisition_sale,purchase_requisition_stock,purchase_stock,rating,repair,resource,sale,sale_async_emails,sale_crm,sale_expense,sale_expense_margin,sale_loyalty,sale_loyalty_delivery,sale_management,sale_margin,sale_mrp,sale_mrp_margin,sale_pdf_quote_builder,sale_product_configurator,sale_product_matrix,sale_project,sale_project_stock,sale_purchase,sale_purchase_stock,sale_service,sale_sms,sale_stock,sale_stock_margin,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_purchase,spreadsheet_dashboard_purchase_stock,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_landed_costs,stock_landed_costs_company,stock_picking_batch,stock_sms,survey,test_access_rights,test_action_bindings,test_apikeys,test_assetsbundle,test_auth_custom,test_base_automation,test_base_import,test_convert,test_converter,test_crm_full,test_data_module,test_data_module_install,test_discuss_full,test_event_full,test_exceptions,test_html_field_history,test_http,test_impex,test_inherit,test_inherit_depends,test_inherits,test_inherits_depends,test_limits,test_lint,test_mail,test_mail_full,test_mail_sms,test_mail_tracking_value_multilang,test_main_flows,test_mass_mailing,test_mimetypes,test_new_api,test_performance,test_populate,test_read_group,test_resource,test_rpc,test_sale_product_configurators,test_search_panel,test_spreadsheet,test_testing_utilities,test_to_signup_email_verification,test_translation_import,test_uninstall,test_viin_approval,test_viin_mail_route,test_viin_web_cohort,test_website,test_website_modules,test_website_slides_full,test_xlsx_export,theme_default,to_account_accountant,to_account_asset,to_account_asset_purchase,to_account_budget,to_account_budget_hr_timesheet,to_account_counterpart,to_account_counterpart_account_update_tax_tags,to_account_payment,to_account_reports,to_account_reports_report_off,to_accounting_bi,to_accounting_entry_report_flag,to_approvals,to_attendance_device,to_backdate,to_backend_theme,to_bank_currency_rate,to_bank_currency_rate_purchase_stock,to_base,to_common_uom,to_config_management,to_currency_conversion_diff,to_employee_changes_tracking,to_employee_documents,to_equipment_maintenance_schedule,to_equipment_woking_frequency,to_erponline_utility,to_event_project,to_event_timesheet,to_fee_definition,to_fee_definition_sale,to_fleet_driver,to_geo_routes,to_geo_routes_account,to_geo_routes_google,to_geo_routes_here,to_geo_routes_mapbox,to_geo_routes_searoutes,to_geo_routes_vietmap,to_git,to_git_odoo_version,to_git_project,to_hide_ent_modules,to_hide_ent_modules_payment,to_hide_ent_modules_website_theme,to_hr_barcode_in_emp_name,to_hr_employee_advance,to_hr_employee_grade,to_hr_employee_grade_patch1,to_hr_employee_relative,to_hr_expense,to_hr_expense_employee_advance,to_hr_expense_payroll,to_hr_meal,to_hr_payroll,to_hr_payroll_account,to_hr_payroll_attendance,to_hr_payroll_meal,to_hr_project_timesheet_timeoff_payroll,to_hr_timesheet_approval,to_hr_timesheet_payroll,to_hr_training,to_inter_company_base,to_inter_company_invoice,to_inter_company_sale_purchase,to_inter_company_sale_purchase_stock,to_invoice_line_summary,to_invoice_tax_details,to_legal_invoice_number,to_loan_management,to_mail_template_multilang_fix,to_maintenance_approval,to_maintenance_by_working_hours,to_maintenance_notification,to_maintenance_request_simple_mediate,to_mrp_account_standard_consumption,to_mrp_backdate,to_mrp_bom_component_percentage,to_mrp_bom_stock_value,to_mrp_maintenance,to_mrp_mps,to_mrp_plm,to_mrp_workorder,to_multi_warehouse_access_control,to_multi_warehouse_access_control_mrp,to_multi_warehouse_access_control_purchase,to_multi_warehouse_access_control_sale,to_multi_warehouse_access_control_sms,to_odoo_module,to_odoo_module_loc,to_odoo_module_sale,to_odoo_module_sale_project,to_odoo_module_sale_template,to_odoo_version,to_okr,to_okr_project,to_partner_dob,to_partner_dob_send_email,to_partner_equity_range,to_partner_multilang,to_partner_multilang_partner_autocomplete,to_partner_nationality,to_partner_track_change,to_payment_transaction_protection,to_paypal_unsupported_currencies,to_payroll_payment_acb_templates,to_pos_analytics,to_pos_delivery,to_pos_note,to_pos_order_to_sales_order,to_procurement_approval,to_product_code_sequence,to_product_collection,to_product_collection_pos,to_product_collection_sale,to_product_dimensions,to_product_function,to_product_function_pos,to_product_function_sale,to_product_license,to_product_license_sale,to_product_maintenance_schedule,to_product_milestone,to_product_odoo_version,to_product_return_reason,to_product_return_reason_stock,to_product_standard_price_access,to_product_standard_price_access_account,to_product_standard_price_access_purchase,to_purchase_backdate,to_purchase_landed_cost,to_purchase_line_numbering,to_purchase_order_advance,to_purchase_receipt,to_quality,to_quality_mrp,to_quality_stock,to_refund_account,to_registration_email_blacklist,to_repair_request_from_maintenance,to_repair_with_maintenance_schedule,to_safe_confirm_button,to_sale_backdate,to_sale_desc_short_link,to_sale_line_numbering,to_sale_order_advance,to_sale_price_lock,to_sales_stock_schedule,to_sales_target,to_sales_target_pos,to_sales_target_sale,to_sales_team_advanced,to_sales_team_advanced_crm,to_sales_team_advanced_sale,to_signup_email_verification,to_sshkey,to_stock_account_moves_link,to_stock_age_report,to_stock_asset,to_stock_asset_equipment,to_stock_barcode,to_stock_block_quantity,to_stock_equipment,to_stock_equipment_bom_kit,to_stock_equipment_hierarchy,to_token_expiration,to_token_expiration_test,to_unique_product_code,to_upload_file,to_vat_counterpart,to_vendor_price_lock,to_wallet,to_warranty_management,to_warranty_purchase,to_warranty_purchase_stock,to_warranty_sale,to_warranty_sale_stock,to_warranty_stock,to_web_thousand_sep,to_website_apps_store,to_website_apps_store_loc,to_website_base,to_website_docs,to_website_docs_odoo,to_website_docs_odoo_data,to_website_odoo_version,to_website_slides_event,transifex,uom,utm,viin_account,viin_account_auto_transfer,viin_account_bank_statement_import,viin_account_bank_statement_import_rje,viin_account_budget_project,viin_account_counterpart_reconciliation,viin_account_followup,viin_account_followup_sale,viin_account_onbehalf_payment,viin_account_reconciliation,viin_account_recurring,viin_administrative_region,viin_affiliate,viin_affiliate_crm,viin_affiliate_loyalty,viin_affiliate_loyalty_pos,viin_affiliate_loyalty_sale,viin_affiliate_multi_level,viin_affiliate_multi_level_sale,viin_affiliate_pos,viin_affiliate_pos_discount,viin_affiliate_pos_sale,viin_affiliate_sale,viin_affiliate_sale_crm,viin_affiliate_website,viin_affiliate_website_crm_livechat,viin_affiliate_website_project,viin_affilitate_purchase,viin_ai,viin_ai_agent,viin_ai_base,viin_ai_brain,viin_ai_chat,viin_ai_rag,viin_ai_search,viin_amazon,viin_amazon_ses,viin_api_request_logger,viin_appointment,viin_appointment_crm,viin_appointment_sale,viin_appointment_sale_crm,viin_appointment_website,viin_appointment_website_hr,viin_approval,viin_approval_account,viin_approval_analytic,viin_approval_flexible_flow,viin_approval_hr_contract,viin_approval_mrp,viin_approval_project,viin_approval_purchase,viin_approval_purchase_stock,viin_approval_purpose_routing,viin_approval_sale,viin_approval_sale_project,viin_approval_stock,viin_auto_currency_rate,viin_auto_currency_rate_acb,viin_auto_currency_rate_bidv,viin_auto_currency_rate_vcb,viin_auto_currency_rate_xe,viin_bank_connector,viin_base_addendum,viin_base_district,viin_base_import_tracking,viin_base_state_group,viin_base_ward,viin_bidv_connector,viin_brain,viin_brain_account_reports,viin_brain_crm,viin_brain_hr,viin_brain_project,viin_brain_sale_management,viin_brand,viin_brand_account,viin_brand_auth_oauth,viin_brand_auth_totp,viin_brand_auth_totp_mail_enforce,viin_brand_auth_totp_portal,viin_brand_base_import,viin_brand_base_setup,viin_brand_calendar,viin_brand_common,viin_brand_contacts,viin_brand_crm,viin_brand_digest,viin_brand_fleet,viin_brand_hr,viin_brand_hr_expense,viin_brand_hr_recruitment,viin_brand_hr_skills,viin_brand_im_livechat,viin_brand_im_livechat_mail_bot,viin_brand_l10n_vn,viin_brand_mail,viin_brand_mail_bot,viin_brand_mail_plugin,viin_brand_mass_mailing,viin_brand_mass_mailing_crm,viin_brand_mass_mailing_sale,viin_brand_mass_mailing_sms,viin_brand_mass_mailing_themes,viin_brand_membership,viin_brand_mrp,viin_brand_onboarding,viin_brand_payment,viin_brand_payment_paypal,viin_brand_portal,viin_brand_pos,viin_brand_pos_mercury,viin_brand_product,viin_brand_purchase,viin_brand_sale,viin_brand_sale_management,viin_brand_sale_pdf_quote_builder,viin_brand_snailmail,viin_brand_social_media,viin_brand_stock,viin_brand_web,viin_brand_web_editor,viin_brand_web_unsplash,viin_brand_website,viin_brand_website_event,viin_brand_website_event_exhibitor,viin_brand_website_forum,viin_brand_website_jitsi,viin_brand_website_links,viin_brand_website_profile,viin_brand_website_sale,viin_brand_website_slides,viin_built_in_help,viin_check_company_discrepancy,viin_coach_approvals,viin_contacts_district,viin_contacts_ethnicity_religion,viin_contacts_map,viin_contacts_ward,viin_country_target_market,viin_crm,viin_crm_business_nature,viin_crm_business_nature_isic,viin_crm_business_nature_patch1,viin_crm_customer_recognition,viin_crm_dob,viin_crm_sankey,viin_customizer,viin_customizer_web_responsive,viin_discuss_channel_privacy,viin_document,viin_document_account,viin_document_freight,viin_document_freight_air,viin_document_freight_consol,viin_document_hr,viin_document_hr_contract,viin_document_hr_payroll,viin_document_hr_recruitment,viin_document_mrp,viin_document_parsing,viin_document_project,viin_document_purchase,viin_document_sale,viin_document_stock,viin_duns,viin_employee_map,viin_equipment_warranty_partner_infor,viin_estimate,viin_estimate_approval,viin_estimate_budget,viin_estimate_hr,viin_estimate_project,viin_estimate_purchase,viin_estimate_sale,viin_event_checkin_website,viin_event_partner_barcodes,viin_features_activate_account,viin_features_activate_approvals,viin_features_activate_contacts,viin_features_activate_freight,viin_features_activate_hr,viin_features_activate_hr_attendance,viin_features_activate_hr_expense,viin_features_activate_hr_payroll,viin_features_activate_hr_recruitment,viin_features_activate_inter_company,viin_features_activate_mrp,viin_features_activate_pos,viin_features_activate_product,viin_features_activate_project,viin_features_activate_purchase,viin_features_activate_sale,viin_features_activate_stock,viin_features_activate_survey,viin_features_activate_website,viin_fleet,viin_fleet_account,viin_fleet_purchase,viin_foreign_trade,viin_foreign_trade_currency_rate,viin_foreign_trade_export,viin_foreign_trade_import,viin_foreign_trade_import_currency_rate,viin_freight_air,viin_freight_air_consol,viin_freight_complete_suite,viin_freight_consol,viin_freight_document_parsing,viin_freight_gantt,viin_freight_management,viin_freight_project,viin_freight_road,viin_freight_sale,viin_freight_sale_onbehalf,viin_freight_sale_purchase,viin_geo_route_map,viin_geography_info,viin_geography_info_contact,viin_geography_info_world_bank,viin_google_drive,viin_google_translate_api,viin_helpdesk,viin_helpdesk_crm,viin_helpdesk_hr,viin_helpdesk_livechat,viin_helpdesk_odoo_module,viin_helpdesk_odoo_version,viin_helpdesk_project,viin_helpdesk_sale,viin_helpdesk_severity,viin_helpdesk_timesheet,viin_helpdesk_timesheet_timer,viin_hide_detailed_tax_in_pos_receipt,viin_hr,viin_hr_account,viin_hr_appraisal,viin_hr_attendance_validation,viin_hr_contract,viin_hr_contract_skill,viin_hr_contract_suspension,viin_hr_contract_suspension_payroll,viin_hr_contract_suspension_seniority,viin_hr_employee_birthday,viin_hr_employee_relative_birthdate,viin_hr_ethnicity_religion,viin_hr_holidays,viin_hr_maintenance,viin_hr_management_tiers,viin_hr_multi_position,viin_hr_overtime,viin_hr_overtime_approval,viin_hr_overtime_approval_compensatory_time_off,viin_hr_overtime_approval_payroll,viin_hr_overtime_attendance,viin_hr_overtime_compensatory_time_off,viin_hr_overtime_payroll,viin_hr_overtime_payroll_compensatory_time_off,viin_hr_overtime_timesheet,viin_hr_overtime_timesheet_approval,viin_hr_overtime_timesheet_attendance,viin_hr_payroll_administrative_region,viin_hr_payroll_timesheet_wfh,viin_hr_project,viin_hr_project_timesheet_account,viin_hr_rank,viin_hr_recognition_discipline,viin_hr_recognition_discipline_approval,viin_hr_recruitment,viin_hr_recruitment_approval,viin_hr_recruitment_sankey,viin_hr_recruitment_skills_resume,viin_hr_retirement_age,viin_hr_role,viin_hr_role_patch1,viin_hr_seniority,viin_hr_skill_framework,viin_hr_skill_framework_recruitment,viin_hr_skills_slides,viin_hr_timesheet_timer,viin_hr_work_entry,viin_hr_work_entry_contract,viin_hr_work_entry_contract_attendance,viin_hr_work_entry_contract_attendance_holiday,viin_hr_work_entry_contract_suspension,viin_hr_work_entry_holidays,viin_inventory_adjustment_with_cost_price,viin_lang_detection,viin_link_tracker_qr_code,viin_loan_import,viin_loan_management_bank_currency_rate,viin_logistics,viin_logistics_account,viin_logistics_cargo_template,viin_logistics_package_type,viin_logistics_route,viin_logistics_sale,viin_logistics_sales_team,viin_loyalty,viin_loyalty_pos,viin_loyalty_pos_sale,viin_loyalty_sale,viin_mail_mention_with_avatar,viin_mail_route,viin_mail_show_recipient,viin_mail_thread_account,viin_mail_thread_product,viin_mail_thread_purchase,viin_mail_thread_stock,viin_mail_thread_stock_account,viin_mail_thread_uom,viin_mail_tracking,viin_maintenance,viin_maintenance_preventive_mode,viin_meeting_room,viin_message_edit_lock,viin_mrp,viin_mrp_account,viin_mrp_filter,viin_mrp_landed_costs,viin_mrp_plm_approval,viin_mrp_plm_subcontracting_purchase,viin_mrp_plm_test_full,viin_mrp_progress,viin_mrp_standard_consumption,viin_mrp_subcontracting_link,viin_mrp_subcontracting_loss_report,viin_mrp_subcontracting_report,viin_mrp_subcontracting_request,viin_mrp_subcontracting_request_approval,viin_mrp_subcontracting_request_plm,viin_mrp_subcontracting_request_requisition,viin_multi_warehouse_access_control_purchase_requisition,viin_partner_budget_code,viin_partner_business_nature,viin_partner_business_nature_patch1,viin_partner_calendar,viin_partner_country_recognition,viin_partner_filter,viin_partner_gender,viin_partner_identity,viin_partner_industry_isic,viin_partner_shareholder,viin_partner_tax_code,viin_pdf_print_preview,viin_pos_account_qr_code_emv,viin_pos_custom_bill_logo,viin_pos_product_multi_barcodes,viin_pos_qr,viin_pos_qr_bidv,viin_pos_refund,viin_pos_return,viin_pos_sales_receipt_title,viin_pos_scale,viin_pos_vnpay,viin_pricelist_validity_advance,viin_product_multi_barcodes,viin_project,viin_project_access_timesheet,viin_project_gantt,viin_project_progress,viin_project_scrum,viin_project_scrum_gantt,viin_project_scrum_helpdesk,viin_project_timesheet_leave,viin_project_todo,viin_purchase,viin_qrcode,viin_quality_stock_access_control,viin_rental,viin_rental_stock,viin_repair,viin_repair_access_group,viin_repair_request_from_warranty,viin_resource,viin_safe_field_model_selector,viin_sale,viin_sale_addendum,viin_sale_business_nature,viin_sale_business_nature_isic,viin_sale_crm,viin_sale_crm_business_nature,viin_sale_onbehalf_management,viin_sale_product_duplication_warning,viin_sale_project,viin_sale_project_technician,viin_sale_quotation_template_access,viin_sale_recurring,viin_sale_sankey,viin_sale_subscription,viin_sale_subscription_loyalty,viin_sale_supplier_pricelist,viin_sales_team_collaboration,viin_sales_team_collaboration_crm,viin_sales_team_collaboration_sale,viin_sales_unlink,viin_sales_unlink_stock,viin_sem,viin_sem_crawler,viin_sem_crawler_helpdesk,viin_sem_heatmap,viin_sem_helpdesk,viin_sem_helpdesk_timesheet,viin_sem_project,viin_sign,viin_sign_document,viin_sign_sim,viin_sign_sim_viettel,viin_social,viin_social_facebook,viin_social_lead,viin_social_linkedin,viin_spreadsheet_dashboard_crm,viin_spreadsheet_dashboard_finance,viin_spreadsheet_dashboard_freight,viin_spreadsheet_dashboard_helpdesk,viin_stock,viin_stock_account_backdate,viin_stock_approval,viin_stock_backdate,viin_stock_internal_transfer,viin_stock_internal_transit_valuation,viin_stock_internal_transit_valuation_specific_identification,viin_stock_landed_costs,viin_stock_lot_dropshipping_partner_infor,viin_stock_lot_partner_infor,viin_stock_specific_identification,viin_stock_specific_identification_landed_costs,viin_stock_specific_identification_mrp,viin_stock_specific_identification_purchase_stock,viin_stringee,viin_survey,viin_survey_exam,viin_survey_recompute_results,viin_tracking_location,viin_tracking_location_route,viin_transfer_address,viin_wallet_loyalty,viin_wallet_sale_loyalty,viin_web_cohort,viin_web_countup_timer,viin_web_editor,viin_web_gantt,viin_web_map,viin_web_sankey,viin_website,viin_website_auto_translation,viin_website_auto_translation_blog,viin_website_auto_translation_google,viin_website_blog_access_right,viin_website_blog_toc,viin_website_forum_security_groups,viin_website_gtm,viin_website_helpdesk,viin_website_hr_recruitment_website_editor,viin_website_multilingual_multimedia,viin_website_nofollow,viin_website_page_access_right,viin_website_partner_business_nature,viin_website_partner_business_nature_patch1,viin_website_sale_recurring,viin_website_sale_subscription,viin_website_seo,viin_website_seo_advisor,viin_website_seo_advisor_blog,viin_website_seo_blog,viin_website_seo_event,viin_website_seo_forum,viin_website_seo_hr_recruitment,viin_website_seo_sale,viin_website_seo_sale_stock,viin_website_seo_slides,viin_website_slides,viin_website_slides_survey,viin_workflow_automation,viin_zalo,viin_zalo_account,viin_zalo_auth_oauth,viin_zalo_chatter_sync,viin_zalo_crm,viin_zalo_helpdesk,viin_zalo_sale,viin_zalo_website_livechat,viin_zalo_zbs,web,web_editor,web_hierarchy,web_responsive,web_tour,web_unsplash,website,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_jitsi,website_event_meet,website_event_meet_quiz,website_event_sale,website_event_track,website_event_track_live,website_event_track_live_quiz,website_event_track_quiz,website_form_project,website_forum,website_google_map,website_hr_recruitment,website_jitsi,website_links,website_livechat,website_mail,website_mail_group,website_mass_mailing,website_mass_mailing_sms,website_membership,website_partner,website_payment,website_payment_authorize,website_profile,website_sale,website_sale_autocomplete,website_sale_comparison,website_sale_comparison_wishlist,website_sale_loyalty,website_sale_mondialrelay,website_sale_mrp,website_sale_picking,website_sale_product_configurator,website_sale_slides,website_sale_stock,website_sale_stock_wishlist,website_sale_wishlist,website_slides,website_slides_forum,website_slides_survey,website_sms,website_twitter
  • exec_odoo --db_port 5432 --log-level=test --max-cron-threads=0 --http-interface=127.0.0.1 --load=base,web,to_base --stop-after-init --test-enable --test-tags=/to_website_apps_store_loc,/to_website_base,/to_website_docs,/to_website_docs_odoo,/to_website_docs_odoo_data,/to_website_odoo_version,/to_website_slides_event,/transifex,/uom,/utm,/viin_account,/viin_account_auto_transfer,/viin_account_bank_statement_import,/viin_account_bank_statement_import_rje,/viin_account_budget_project,/viin_account_counterpart_reconciliation,/viin_account_followup,/viin_account_followup_sale,/viin_account_onbehalf_payment,/viin_account_reconciliation,/viin_account_recurring,/viin_administrative_region,/viin_affiliate,/viin_affiliate_crm,/viin_affiliate_loyalty,/viin_affiliate_loyalty_pos,/viin_affiliate_loyalty_sale,/viin_affiliate_multi_level,/viin_affiliate_multi_level_sale,/viin_affiliate_pos,/viin_affiliate_pos_discount,/viin_affiliate_pos_sale,/viin_affiliate_sale,/viin_affiliate_sale_crm,/viin_affiliate_website,/viin_affiliate_website_crm_livechat,/viin_affiliate_website_project,/viin_affilitate_purchase,/viin_ai,/viin_ai_agent,/viin_ai_base,/viin_ai_brain,/viin_ai_chat,/viin_ai_rag,/viin_ai_search,/viin_amazon,/viin_amazon_ses,/viin_api_request_logger,/viin_appointment,/viin_appointment_crm,/viin_appointment_sale,/viin_appointment_sale_crm,/viin_appointment_website,/viin_appointment_website_hr,/viin_approval,/viin_approval_account,/viin_approval_analytic,/viin_approval_flexible_flow,/viin_approval_hr_contract,/viin_approval_mrp,/viin_approval_project,/viin_approval_purchase,/viin_approval_purchase_stock,/viin_approval_purpose_routing,/viin_approval_sale,/viin_approval_sale_project,/viin_approval_stock,/viin_auto_currency_rate,/viin_auto_currency_rate_acb,/viin_auto_currency_rate_bidv,/viin_auto_currency_rate_vcb,/viin_auto_currency_rate_xe,/viin_bank_connector,/viin_base_addendum,/viin_base_district,/viin_base_import_tracking,/viin_base_state_group,/viin_base_ward,/viin_bidv_connector,/viin_brain,/viin_brain_account_reports,/viin_brain_crm,/viin_brain_hr,/viin_brain_project,/viin_brain_sale_management,/viin_brand,/viin_brand_account,/viin_brand_auth_oauth,/viin_brand_auth_totp,/viin_brand_auth_totp_mail_enforce,/viin_brand_auth_totp_portal,/viin_brand_base_import,/viin_brand_base_setup,/viin_brand_calendar,/viin_brand_common,/viin_brand_contacts,/viin_brand_crm,/viin_brand_digest,/viin_brand_fleet,/viin_brand_hr,/viin_brand_hr_expense,/viin_brand_hr_recruitment,/viin_brand_hr_skills,/viin_brand_im_livechat,/viin_brand_im_livechat_mail_bot,/viin_brand_l10n_vn,/viin_brand_mail,/viin_brand_mail_bot,/viin_brand_mail_plugin,/viin_brand_mass_mailing,/viin_brand_mass_mailing_crm,/viin_brand_mass_mailing_sale,/viin_brand_mass_mailing_sms,/viin_brand_mass_mailing_themes,/viin_brand_membership,/viin_brand_mrp,/viin_brand_onboarding,/viin_brand_payment,/viin_brand_payment_paypal,/viin_brand_portal,/viin_brand_pos,/viin_brand_pos_mercury,/viin_brand_product,/viin_brand_purchase,/viin_brand_sale,/viin_brand_sale_management,/viin_brand_sale_pdf_quote_builder,/viin_brand_snailmail,/viin_brand_social_media,/viin_brand_stock,/viin_brand_web,/viin_brand_web_editor,/viin_brand_web_unsplash,/viin_brand_website,/viin_brand_website_event,/viin_brand_website_event_exhibitor,/viin_brand_website_forum,/viin_brand_website_jitsi,/viin_brand_website_links,/viin_brand_website_profile,/viin_brand_website_sale,/viin_brand_website_slides,/viin_built_in_help,/viin_check_company_discrepancy,/viin_coach_approvals,/viin_contacts_district,/viin_contacts_ethnicity_religion,/viin_contacts_map,/viin_contacts_ward,/viin_country_target_market,/viin_crm,/viin_crm_business_nature,/viin_crm_business_nature_isic,/viin_crm_business_nature_patch1,/viin_crm_customer_recognition,/viin_crm_dob,/viin_crm_sankey,/viin_customizer,/viin_customizer_web_responsive,/viin_discuss_channel_privacy,/viin_document,/viin_document_account,/viin_document_freight,/viin_document_freight_air,/viin_document_freight_consol,/viin_document_hr,/viin_document_hr_contract,/viin_document_hr_payroll,/viin_document_hr_recruitment,/viin_document_mrp,/viin_document_parsing,/viin_document_project,/viin_document_purchase,/viin_document_sale,/viin_document_stock,/viin_duns,/viin_employee_map,/viin_equipment_warranty_partner_infor,/viin_estimate,/viin_estimate_approval,/viin_estimate_budget,/viin_estimate_hr,/viin_estimate_project,/viin_estimate_purchase,/viin_estimate_sale,-at_install,-.test_so_and_multicurrency,-:TestUi.test_02_crm_tour_rainbowman,-.test_assign_perf_duplicates,-/l10n_it_edi_sdicoop,-:TestExamples.test_with_car_with_atn_with_car,-:TestExamples.test_with_car_with_atn_with_child,-/project_enterprise.test_01_ui,-.test_generate_fec_sanitize_pieceref,-:TestEventPerformance.test_event_create_single_notype_website,-:TestInventory.test_cyclic_inventory,-:TestUi.test_04_mass_mailing_snippets_menu_hide,-:WebSuite.test_check_suite,-:TestResConfigSettings.test_set_default_analytic_plan,-:TestWebsiteSaleDeliveryExpressCheckoutFlows.test_express_checkout_registered_user_with_shipping_option_new_address,-:TestBatchPicking02.test_backorder_batching_2,-:.test_account_line_entry_kit_bom_dropship,-:TestPosMargin.test_avco_margin_closing_time,-:TestAccountMoveOutInvoiceOnchanges.test_before_initial_rate,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_have_bank_default,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_have_bank_default_no_rate,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_no_have_bank_default,-:TestWebEditorController.test_modify_image,-:TestPurchaseOrder.test_foreign_bill_autocomplete_with_payment_term,-:TestImLivechatMessage.test_feedback_message,-:TestImLivechatMessage.test_message_to_store,-:TestChannelInternals.test_channel_members,-:TestDiscussFullPerformance.test_30_discuss_channels,-:TestPurchaseOrder.test_foreign_bill_tax_included,-:TestMessageToStorePerformance.test_message_to_store_multi_followers_inbox,-:TestDiscussFullPerformance.test_10_init_store_data,-:TestGetDiscussChannel.test_channel_get_livechat_visitor_info,-:TestReportsRendering.test_report_specific_paperformat_args,-:.test_partial_billing_interaction_with_invoicing_switch_threshold,-:.test_partial_invoicing_interaction_with_invoicing_switch_threshold,-:.test_invoice_with_already_invoiced_timesheets
Create Date Level Message
05/02/2026 01:25:20 INFO
Using Docker Image Odoo 17 Ubuntu 22.04 Python 3.10:

FROM ubuntu:jammy

ENV LANG C.UTF-8

USER root

SHELL ["/bin/bash", "-c"]

# Install debian packages
RUN set -x ; \
apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends apt-transport-https build-essential ca-certificates curl ffmpeg file fonts-freefont-ttf fonts-noto-cjk gawk gnupg gsfonts libldap2-dev libjpeg9-dev libsasl2-dev libxslt1-dev lsb-release node-less ocrmypdf sed sudo unzip xfonts-75dpi zip zlib1g-dev git build-essential cython3 libffi-dev libev-dev \
&& rm -rf /var/lib/apt/lists/*

# Install Python3 packages
RUN set -x ; \
apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends python3 python3-dbfread python3-dev python3-pip python3-setuptools python3-wheel python3-markdown python3-mock python3-phonenumbers python3-websocket python3-cffi libpq-dev \
&& rm -rf /var/lib/apt/lists/*

# Install wkhtml
RUN curl -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb -o /tmp/wkhtmltox_0.12.6-1.focal_amd64.deb \
&& curl -sSL http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.0g-2ubuntu4_amd64.deb -o /tmp/libssl1.1_1.1.0g-2ubuntu4_amd64.deb \
&& apt-get update \
&& dpkg -i /tmp/libssl1.1_1.1.0g-2ubuntu4_amd64.deb \
&& apt install -y -f --no-install-recommends /tmp/wkhtmltox_0.12.6-1.focal_amd64.deb \
&& rm /tmp/libssl1.1_1.1.0g-2ubuntu4_amd64.deb /tmp/wkhtmltox_0.12.6-1.focal_amd64.deb

# Install Odoo:Depends
ADD https://raw.githubusercontent.com/brendangregg/FlameGraph/master/flamegraph.pl /usr/local/bin/flamegraph.pl
RUN chmod +rx /usr/local/bin/flamegraph.pl
ADD https://raw.githubusercontent.com/Viindoo/odoo/17.0/debian/control /tmp/control.txt
RUN apt-get update \
&& sed -n '/^Depends:/,/^[A-Z]/p' /tmp/control.txt \
| awk '/^ [a-z]/ { gsub(/,/,"") ; print $1 }' | sort -u \
| egrep -v 'postgresql-client' \
| sed 's/python-imaging/python-pil/'| sed 's/python-pypdf/python-pypdf2/' | sed 's/python3-lxml-html-clean/python3-lxml/' \
| DEBIAN_FRONTEND=noninteractive xargs apt-get install -y -qq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --no-cache-dir setuptools wheel && \
python3 -m pip install coverage==7.4.4 flamegraph

RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y postgresql-client-14 \
&& rm -rf /var/lib/apt/lists/*

# Install Google Chrome
#RUN curl -sSL https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb -o /tmp/chrome.deb \
# && apt-get update \
# && apt-get -y install --no-install-recommends /tmp/chrome.deb \
# && rm /tmp/chrome.deb

# Install phantomjs
RUN curl -sSL https://nightly.odoo.com/resources/phantomjs.tar.bz2 -o /tmp/phantomjs.tar.bz2 \
&& tar xvfO /tmp/phantomjs.tar.bz2 phantomjs-2.1.1-linux-x86_64/bin/phantomjs > /usr/local/bin/phantomjs \
&& chmod +x /usr/local/bin/phantomjs \
&& rm -f /tmp/phantomjs.tar.bz2

ADD https://raw.githubusercontent.com/Viindoo/odoo/17.0/requirements.txt /root/requirements.txt
RUN python3 -m pip install --no-cache-dir wheel setuptools && \
python3 -m pip install --upgrade --no-cache-dir -r /root/requirements.txt && \
python3 -m pip install --no-cache-dir ebaysdk==2.1.5 pdf417gen==0.7.1

RUN python3 -m pip install --no-cache-dir requests pyOpenSSL

# Install debian packages
RUN set -x ; \
apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends openssl iputils-ping openssh-client chromium-browser \
&& rm -rf /var/lib/apt/lists/*

RUN python3 -m pip install --no-cache-dir --upgrade websocket-client==1.2.3 flake8==4.0.1
RUN python3 -m pip uninstall pylint pylint-odoo isort Pygments -y
RUN python3 -m pip install --no-cache-dir --upgrade pylint-odoo==9.0.5
RUN python3 -m pip install --no-cache-dir --upgrade Pygments==2.14.0 --no-deps
RUN python3 -m pip install --no-cache-dir --upgrade odoo_test_helper

# Install nodejs
RUN curl -fsSLO --compressed "https://nodejs.org/dist/v18.20.0/node-v18.20.0-linux-x64.tar.xz" \
&& tar -xJf "node-v18.20.0-linux-x64.tar.xz" -C /usr/local --strip-components=1 --no-same-owner \
&& rm "node-v18.20.0-linux-x64.tar.xz" \
&& ln -s /usr/local/bin/node /usr/local/bin/nodejs
#RUN npm install -g rtlcss es-check eslint@8
RUN python3 -m pip install --no-cache-dir --upgrade setuptools==61 # để tương thích với python-pkcs11-0.7.0

# Install cloc package
RUN set -x ; \
apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends cloc \
&& rm -rf /var/lib/apt/lists/*

RUN npm install -g rtlcss@3.4.0 es-check@6.0.0 eslint@8.57.1 prettier@2.7.1 eslint-config-prettier@8.5.0 eslint-plugin-prettier@4.2.1 --save-dev
05/02/2026 02:30:28 INFO
Docker command:
cd /data/build; python3 -m pip install --user --progress-bar off -r Viindoo-tvtmaaddons-17.0/requirements.txt && python3 -m pip install --user --progress-bar off -r Viindoo-erponline-enterprise-17.0/requirements.txt && python3 Viindoo-odoo-17.0/odoo-bin --addons-path Viindoo-odoo-17.0/odoo/addons,Viindoo-odoo-17.0/addons,Viindoo-tvtmaaddons-17.0,Viindoo-erponline-enterprise-17.0,Viindoo-branding-17.0,rb-bfce74a-221677 -d rb-bfce74a-221677-381270 --data-dir /data/build/datadir --db_port 5432 --log-level=test --max-cron-threads=0 --http-interface=127.0.0.1 --load=base,web,to_base --stop-after-init --test-enable --test-tags=/to_website_apps_store_loc,/to_website_base,/to_website_docs,/to_website_docs_odoo,/to_website_docs_odoo_data,/to_website_odoo_version,/to_website_slides_event,/transifex,/uom,/utm,/viin_account,/viin_account_auto_transfer,/viin_account_bank_statement_import,/viin_account_bank_statement_import_rje,/viin_account_budget_project,/viin_account_counterpart_reconciliation,/viin_account_followup,/viin_account_followup_sale,/viin_account_onbehalf_payment,/viin_account_reconciliation,/viin_account_recurring,/viin_administrative_region,/viin_affiliate,/viin_affiliate_crm,/viin_affiliate_loyalty,/viin_affiliate_loyalty_pos,/viin_affiliate_loyalty_sale,/viin_affiliate_multi_level,/viin_affiliate_multi_level_sale,/viin_affiliate_pos,/viin_affiliate_pos_discount,/viin_affiliate_pos_sale,/viin_affiliate_sale,/viin_affiliate_sale_crm,/viin_affiliate_website,/viin_affiliate_website_crm_livechat,/viin_affiliate_website_project,/viin_affilitate_purchase,/viin_ai,/viin_ai_agent,/viin_ai_base,/viin_ai_brain,/viin_ai_chat,/viin_ai_rag,/viin_ai_search,/viin_amazon,/viin_amazon_ses,/viin_api_request_logger,/viin_appointment,/viin_appointment_crm,/viin_appointment_sale,/viin_appointment_sale_crm,/viin_appointment_website,/viin_appointment_website_hr,/viin_approval,/viin_approval_account,/viin_approval_analytic,/viin_approval_flexible_flow,/viin_approval_hr_contract,/viin_approval_mrp,/viin_approval_project,/viin_approval_purchase,/viin_approval_purchase_stock,/viin_approval_purpose_routing,/viin_approval_sale,/viin_approval_sale_project,/viin_approval_stock,/viin_auto_currency_rate,/viin_auto_currency_rate_acb,/viin_auto_currency_rate_bidv,/viin_auto_currency_rate_vcb,/viin_auto_currency_rate_xe,/viin_bank_connector,/viin_base_addendum,/viin_base_district,/viin_base_import_tracking,/viin_base_state_group,/viin_base_ward,/viin_bidv_connector,/viin_brain,/viin_brain_account_reports,/viin_brain_crm,/viin_brain_hr,/viin_brain_project,/viin_brain_sale_management,/viin_brand,/viin_brand_account,/viin_brand_auth_oauth,/viin_brand_auth_totp,/viin_brand_auth_totp_mail_enforce,/viin_brand_auth_totp_portal,/viin_brand_base_import,/viin_brand_base_setup,/viin_brand_calendar,/viin_brand_common,/viin_brand_contacts,/viin_brand_crm,/viin_brand_digest,/viin_brand_fleet,/viin_brand_hr,/viin_brand_hr_expense,/viin_brand_hr_recruitment,/viin_brand_hr_skills,/viin_brand_im_livechat,/viin_brand_im_livechat_mail_bot,/viin_brand_l10n_vn,/viin_brand_mail,/viin_brand_mail_bot,/viin_brand_mail_plugin,/viin_brand_mass_mailing,/viin_brand_mass_mailing_crm,/viin_brand_mass_mailing_sale,/viin_brand_mass_mailing_sms,/viin_brand_mass_mailing_themes,/viin_brand_membership,/viin_brand_mrp,/viin_brand_onboarding,/viin_brand_payment,/viin_brand_payment_paypal,/viin_brand_portal,/viin_brand_pos,/viin_brand_pos_mercury,/viin_brand_product,/viin_brand_purchase,/viin_brand_sale,/viin_brand_sale_management,/viin_brand_sale_pdf_quote_builder,/viin_brand_snailmail,/viin_brand_social_media,/viin_brand_stock,/viin_brand_web,/viin_brand_web_editor,/viin_brand_web_unsplash,/viin_brand_website,/viin_brand_website_event,/viin_brand_website_event_exhibitor,/viin_brand_website_forum,/viin_brand_website_jitsi,/viin_brand_website_links,/viin_brand_website_profile,/viin_brand_website_sale,/viin_brand_website_slides,/viin_built_in_help,/viin_check_company_discrepancy,/viin_coach_approvals,/viin_contacts_district,/viin_contacts_ethnicity_religion,/viin_contacts_map,/viin_contacts_ward,/viin_country_target_market,/viin_crm,/viin_crm_business_nature,/viin_crm_business_nature_isic,/viin_crm_business_nature_patch1,/viin_crm_customer_recognition,/viin_crm_dob,/viin_crm_sankey,/viin_customizer,/viin_customizer_web_responsive,/viin_discuss_channel_privacy,/viin_document,/viin_document_account,/viin_document_freight,/viin_document_freight_air,/viin_document_freight_consol,/viin_document_hr,/viin_document_hr_contract,/viin_document_hr_payroll,/viin_document_hr_recruitment,/viin_document_mrp,/viin_document_parsing,/viin_document_project,/viin_document_purchase,/viin_document_sale,/viin_document_stock,/viin_duns,/viin_employee_map,/viin_equipment_warranty_partner_infor,/viin_estimate,/viin_estimate_approval,/viin_estimate_budget,/viin_estimate_hr,/viin_estimate_project,/viin_estimate_purchase,/viin_estimate_sale,-at_install,-.test_so_and_multicurrency,-:TestUi.test_02_crm_tour_rainbowman,-.test_assign_perf_duplicates,-/l10n_it_edi_sdicoop,-:TestExamples.test_with_car_with_atn_with_car,-:TestExamples.test_with_car_with_atn_with_child,-/project_enterprise.test_01_ui,-.test_generate_fec_sanitize_pieceref,-:TestEventPerformance.test_event_create_single_notype_website,-:TestInventory.test_cyclic_inventory,-:TestUi.test_04_mass_mailing_snippets_menu_hide,-:WebSuite.test_check_suite,-:TestResConfigSettings.test_set_default_analytic_plan,-:TestWebsiteSaleDeliveryExpressCheckoutFlows.test_express_checkout_registered_user_with_shipping_option_new_address,-:TestBatchPicking02.test_backorder_batching_2,-:.test_account_line_entry_kit_bom_dropship,-:TestPosMargin.test_avco_margin_closing_time,-:TestAccountMoveOutInvoiceOnchanges.test_before_initial_rate,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_have_bank_default,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_have_bank_default_no_rate,-:TestCurrencyRatePurchaseStock.test_supply_po_rate_no_have_bank_default,-:TestWebEditorController.test_modify_image,-:TestPurchaseOrder.test_foreign_bill_autocomplete_with_payment_term,-:TestImLivechatMessage.test_feedback_message,-:TestImLivechatMessage.test_message_to_store,-:TestChannelInternals.test_channel_members,-:TestDiscussFullPerformance.test_30_discuss_channels,-:TestPurchaseOrder.test_foreign_bill_tax_included,-:TestMessageToStorePerformance.test_message_to_store_multi_followers_inbox,-:TestDiscussFullPerformance.test_10_init_store_data,-:TestGetDiscussChannel.test_channel_get_livechat_visitor_info,-:TestReportsRendering.test_report_specific_paperformat_args,-:.test_partial_billing_interaction_with_invoicing_switch_threshold,-:.test_partial_invoicing_interaction_with_invoicing_switch_threshold,-:.test_invoice_with_already_invoiced_timesheets ;
05/02/2026 02:30:28 INFO
Restoring from: rb-bfce74a-221677-381266
05/02/2026 02:30:28 INFO
Container rb-bfce74a-221677-381270 started !
05/02/2026 03:55:29 INFO
Container rb-bfce74a-221677-381270 stopped !
05/02/2026 03:55:29 ERROR
ERROR: duplicate key value violates unique constraint "viin_ai_tool_viin_ai_tool_technical_name_unique"
05/02/2026 03:55:29 ERROR
odoo.sql_db: bad query: INSERT INTO "viin_ai_tool" ("action_id", "active", "create_date", "create_uid", "description", "name", "parameters_schema", "requires_confirmation", "runs_as_sudo", "sequence", "technical_name", "write_date", "write_uid") VALUES (2076, true, '2026-05-01 20:27:44.175495', 1, 'B', 'Tool alpha duplicate', '{}', false, false, 10, 'alpha', '2026-05-01 20:27:44.175495', 1) RETURNING "id" DETAIL: Key (technical_name)=(alpha) already exists.
05/02/2026 03:55:29 WARNING
odoo.addons.viin_ai_agent.models.ir_actions_server: viin_ai_agent: server action WI17 No Model (ai_prompt) missing required fields (ai_model_id, ai_prompt, or ai_target_field_id) — skipping.
05/02/2026 03:55:29 WARNING
odoo.addons.viin_ai_agent.models.ir_actions_server: viin_ai_agent: server action WI17 No Prompt (ai_prompt) missing required fields (ai_model_id, ai_prompt, or ai_target_field_id) — skipping.
05/02/2026 03:55:29 ERROR
odoo.addons.viin_ai_base.tests.test_feedback_export_dataset: FAIL: TestFeedbackExportDataset.test_export_empty_db_creates_empty_attachment Traceback (most recent call last): File "/data/build/rb-bfce74a-221677/viin_ai_base/tests/test_feedback_export_dataset.py", line 55, in test_export_empty_db_creates_empty_attachment self.assertEqual(att.raw, b'', 'body must be empty when no rows') AssertionError: False != b'' : body must be empty when no rows
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=29 (embedding_service) mapped to vendor_openai as default. Admin should verify and correct vendor_id.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=31 (custom, base_url=https://my-private-proxy.internal/api) could not be matched. Mapped to vendor_openai as fallback. Admin must review.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=1 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=2 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=3 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=4 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=5 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=6 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=7 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=8 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=9 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=10 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=11 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=12 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=13 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
post_migrate: viin_ai_base post-migrate: provider id=14 has unknown provider_type=None. Mapped to vendor_openai as fallback.
05/02/2026 03:55:29 WARNING
odoo.http: model_name is required and must be a string.
05/02/2026 03:55:29 WARNING
odoo.http: Unknown model: nonexistent.model.xyz
05/02/2026 03:55:29 ERROR
odoo.tests.result: 1 failed, 0 error(s) of 1734 tests when loading database 'rb-bfce74a-221677-381270'
05/02/2026 03:55:29 INFO
Cleaning all resource
05/02/2026 03:55:29 INFO
Cleanup finished