from odoo.tests.common import TransactionCase from odoo.tests import tagged @tagged('post_install', '-at_install') class TestAssetsMigrationRoundTrip(TransactionCase): def test_bootstrap_step_runs_without_enterprise(self): """When Enterprise account.asset is NOT installed, step is a no-op.""" wizard = self.env['fusion.migration.wizard'].create({}) result = wizard._assets_bootstrap_step() self.assertEqual(result['step'], 'assets_bootstrap') # In our local DB, Enterprise account.asset may or may not exist # If absent: enterprise_module_present is False # If present: created>=0 self.assertIn(result['enterprise_module_present'], [True, False]) def test_bootstrap_idempotent_on_re_run(self): wizard = self.env['fusion.migration.wizard'].create({}) first = wizard._assets_bootstrap_step() second = wizard._assets_bootstrap_step() # Second run should skip what the first created (or both no-op) if first['enterprise_module_present']: self.assertGreaterEqual(second['skipped'], first['created'])