5.1 KiB
Odoo 19 Base Tests Report
Команда запуска:
odoo --test-enable --stop-after-init -d database_name --update base --test-tags base
Итог
Module base: 23 failures, 26 errors of 979 tests
Классификация ошибок
✅ Исправлено нами
access_restricted — ImportError при загрузке тестов
Файл: myaddons/dob/access_restricted/tests/test_fields_get.py
Причина: Функция name_selection_groups удалена из odoo.addons.base.models.res_users в Odoo 19.
Исправление: Заменена локальной функцией _sel_groups_field_name, которая генерирует имя поля sel_groups_X_Y_Z без импорта из ядра.
⚠️ Ожидаемое поведение (не баг, не трогаем)
test_user_has_group — лишняя группа в all_group_ids
Тесты: TestHasGroup.test_demote_user, TestHasGroup.test_implied_groups
Причина: Модуль access_apps добавляет группу group_allow_apps_only_from_settings с implied_ids = base.group_system. Это расширяет иерархию групп, тест ожидает фиксированное количество групп без учёта сторонних модулей.
Вывод: Поведение корректное, тест base не учитывает кастомные модули.
test_views — ViewModifiers.test_17_attrs_groups_validation
Причина: Та же — access_apps меняет иерархию group_system, что влияет на валидацию групп в представлениях.
Вывод: Ожидаемое поведение при установленном access_apps.
test_ir_model — TestIrModelInherit.test_inherit (3 != 1)
Причина: Тест ожидает ровно 1 запись в ir.model.inherit для тестовой модели, но наши модули (access_restricted, base_user_role, web_debranding, base_tier_validation, access_settings_menu, l10n_ru_doc, l10n_ru_upd_xml) расширяют res.users и res.partner, увеличивая количество записей.
Вывод: Ожидаемое поведение при установленных модулях с _inherit.
🔧 Проблемы окружения (Docker / отсутствие зависимостей)
test_cli — 17 ошибок
Тесты: TestCommand.test_help, test_help_subcommand, test_shell, test_unknown_command, test_upgrade_code_*
Причина: CLI-тесты запускают subprocess с TTY, который недоступен внутри Docker-контейнера без флага -t.
test_acl + test_res_partner_merge — KeyError: 'employee_ids'
Причина: Модуль hr установлен в базе и добавляет поле employee_ids на res.partner. Domain в ACL-правилах ссылается на это поле, тест не ожидает его наличия.
Вывод: Не наша вина, артефакт установленного hr.
test_profiler — 2 ошибки
Тесты: TestPerformance.test_traces_async_memory_optimisation, TestSyncRecorder.test_sync_recorder
Причина: Инфраструктурные тесты профилировщика, чувствительные к окружению выполнения.
test_test_retry — 8 ошибок
Причина: Тесты проверяют механизм retry самого тест-фреймворка. Ожидаемые падения (тесты специально написаны чтобы падать).
test_translate — 9 ошибок
Тесты: TestTranslation.test_110_search_es, TestTranslationWrite.*
Причина: Отсутствуют установленные языки (es, fr) в тестовой базе.
Сводная таблица
| Группа тестов | Failures | Errors | Причина | Действие |
|---|---|---|---|---|
test_acl |
0 | 1 | hr модуль / employee_ids |
Не трогаем |
test_cli |
2 | 15 | Нет TTY в Docker | Не трогаем |
test_ir_model |
1 | 0 | Наши _inherit расширения |
Ожидаемо |
test_profiler |
2 | 0 | Окружение | Не трогаем |
test_res_partner_merge |
0 | 1 | hr модуль |
Не трогаем |
test_test_retry |
4 | 4 | Намеренные падения фреймворка | Не трогаем |
test_translate |
9 | 0 | Нет языков в БД | Не трогаем |
test_user_has_group |
2 | 0 | access_apps implied groups |
Ожидаемо |
test_views |
1 | 0 | access_apps implied groups |
Ожидаемо |
access_restricted (import) |
— | 1 | name_selection_groups удалена |
✅ Исправлено |