Skip to content

False negatives when using test-requirements.txt for dependencies pending merge #106

@ivantodorovich

Description

@ivantodorovich

There are often false negatives when using test-requirements.txt with a module dependency pending merge.

One example of this is:

Originally, the PR depended on both:

This resulted in a build failing with the following error:

Run oca_run_tests
+ oca_wait_for_postgres
postgres:5432 - accepting connections
++ oca_list_addons_to_test
+ '[' -n '' ']'
++ manifestoo --select-addons-dir . --select-exclude '' list --separator=,
+ ADDONS=base_territory,fieldservice,fieldservice_account,fieldservice_activity,fieldservice_availability,fieldservice_calendar,fieldservice_crm,fieldservice_equipment_stock,fieldservice_kanban_info,fieldservice_project,fieldservice_recurring,fieldservice_route,fieldservice_sale,fieldservice_sale_recurring,fieldservice_sale_recurring_agreement,fieldservice_sale_stock,fieldservice_size,fieldservice_stage_server_action,fieldservice_stock,fieldservice_vehicle
+ echo base_territory,fieldservice,fieldservice_account,fieldservice_activity,fieldservice_availability,fieldservice_calendar,fieldservice_crm,fieldservice_equipment_stock,fieldservice_kanban_info,fieldservice_project,fieldservice_recurring,fieldservice_route,fieldservice_sale,fieldservice_sale_recurring,fieldservice_sale_recurring_agreement,fieldservice_sale_stock,fieldservice_size,fieldservice_stage_server_action,fieldservice_stock,fieldservice_vehicle
+ ADDONS=base_territory,fieldservice,fieldservice_account,fieldservice_activity,fieldservice_availability,fieldservice_calendar,fieldservice_crm,fieldservice_equipment_stock,fieldservice_kanban_info,fieldservice_project,fieldservice_recurring,fieldservice_route,fieldservice_sale,fieldservice_sale_recurring,fieldservice_sale_recurring_agreement,fieldservice_sale_stock,fieldservice_size,fieldservice_stage_server_action,fieldservice_stock,fieldservice_vehicle
+ '[' -z base_territory,fieldservice,fieldservice_account,fieldservice_activity,fieldservice_availability,fieldservice_calendar,fieldservice_crm,fieldservice_equipment_stock,fieldservice_kanban_info,fieldservice_project,fieldservice_recurring,fieldservice_route,fieldservice_sale,fieldservice_sale_recurring,fieldservice_sale_recurring_agreement,fieldservice_sale_stock,fieldservice_size,fieldservice_stage_server_action,fieldservice_stock,fieldservice_vehicle ']'
+ oca_checklog_odoo
++ which odoo
+ unbuffer coverage run --include './*' --branch /opt/odoo-venv/bin/odoo -d odoo -i base_territory,fieldservice,fieldservice_account,fieldservice_activity,fieldservice_availability,fieldservice_calendar,fieldservice_crm,fieldservice_equipment_stock,fieldservice_kanban_info,fieldservice_project,fieldservice_recurring,fieldservice_route,fieldservice_sale,fieldservice_sale_recurring,fieldservice_sale_recurring_agreement,fieldservice_sale_stock,fieldservice_size,fieldservice_stage_server_action,fieldservice_stock,fieldservice_vehicle --test-enable --stop-after-init
Running as user 'root' is a security risk.
2025-08-13 18:52:23,645 455 INFO ? odoo: Odoo version 18.0 
2025-08-13 18:52:23,646 455 INFO ? odoo: Using configuration file at /etc/odoo.cfg 
2025-08-13 18:52:23,646 455 INFO ? odoo: addons paths: ['/opt/odoo/odoo/addons', '/opt/odoo-venv/lib/python3.10/site-packages/odoo/addons', '/github/home/.local/share/Odoo/addons/18.0', '/opt/odoo/addons', '/__w/field-service/field-service'] 
2025-08-13 18:52:23,646 455 INFO ? odoo: database: odoo@postgres:default 
2025-08-13 18:52:23,794 455 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf 
2025-08-13 18:52:23,802 455 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltoimage binary at /usr/local/bin/wkhtmltoimage 
2025-08-13 18:52:23,942 455 INFO ? odoo.service.server: HTTP service (werkzeug) running on 18e3f8bd2e55:8069 
2025-08-13 18:52:23,970 455 INFO odoo odoo.tests.common: Importing test framework 
2025-08-13 18:52:23,988 455 INFO odoo odoo.modules.loading: loading 1 modules... 
2025-08-13 18:52:23,995 455 INFO odoo odoo.modules.loading: 1 modules loaded in 0.01s, 0 queries (+0 extra) 
2025-08-13 18:52:24,019 455 INFO odoo odoo.modules.loading: updating modules list 
2025-08-13 18:52:24,022 455 INFO odoo odoo.addons.base.models.ir_module: ALLOW access to module.update_list on [] to user __system__ #1 via n/a 
2025-08-13 18:52:25,029 455 INFO odoo odoo.addons.base.models.ir_module: ALLOW access to module.button_install on ['Field Service - Accounting', 'Field Service Activity', 'Fieldservice Availability', 'Field Service - Calendar', 'Field Service - CRM', 'Field Service - Stock Equipment', 'Field Service - Kanban Info', 'Field Service - Project', 'Field Service Recurring Work Orders', 'Field Service Route', 'Field Service - Sales', 'Field Service - Sales - Recurring', 'Field Service Recurring Agreement', 'Field Service - Sale Stock', 'Field Service Sizes', 'Field Service - Stage Server Action', 'Field Service - Stock', 'Field Service Vehicles'] to user __system__ #1 via n/a 
2025-08-13 18:52:25,127 455 INFO odoo odoo.modules.loading: loading 76 modules... 
2025-08-13 18:52:25,128 455 INFO odoo odoo.modules.loading: Loading module base_territory (2/76) 
2025-08-13 18:52:25,174 455 INFO odoo odoo.modules.registry: module base_territory: creating or updating database tables 
2025-08-13 18:52:25,256 455 INFO odoo odoo.modules.loading: loading base_territory/security/ir.model.access.csv 
2025-08-13 18:52:25,273 455 INFO odoo odoo.modules.loading: loading base_territory/views/res_territory.xml 
2025-08-13 18:52:25,294 455 INFO odoo odoo.modules.loading: loading base_territory/views/res_branch.xml 
2025-08-13 18:52:25,307 455 INFO odoo odoo.modules.loading: loading base_territory/views/res_district.xml 
2025-08-13 18:52:25,318 455 INFO odoo odoo.modules.loading: loading base_territory/views/res_region.xml 
2025-08-13 18:52:25,330 455 INFO odoo odoo.modules.loading: loading base_territory/views/res_country.xml 
2025-08-13 18:52:25,343 455 INFO odoo odoo.modules.loading: loading base_territory/views/menu.xml 
2025-08-13 18:52:25,356 455 INFO odoo odoo.modules.loading: Module base_territory: loading demo 
2025-08-13 18:52:25,357 455 INFO odoo odoo.modules.loading: loading base_territory/demo/base_territory_demo.xml 
2025-08-13 18:52:25,420 455 ERROR odoo odoo.sql_db: bad query: b'INSERT INTO "res_partner" ("active", "color", "create_date", "create_uid", "email", "is_company", "lang", "name", "type", "tz", "user_id", "write_date", "write_uid") VALUES (true, 0, \'2025-08-13 18:52:25.415396\', 1, \'test_partner@example.com\', false, \'en_US\', \'Test Partner\', \'contact\', NULL, NULL, \'2025-08-13 18:52:25.415396\', 1) RETURNING "id"'
ERROR: null value in column "autopost_bills" violates not-null constraint
DETAIL:  Failing row contains (58, null, 2025-08-13 18:52:25.415396, Test Partner, null, null, null, null, null, null, 0, null, 1, 1, null, null, en_US, null, null, null, null, null, contact, null, null, null, null, test_partner@example.com, null, null, null, null, null, null, null, null, t, null, f, null, 2025-08-13 18:52:25.415396, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null).

Full job logs: job-logs.txt

Note

The error is raised when loading base_territory demo data, a module that is not affected by the PR

Later on, the first of the depended PRs was merged, and so it was removed from the test-requirements.txt.
This resulted back in a green build, with no additional changes in the actual code.

Full job logs (after removal of 1st dependency): job-logs-2.txt


These false negatives can lead to wasted developers time, as it sets them to find a bugs in their code that aren't real, and that will be resolved as soon as the pending test requirements are dropped.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions