Daily updates from Odoo
Monday, November 24, 2025
5 changes · master
Code cleanup and technical improvements
The WhatsApp integration was updated to stay aligned with recent internal changes to how conversation member lists are handled. This keeps WhatsApp-related discussions working consistently after the underlying platform refactor, with no expected change for end users.
Original PR description
This commit adapts the whatsapp code to account for the refactoring of `hasMemberList`. Pr community: https://github.com/odoo/odoo/pull/236510
This update standardizes how XML files are checked and refreshed in electronic invoicing tests for Guatemala and Mexico. It helps developers maintain these compliance-related tests more reliably, reducing the risk of errors when invoice formats or rules change.
Original PR description
This commit adds helpers and improves on the way we assert XML files in `AccountTestInvoicingCommon` and all accounting test that extend from it. From now on, all accounting test code that assert an…
This commit adds helpers and improves on the way we assert XML files in `AccountTestInvoicingCommon` and all accounting test that extend from it. From now on, all accounting test code that assert an XML tree/string to an XML file should call the `assert_xml` helper, and design their test file name/location/etc. around this framework. This approach has a few major benefits: ### Assert / Save XML When testing XML files, we often need to perform create/read/update operations on the asserted XML to make sure it corresponds to the most updated/intended data. Previously, to save something to an XML, a developer would need to write their own local helpers to save the XML in the right directory. This was cumbersome and error-prone, so we decided to design a helper that allows developer to immediately save AND/OR update the asserted XML: to save/update an XML, we can simply add `SAVE_XML` as an additional test tags. ### Better test naming and optional subfolder management To better organize test files, the `assert_xml` method allows us to write just the test key name (without `.xml`), and the framework will automatically get the XML to assert/save from the `test_files` directory. An optional `subfolder` parameter is also added to allow writing to specific subfolder within `test_files`. ### Better `___ignore___` management in assertion XMLs Sometimes, we want to ignore a few XML node that are not relevant, or have content that are not deterministic (changes on every test run). To handle this, previously, developers would need to modify the assertion XML content by hand or write their own local script to do so. With this new framework, we just need to add an `ignore_schema.xml` file somewhere in the `test_files` directory. If put inside a subfolder, it will be applied with more priority towards the XML that are put on that specific subfolder. ### Save "pure" XML (before applying `___ignore___`) in temporary folder When calling `SAVE_XML`, before applying the ignore patches, the XML will be saved in a temporary folder (same folder as the screenshots for tours), so that developers can use them in external tests in the future, and for any other saving reasons. In addition, this commit also: - add `edi_tags` helper to save all the common tags for EDIs, which also enables `EXTERNAL_MODE` testing inspired by `l10n_mx_edi` - convert some non-assert XML test helpers into a class method - add `XmlCollector` exception to be used to stop a method and collect an XML data for tests in EDIs. (see `l10n_gt_edi`) - refactor `l10n_mx_edi*` modules to use these helpers related-community-PR: https://github.com/odoo/odoo/pull/235565 task-4891206
This update removes an outdated internal messaging function from WhatsApp and Mexican e-invoicing areas. It aligns Enterprise code with the main Odoo platform cleanup, reducing maintenance overhead without expected changes for end users.
Original PR description
\* = whatsapp, l10n_mx_edi Enterprise counter-part. task-5347566 https://github.com/odoo/odoo/pull/236778
This change reorganizes how WhatsApp conversation member online and offline status information is stored in the messaging system. It should not change day-to-day behavior for users, but it helps keep the codebase cleaner and easier to maintain for future improvements.
Original PR description
PR community: https://github.com/odoo/odoo/pull/235248
The option for preparation printers connected through IoT has been moved into the dedicated POS IoT module. This keeps point-of-sale IoT features organized in the right place, making configuration and maintenance more consistent without changing the overall business workflow.
Original PR description
In order to improve consistency between modules, we moved the IoT preparation printer option to the `pos_iot` bridge module. see odoo/odoo#234883 Task: 4954046