Name: [19.0][UPG] viin_brand_*: upgrade to 19 - Post install tests: from hr_skills to pos_pine_labs

State: Failed finished in 65m

PR State: open

PR Author: Trần Trường Sơn

PR Author Email:

PR: #633

Committer: SonCrits

Committer Email: truongson290893@gmail.com

Commit: 025d901fb3ccf4f5e90c882c069bf0ceaeda127c

Description:

                                [IMP] viin_brand_*: debrand Odoo in mail.template email content

Restore email template debranding that was dropped since 17.0.
mail.template body_html (type="html", stored as jsonb) cannot be
xpath'd like QWeb <template> views, so two mechanisms are used:

- _register_hook: raw SQL REPLACE on jsonb::text after all modules
  loaded, fixing stored body_html for the backend form view
- _render_field override: runtime string replacement when rendering
  emails, as a safety net for Reset Template or new templates

Also add QWeb xpath override for website_slides channel invite
template (which IS a <template> view, not a mail.template record).

Simplify mail_template_terms in apriori.py: replace fragile
Markup-based exact HTML matching with generic plain string patterns.
                                

Branch: 19.0

Instance ID: 0

Age:

Up-time:

Odoo 19 Test Suite Using Docker

Post install tests: from hr_skills to pos_pine_labs

  • install_module account,account_add_gln,account_check_printing,account_debit_note,account_edi,account_edi_proxy_client,account_edi_ubl_cii,account_fleet,account_payment,account_peppol,account_peppol_advanced_fields,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_iban,base_import,base_import_module,base_install_request,base_setup,base_sparse_field,base_vat,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_sms,data_recycle,delivery,delivery_mondialrelay,delivery_stock_picking_batch,digest,event,event_booth,event_booth_sale,event_crm,event_crm_sale,event_product,event_sale,event_sms,fleet,gamification,gamification_sale_crm,google_account,google_address_autocomplete,google_calendar,google_gmail,google_recaptcha,hr,hr_attendance,hr_calendar,hr_expense,hr_fleet,hr_gamification,hr_holidays,hr_holidays_attendance,hr_holidays_homeworking,hr_homeworking,hr_homeworking_calendar,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_event,hr_skills_slides,hr_skills_survey,hr_timesheet,hr_timesheet_attendance,hr_work_entry,hr_work_entry_holidays,html_builder,html_editor,http_routing,iap,iap_crm,iap_mail,im_livechat,iot_base,l10n_vn_edi_viettel,link_tracker,loyalty,lunch,mail,mail_bot,mail_bot_hr,mail_group,mail_plugin,maintenance,marketing_card,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_landed_costs,mrp_product_expiry,mrp_repair,mrp_subcontracting,mrp_subcontracting_account,mrp_subcontracting_dropshipping,mrp_subcontracting_landed_costs,mrp_subcontracting_purchase,mrp_subcontracting_repair,onboarding,partner_autocomplete,partnership,payment,payment_adyen,payment_aps,payment_asiapay,payment_authorize,payment_buckaroo,payment_custom,payment_demo,payment_dpo,payment_flutterwave,payment_iyzico,payment_mercado_pago,payment_mollie,payment_nuvei,payment_paymob,payment_paypal,payment_razorpay,payment_redsys,payment_stripe,payment_toss_payments,payment_worldline,payment_xendit,phone_validation,point_of_sale,portal,portal_rating,pos_account_tax_python,pos_adyen,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_pine_labs,pos_qfpay,pos_razorpay,pos_repair,pos_restaurant,pos_restaurant_adyen,pos_restaurant_loyalty,pos_restaurant_stripe,pos_safaricom,pos_sale,pos_sale_loyalty,pos_sale_margin,pos_self_order,pos_self_order_adyen,pos_self_order_pine_labs,pos_self_order_qfpay,pos_self_order_razorpay,pos_self_order_sale,pos_self_order_stripe,pos_sms,pos_stripe,pos_viva_com,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_edi_ubl_bis3,purchase_mrp,purchase_product_matrix,purchase_repair,purchase_requisition,purchase_requisition_sale,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_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_picking_batch,stock_sms,survey,survey_crm,test_access_rights,test_action_bindings,test_assetsbundle,test_auth_custom,test_base_automation,test_convert,test_converter,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,test_inherits_depends,test_lint,test_mail,test_mail_full,test_mail_sms,test_main_flows,test_mass_mailing,test_mimetypes,test_orm,test_read_group,test_resource,test_rpc,test_sale_product_configurators,test_sale_purchase_edi_ubl,test_search_panel,test_spreadsheet,test_testing_utilities,test_translation_import,test_uninstall,test_website,test_website_modules,test_website_slides_full,theme_default,to_attendance_device,to_base,to_config_management,to_equipment_maintenance_schedule,to_equipment_woking_frequency,to_git,to_git_odoo_version,to_hr_employee_grade,to_maintenance_by_working_hours,to_maintenance_notification,to_maintenance_request_simple_mediate,to_odoo_module,to_odoo_module_sale,to_odoo_version,to_okr,to_okr_project,to_product_collection,to_product_license,to_product_license_sale,to_product_maintenance_schedule,to_product_milestone,to_product_odoo_version,to_sshkey,to_stock_equipment,to_token_expiration,to_website_apps_store,transifex,uom,utm,viin_brand,viin_brand_account,viin_brand_auth_oauth,viin_brand_auth_totp,viin_brand_auth_totp_mail,viin_brand_auth_totp_portal,viin_brand_base_import,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_skills,viin_brand_im_livechat,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_mrp,viin_brand_onboarding,viin_brand_payment,viin_brand_payment_paypal,viin_brand_portal,viin_brand_pos,viin_brand_product,viin_brand_purchase,viin_brand_sale,viin_brand_sale_management,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_links,viin_brand_website_profile,viin_brand_website_sale,viin_brand_website_slides,viin_hr,viin_hr_maintenance,viin_maintenance,viin_maintenance_preventive_mode,web,web_hierarchy,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_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_sms,website_partner,website_payment,website_profile,website_project,website_sale,website_sale_autocomplete,website_sale_collect,website_sale_collect_wishlist,website_sale_comparison,website_sale_comparison_wishlist,website_sale_gelato,website_sale_loyalty,website_sale_mass_mailing,website_sale_mondialrelay,website_sale_mrp,website_sale_slides,website_sale_stock,website_sale_stock_wishlist,website_sale_wishlist,website_slides,website_slides_forum,website_slides_survey,website_sms,website_timesheet
  • 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=/hr_skills,/hr_skills_event,/hr_skills_slides,/hr_skills_survey,/hr_timesheet,/hr_timesheet_attendance,/hr_work_entry,/hr_work_entry_holidays,/html_builder,/html_editor,/http_routing,/iap,/iap_crm,/iap_mail,/im_livechat,/iot_base,/l10n_vn_edi_viettel,/link_tracker,/loyalty,/lunch,/mail,/mail_bot,/mail_bot_hr,/mail_group,/mail_plugin,/maintenance,/marketing_card,/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_landed_costs,/mrp_product_expiry,/mrp_repair,/mrp_subcontracting,/mrp_subcontracting_account,/mrp_subcontracting_dropshipping,/mrp_subcontracting_landed_costs,/mrp_subcontracting_purchase,/mrp_subcontracting_repair,/onboarding,/partner_autocomplete,/partnership,/payment,/payment_adyen,/payment_aps,/payment_asiapay,/payment_authorize,/payment_buckaroo,/payment_custom,/payment_demo,/payment_dpo,/payment_flutterwave,/payment_iyzico,/payment_mercado_pago,/payment_mollie,/payment_nuvei,/payment_paymob,/payment_paypal,/payment_razorpay,/payment_redsys,/payment_stripe,/payment_toss_payments,/payment_worldline,/payment_xendit,/phone_validation,/point_of_sale,/portal,/portal_rating,/pos_account_tax_python,/pos_adyen,/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_pine_labs,-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
Create Date Level Message
04/10/2026 11:35:05 INFO
Using Docker Image Odoo 19 Ubuntu 24.04 Python 3.12:

FROM ubuntu:noble

ENV LANG C.UTF-8

# Retrieve the target architecture to install the correct wkhtmltopdf package
ARG TARGETARCH

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 file fonts-freefont-ttf fonts-noto-cjk gawk gnupg gsfonts libldap2-dev libjpeg9-dev libsasl2-dev libxslt1-dev lsb-release npm ocrmypdf sed sudo unzip xfonts-75dpi zip zlib1g-dev software-properties-common git \
&& 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 publicsuffix python3 flake8 python3-dbfread python3-dev python3-gevent python3-pip python3-setuptools python3-wheel python3-markdown python3-mock python3-phonenumbers python3-websocket python3-google-auth libpq-dev pylint python3-jwt python3-asn1crypto python3-html2text python3-suds python3-xmlsec \
&& rm -rf /var/lib/apt/lists/*

# Install wkhtml
RUN curl -o xfonts-base.deb http://archive.ubuntu.com/ubuntu/pool/main/x/xfonts-base/xfonts-base_1.0.5+nmu1_all.deb && dpkg -i xfonts-base.deb
RUN curl -o wkhtmltox.deb -sSL https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb \
&& apt-get install -y --no-install-recommends ./wkhtmltox.deb \
&& rm -rf /var/lib/apt/lists/* wkhtmltox.deb xfonts-base.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/19.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 --break-system-packages --no-cache-dir setuptools wheel && \
python3 -m pip install --break-system-packages coverage==7.4.4 flamegraph

# install latest postgresql-client
RUN echo 'deb http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main' > /etc/apt/sources.list.d/pgdg.list \
&& GNUPGHOME="$(mktemp -d)" \
&& export GNUPGHOME \
&& repokey='B97B0AFCAA1A47F044F244A07FCC7D46ACCC4CF8' \
&& gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "${repokey}" \
&& gpg --batch --armor --export "${repokey}" > /etc/apt/trusted.gpg.d/pgdg.gpg.asc \
&& gpgconf --kill all \
&& rm -rf "$GNUPGHOME" \
&& apt-get update \
&& apt-get install --no-install-recommends -y postgresql-client \
&& rm -f /etc/apt/sources.list.d/pgdg.list \
&& 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

ENV PIP_BREAK_SYSTEM_PACKAGES=1

ADD https://raw.githubusercontent.com/Viindoo/odoo/19.0/requirements.txt /root/requirements.txt
RUN python3 -m pip install --break-system-packages --no-cache-dir setuptools wheel && \
python3 -m pip install --break-system-packages --upgrade --force-reinstall --ignore-installed --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 --break-system-packages --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==6.1.0
#RUN python3 -m pip uninstall pylint pylint-odoo isort Pygments -y
RUN python3 -m pip install --break-system-packages --upgrade --force-reinstall --ignore-installed --no-cache-dir --upgrade pylint-odoo==9.0.5
RUN python3 -m pip install --break-system-packages --upgrade --force-reinstall --ignore-installed --no-cache-dir --upgrade Pygments==2.14.0 --no-deps

# 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@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
# Tránh warning do bug của ubuntu
RUN rm -rf /usr/lib/python3.12/dist-packages/charset_normalizer-3.3.2.dist-info

# 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 python3 -m pip install --no-cache-dir --upgrade google-auth==2.36.0
RUN python3 -m pip install --no-cache --use-pep517 python-pkcs11~=0.7.0
04/10/2026 12:05:06 INFO
Docker command:
cd /data/build; python3 -m pip install --user --progress-bar off -r Viindoo-tvtmaaddons-19.0/requirements.txt && python3 Viindoo-odoo-19.0/odoo-bin --addons-path Viindoo-odoo-19.0/odoo/addons,Viindoo-odoo-19.0/addons,Viindoo-tvtmaaddons-19.0,rb-025d901-221419 -d rb-025d901-221419-378929 --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=/hr_skills,/hr_skills_event,/hr_skills_slides,/hr_skills_survey,/hr_timesheet,/hr_timesheet_attendance,/hr_work_entry,/hr_work_entry_holidays,/html_builder,/html_editor,/http_routing,/iap,/iap_crm,/iap_mail,/im_livechat,/iot_base,/l10n_vn_edi_viettel,/link_tracker,/loyalty,/lunch,/mail,/mail_bot,/mail_bot_hr,/mail_group,/mail_plugin,/maintenance,/marketing_card,/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_landed_costs,/mrp_product_expiry,/mrp_repair,/mrp_subcontracting,/mrp_subcontracting_account,/mrp_subcontracting_dropshipping,/mrp_subcontracting_landed_costs,/mrp_subcontracting_purchase,/mrp_subcontracting_repair,/onboarding,/partner_autocomplete,/partnership,/payment,/payment_adyen,/payment_aps,/payment_asiapay,/payment_authorize,/payment_buckaroo,/payment_custom,/payment_demo,/payment_dpo,/payment_flutterwave,/payment_iyzico,/payment_mercado_pago,/payment_mollie,/payment_nuvei,/payment_paymob,/payment_paypal,/payment_razorpay,/payment_redsys,/payment_stripe,/payment_toss_payments,/payment_worldline,/payment_xendit,/phone_validation,/point_of_sale,/portal,/portal_rating,/pos_account_tax_python,/pos_adyen,/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_pine_labs,-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 ;
04/10/2026 12:05:06 INFO
Restoring from: rb-025d901-221419-378927
04/10/2026 12:05:06 INFO
Container rb-025d901-221419-378929 started !
04/10/2026 13:10:49 INFO
Container rb-025d901-221419-378929 stopped !
04/10/2026 13:10:49 ERROR
odoo.addons.im_livechat.tests.test_message: FAIL: Subtest TestImLivechatMessage.test_feedback_message (login='portal_test') Traceback (most recent call last): File "/data/build/Viindoo-odoo-19.0/odoo/tests/common.py", line 2628, in with_users func(self, *args, **kwargs) File "/usr/local/lib/python3.12/dist-packages/freezegun/api.py", line 789, in wrapper result = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/data/build/Viindoo-odoo-19.0/addons/im_livechat/tests/test_message.py", line 347, in test_feedback_message with self.assertBus(get_params=_get_feedback_bus): File "/usr/lib/python3.12/contextlib.py", line 144, in __exit__ next(self.gen) File "/data/build/Viindoo-odoo-19.0/addons/mail/tests/common.py", line 1398, in assertBus found_bus_notifs = self.assertBusNotifications(channels, message_items=message_items) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/build/Viindoo-odoo-19.0/addons/mail/tests/common.py", line 1727, in assertBusNotifications self.assertEqual(expected, json.loads(matching_notifs[0].message)) AssertionError: {'typ[1097 chars]': '/mail/static/description/icon.png', 'ratin[501 chars]123}} != {'typ[1097 chars]': '/viin_brand/static/img/apps/mail.png', 'ra[504 chars]123}} {'payload': {'data': {'mail.message': [{'attachment_ids': [], 'author_guest_id': False, 'author_id': 263, 'body': ['markup', '<div ' 'class="o_mail_notification ' 'o_hide_author">Rating: <img ' 'class="o_livechat_emoji_rating" ' 'src="/rating/static/src/img/rating_5.png" ' 'alt="rating"><br>\n' 'Good service</div>'], 'create_date': '2020-03-22 10:42:06', 'date': '2020-03-22 10:42:06', 'default_subject': 'Chell Gladys ' 'Ernest Employee', 'id': 2268, 'incoming_email_cc': False, 'incoming_email_to': False, 'message_link_preview_ids': [], 'message_type': 'notification', 'model': 'discuss.channel', 'parent_id': False, 'partner_ids': [], 'pinned_at': False, 'rating_id': 5, 'reactions': [], 'record_name': 'Chell Gladys Ernest ' 'Employee', 'res_id': 123, 'scheduledDatetime': False, 'subject': False, 'subtype_id': 1, 'thread': {'id': 123, 'model': 'discuss.channel'}, 'write_date': '2020-03-22 10:42:06'}], 'mail.message.subtype': [{'description': False, 'id': 1}], 'mail.thread': [{'display_name': 'Chell Gladys Ernest ' 'Employee', 'id': 123, 'model': 'discuss.channel', - 'module_icon': '/mail/static/description/icon.png', ? ^ ^^ ^^ ^^ ^^^^^^^^^^ + 'module_icon': '/viin_brand/static/img/apps/mail.png', ? ^^^^^^^ ^^ ^^^^^^^ ^^^ ^ 'rating_avg': 5.0, 'rating_count': 1}], 'rating.rating': [{'id': 5, 'rating': 5.0, 'rating_image_url': '/rating/static/src/img/rating_5.png', 'rating_text': 'top'}], 'res.partner': [{'avatar_128_access_token': 'a39da4a2f5f2a930df379077db5b9efb0c668dc4bcb4a6f9807fa1d3dd370896o0x5ea4ee0b', 'id': 263, 'is_company': False, 'main_user_id': 160, 'name': 'Chell Gladys', 'user_livechat_username': False, 'write_date': '2026-04-10 05:09:27'}], 'res.users': [{'id': 160, 'partner_id': 263, 'share': True}]}, 'id': 123}, 'type': 'discuss.channel/new_message'}
04/10/2026 13:10:49 ERROR
odoo.addons.im_livechat.tests.test_message: FAIL: Subtest TestImLivechatMessage.test_message_to_store (login='emp') Traceback (most recent call last): File "/data/build/Viindoo-odoo-19.0/odoo/tests/common.py", line 2628, in with_users func(self, *args, **kwargs) File "/data/build/Viindoo-odoo-19.0/addons/im_livechat/tests/test_message.py", line 151, in test_message_to_store self.assertEqual( AssertionError: {'mai[94 chars]up', '<span><img src="/rating/static/src/img/r[1491 chars]se}]} != {'mai[94 chars]up', Markup('<span><img src="/rating/static/sr[1496 chars]se}]} {'mail.message': [{'attachment_ids': [], 'author_guest_id': False, 'author_id': 269, 'body': ['markup', + Markup('<span><img src="/rating/static/src/img/rating_5.png" alt=":5.0/5" style="width:18px; height:18px; float:left; margin-right:5px">False</span>')], - '<span><img ' - 'src="/rating/static/src/img/rating_5.png" ' - 'alt=":5.0/5" style="width:18px; height:18px; ' - 'float:left; margin-right:5px">False</span>'], 'create_date': '2026-04-10 05:09:27', 'date': '2026-04-10 05:09:51', 'default_subject': 'test1 Ernest Employee', 'email_from': '"test1" <test1@example.com>', 'id': 2280, 'incoming_email_cc': False, 'incoming_email_to': False, 'message_link_preview_ids': [], 'message_type': 'notification', 'model': 'discuss.channel', 'needaction': False, 'notification_ids': [], 'parent_id': False, 'partner_ids': [], 'pinned_at': False, 'rating_id': 6, 'reactions': [], 'record_name': 'test1 Ernest Employee', 'res_id': 124, 'scheduledDatetime': False, 'starred': False, 'subject': False, 'subtype_id': 2, 'thread': {'id': 124, 'model': 'discuss.channel'}, 'trackingValues': [], 'write_date': '2026-04-10 05:09:27'}], 'mail.message.subtype': [{'description': False, 'id': 2}], 'mail.thread': [{'display_name': 'test1 Ernest Employee', 'id': 124, 'model': 'discuss.channel', - 'module_icon': '/viin_brand/static/img/apps/mail.png', ? ^ ^^^^^^^^ ^^ ------- ^ + 'module_icon': '/mail/static/description/icon.png', ? ^^ ^ +++++ ^^^^^ ^^^ 'rating_avg': 5.0, 'rating_count': 1}], 'rating.rating': [{'id': 6, 'rating': 5.0, 'rating_image_url': '/rating/static/src/img/rating_5.png', 'rating_text': 'top'}], 'res.partner': [{'avatar_128_access_token': '76483a6b4c49c491e46163386281332068c078fd01a9e5aeb16c3ab87aead3ebo0x6a092af7', 'id': 269, 'is_company': False, 'main_user_id': 166, 'user_livechat_username': 'chuck', 'write_date': '2026-04-10 05:09:27'}], 'res.users': [{'id': 166, 'partner_id': 269, 'share': False}]}
04/10/2026 13:10:49 ERROR
odoo.addons.mail.tests.discuss.test_discuss_channel: FAIL: Subtest TestChannelInternals.test_channel_members (login='employee') Traceback (most recent call last): File "/data/build/Viindoo-odoo-19.0/odoo/tests/common.py", line 2628, in with_users func(self, *args, **kwargs) File "/usr/local/lib/python3.12/dist-packages/freezegun/api.py", line 789, in wrapper result = func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/data/build/Viindoo-odoo-19.0/addons/mail/tests/discuss/test_discuss_channel.py", line 188, in test_channel_members with self.assertBus(get_params=get_add_member_bus): File "/usr/lib/python3.12/contextlib.py", line 144, in __exit__ next(self.gen) File "/data/build/Viindoo-odoo-19.0/addons/mail/tests/common.py", line 1398, in assertBus found_bus_notifs = self.assertBusNotifications(channels, message_items=message_items) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/data/build/Viindoo-odoo-19.0/addons/mail/tests/common.py", line 1727, in assertBusNotifications self.assertEqual(expected, json.loads(matching_notifs[0].message)) AssertionError: {'typ[99 chars]thor_id': 364, 'author_guest_id': False, 'body[1274 chars]158}} != {'typ[99 chars]thor_guest_id': False, 'author_id': 364, 'body[1277 chars]158}} {'payload': {'data': {'mail.message': [{'attachment_ids': [], 'author_guest_id': False, 'author_id': 364, 'body': ['markup', '<div ' 'class="o_mail_notification" ' 'data-oe-type="channel-joined">invited ' '<a href="#" ' 'data-oe-model="res.partner" ' 'data-oe-id="365">@Test ' 'Partner</a> to the ' 'channel</div>'], 'create_date': '2026-04-10 05:12:18', 'date': '2020-03-22 10:42:06', 'default_subject': 'Group', 'id': 2790, 'incoming_email_cc': False, 'incoming_email_to': False, 'message_link_preview_ids': [], 'message_type': 'notification', 'model': 'discuss.channel', 'parent_id': False, 'partner_ids': [], 'pinned_at': False, 'rating_id': False, 'reactions': [], 'record_name': 'Group', 'res_id': 158, 'scheduledDatetime': False, 'subject': False, 'subtype_id': 1, 'thread': {'id': 158, 'model': 'discuss.channel'}, 'write_date': '2026-04-10 05:12:18'}], 'mail.message.subtype': [{'description': False, 'id': 1}], 'mail.thread': [{'display_name': 'Group', 'id': 158, 'model': 'discuss.channel', - 'module_icon': '/mail/static/description/icon.png', ? ^ ^^ ^^ ^^ ^^^^^^^^^^ + 'module_icon': '/viin_brand/static/img/apps/mail.png', ? ^^^^^^^ ^^ ^^^^^^^ ^^^ ^ 'rating_avg': 0.0, 'rating_count': 0}], 'res.partner': [{'avatar_128_access_token': '49ec98aee6a96e66e40ca4a5d7cf85326713b9c71a73b9419ede91d71faec2d2o0x5ea4f07f', 'id': 364, 'is_company': False, 'main_user_id': 236, 'name': 'Ernest Employee', 'write_date': '2026-04-10 05:12:18'}], 'res.users': [{'id': 236, 'partner_id': 364, 'share': False}]}, 'id': 158}, 'type': 'discuss.channel/new_message'}
04/10/2026 13:10:49 ERROR
odoo.tests.result: 3 failed, 0 error(s) of 1603 tests when loading database 'rb-025d901-221419-378929'
04/10/2026 13:10:49 INFO
Cleaning all resource
04/10/2026 13:10:49 INFO
Cleanup finished