[FIX] test_website: make test_replace_media tour robust on slow runners
After an image is replaced by another image, the step "ensure image
size is displayed" was satisfied by the old Image options container,
which stays mounted until the builder re-targets the new media. The
next "Replace" click then acted on the detached element ("Invalid
selection. Node is not part of the editable: None") and the Icon
container never appeared. Runbot signature: "[18/36] Tour
test_replace_media -> Step ensure icon block is displayed".
The tour now marks the container of the media being replaced and waits
for an Image container without that mark. That is the container of the
new media, a new component since containers are keyed per element.
Verified by injecting latency on /html_editor/get_image_info (+1 s):
the tour passes 3/3 with the fix and fails at the same step with the
same warning when the fix is reverted.
Signed-off-by: David Tran <david.tran@tvtmarine.com>
| Subbuilds | Name | State | Detail |
|---|---|---|---|
| Build 427316 | At install tests: from account to website_timesheet 100m | Succeed | Log |
| Build 427317 | Post install tests: step install all modules 21m | Succeed | Log |
| Build 427318 | Post install tests: from account to hr_recruitment_survey 113m | Failed | Log |
| Build 427319 | Post install tests: from hr_skills to phone_validation 178m | Failed | Log |
| Build 427320 | Post install tests: from point_of_sale to purchase_requisition_stock 144m | Succeed | Log |
| Build 427321 | Post install tests: from purchase_stock to test_l10n_vn_viin_edi 109m | Succeed | Log |
| Build 427322 | Post install tests: from test_mail to to_product_return_reason_stock 133m | Succeed | Log |
| Build 427323 | Post install tests: from to_registration_email_blacklist to viin_approval_purpose_routing 98m | Succeed | Log |
| Build 427324 | Post install tests: from viin_approval_sale to viin_product 123m | Failed | Log |
| Build 427325 | Post install tests: from viin_project to web_unsplash 94m | Succeed | Log |
| Build 427326 | Post install tests: from website to website_timesheet 89m | Failed | Log |
| Create Date | Level | Message |
|---|---|---|
| 10/21/2026 09:00:41 PM | INFO |
Updated repository Viindoo-tvtmaaddons
|
| 10/21/2026 09:00:41 PM | INFO |
Updated repository Viindoo-erponline-enterprise
|
| 10/21/2026 09:00:41 PM | INFO |
Updated repository Viindoo-branding
|
| 10/21/2026 09:00:41 PM | INFO |
Cloned repository Viindoo-odoo
|
| 10/21/2026 11:20:05 PM | ERROR |
Subbuild # 427318:
odoo.addons.calendar.tests.test_event_notifications: FAIL: TestEventNotifications.test_email_alarm_recurrence_rescheduled_by_cron
Traceback (most recent call last):
File "/data/build/rb-01d1866-225816/addons/calendar/tests/test_event_notifications.py", line 597, in test_email_alarm_recurrence_rescheduled_by_cron
self.assertMailMail(self.customers[0], 'sent', author=self.user_root.partner_id)
File "/data/build/rb-01d1866-225816/addons/mail/tests/common.py", line 732, in assertMailMail
found_mail = self._find_mail_mail_wpartners(recipients, status, mail_message=mail_message, author=author, content=content, email_from=email_from)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/addons/mail/tests/common.py", line 562, in _find_mail_mail_wpartners
raise AssertionError(
AssertionError: mail.mail not found for message None / status sent / recipients [1408] / author ViindooBot (2), email_from (None)
Missing: ['Customer Email (1408)']
From: res.partner(2,) ("ViindooBot" <viindoobot@example.viindoo.com>) - To: [1408] (State: outgoing)
|
| 10/21/2026 11:20:05 PM | ERROR |
Subbuild # 427318:
odoo.tests.result: 1 failed, 0 error(s) of 2359 tests when loading database 'rb-01d1866-225816-427318'
|
| 10/22/2026 12:25:19 AM | ERROR |
Subbuild # 427319:
odoo.addons.l10n_vn_viin.tests.test_vn_coa_template: FAIL: TestChartAccountVN.test_vn_coa_resync_rewrites_a_template_account_code_only_back_from_a_code_the_chart_itself_mapped
Traceback (most recent call last):
File "/data/build/Viindoo-tvtmaaddons-19.0/l10n_vn_viin/tests/test_vn_coa_template.py", line 3192, in test_vn_coa_resync_rewrites_a_template_account_code_only_back_from_a_code_the_chart_itself_mapped
self.assertEqual(
AssertionError: Items in the second set but not the first:
'base l10n_vn code' : fixture is not discriminating: the chart data yields no entry for one of the mappings
|
| 10/22/2026 12:25:19 AM | ERROR |
Subbuild # 427319:
odoo.tests.result: 1 failed, 0 error(s) of 2472 tests when loading database 'rb-01d1866-225816-427319'
|
| 10/21/2026 11:30:02 PM | ERROR |
Subbuild # 427324:
odoo.addons.viin_hr_contract.tests.test_hr_employee3: FAIL: TestHrEmployee3.test_04__list_leaves_intervals
Traceback (most recent call last):
File "/data/build/Viindoo-tvtmaaddons-19.0/viin_hr_contract/tests/test_hr_employee3.py", line 239, in test_04__list_leaves_intervals
self.assertEqual(len(list_leaves_intervals), 1)
AssertionError: 3 != 1
|
| 10/21/2026 11:30:02 PM | ERROR |
Subbuild # 427324:
odoo.tests.result: 1 failed, 0 error(s) of 4690 tests when loading database 'rb-01d1866-225816-427324'
|
| 10/21/2026 10:55:38 PM | ERROR |
Subbuild # 427326:
odoo.tests.suite: ERROR: setUpClass (odoo.addons.website_sale.tests.test_website_sale_gmc.TestWebsiteSaleGMC)
Traceback (most recent call last):
File "/data/build/rb-01d1866-225816/addons/website_sale/tests/common_gmc.py", line 20, in setUpClass
cls.gmc_feed = cls.env['product.feed'].create({
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/decorators.py", line 369, in create
return method(self, vals_list)
^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/addons/mail/models/mail_thread.py", line 325, in create
threads = super(MailThread, self).create(vals_list)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/decorators.py", line 369, in create
return method(self, vals_list)
^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/Viindoo-erponline-enterprise-19.0/viin_customizer/models/models.py", line 123, in create
return super().create(vals_list)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/decorators.py", line 369, in create
return method(self, vals_list)
^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/models.py", line 4717, in create
records = self._create(data_list)
^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/models.py", line 4956, in _create
records._validate_fields(name for data in data_list for name in data['stored'])
File "/data/build/rb-01d1866-225816/odoo/orm/models.py", line 1268, in _validate_fields
check(records)
File "/data/build/rb-01d1866-225816/addons/website_sale/models/product_feed.py", line 103, in _check_product_limit
feed._get_feed_product_domain(), limit=const.PRODUCT_FEED_SOFT_LIMIT + 1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/addons/website_sale/models/product_feed.py", line 226, in _get_feed_product_domain
product_domain = self.website_id._get_basic_feed_product_domain()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/addons/website_sale/models/website.py", line 1084, in _get_basic_feed_product_domain
Domain("type", "in", {"consu", "combo"})
TypeError: unsupported operand type(s) for &: 'DomainCondition' and 'list'
|
| 10/21/2026 10:55:38 PM | ERROR |
Subbuild # 427326:
odoo.tests.suite: ERROR: setUpClass (odoo.addons.website_sale_stock.tests.test_website_sale_stock_gmc.TestWebsiteSaleStockGMC)
Traceback (most recent call last):
File "/data/build/rb-01d1866-225816/addons/website_sale_stock/tests/test_website_sale_stock_gmc.py", line 13, in setUpClass
super().setUpClass()
File "/data/build/rb-01d1866-225816/addons/website_sale/tests/common_gmc.py", line 20, in setUpClass
cls.gmc_feed = cls.env['product.feed'].create({
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/decorators.py", line 369, in create
return method(self, vals_list)
^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/addons/mail/models/mail_thread.py", line 325, in create
threads = super(MailThread, self).create(vals_list)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/decorators.py", line 369, in create
return method(self, vals_list)
^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/Viindoo-erponline-enterprise-19.0/viin_customizer/models/models.py", line 123, in create
return super().create(vals_list)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/decorators.py", line 369, in create
return method(self, vals_list)
^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/models.py", line 4717, in create
records = self._create(data_list)
^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/odoo/orm/models.py", line 4956, in _create
records._validate_fields(name for data in data_list for name in data['stored'])
File "/data/build/rb-01d1866-225816/odoo/orm/models.py", line 1268, in _validate_fields
check(records)
File "/data/build/rb-01d1866-225816/addons/website_sale/models/product_feed.py", line 103, in _check_product_limit
feed._get_feed_product_domain(), limit=const.PRODUCT_FEED_SOFT_LIMIT + 1
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/addons/website_sale/models/product_feed.py", line 226, in _get_feed_product_domain
product_domain = self.website_id._get_basic_feed_product_domain()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/rb-01d1866-225816/addons/website_sale/models/website.py", line 1084, in _get_basic_feed_product_domain
Domain("type", "in", {"consu", "combo"})
TypeError: unsupported operand type(s) for &: 'DomainCondition' and 'list'
|
| 10/21/2026 10:55:38 PM | ERROR |
Subbuild # 427326:
odoo.tests.result: 0 failed, 2 error(s) of 803 tests when loading database 'rb-01d1866-225816-427326'
|