Files
public/tests/odoo-base-test.md

117 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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` удалена | ✅ Исправлено |
---