# Odoo 19 Base Tests Report **Команда запуска:** ```bash 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` удалена | ✅ Исправлено | ---