"""Coexistence tests: fusion_accounting_assets menu only visible when Enterprise account_asset is NOT installed.""" from odoo.tests.common import TransactionCase from odoo.tests import tagged @tagged('post_install', '-at_install') class TestAssetsCoexistence(TransactionCase): def setUp(self): super().setUp() self.coex_group = self.env.ref( 'fusion_accounting_core.group_fusion_show_when_enterprise_absent', raise_if_not_found=False, ) self.assertIsNotNone(self.coex_group, "Coexistence group must exist") def test_engine_always_available(self): """Engine is registered regardless of Enterprise install state.""" self.assertIn('fusion.asset.engine', self.env.registry) def test_menu_gated_by_coexistence_group(self): menu = self.env.ref('fusion_accounting_assets.menu_fusion_assets_root', raise_if_not_found=False) if not menu: self.skipTest("Menu not loaded") menu_groups = getattr(menu, 'group_ids', None) or menu.groups_id self.assertIn(self.coex_group, menu_groups, "Asset root menu must require the coexistence group") def test_categories_menu_gated(self): menu = self.env.ref('fusion_accounting_assets.menu_fusion_asset_categories', raise_if_not_found=False) if not menu: self.skipTest("Menu not loaded") menu_groups = getattr(menu, 'group_ids', None) or menu.groups_id self.assertIn(self.coex_group, menu_groups)