TNCSC_Odoo/addons/tncsc_deployment/tests/test_config_seed.py
metatroncubeswdev 1b7b1710b5
Some checks failed
CI / Brand-leak check (push) Has been cancelled
CI / flake8 / pylint-odoo / manifest completeness (push) Has been cancelled
CI / Install all modules with --test-enable (push) Has been cancelled
updated the error fix for deployement
2026-09-26 19:56:35 -04:00

62 lines
2.7 KiB
Python

from odoo.tests.common import TransactionCase, tagged
from odoo.tools.convert import convert_file
@tagged('post_install', '-at_install')
class TestConfigSeed(TransactionCase):
"""Exercise the actual XML loader with settings saved before installation."""
SEEDS = {
'theme_data.xml': {
'community_theme_base.primary_color': '#05091E',
'community_theme_base.secondary_color': '#F97316',
'community_theme_base.accent_color': '#0EA5FF',
'community_theme_base.heading_font': 'Inter, sans-serif',
'community_theme_base.body_font': 'Inter, sans-serif',
},
'membership_data.xml': {
'community_membership.org_name': 'Tamil Nadu Cultural Society of Canada',
'community_membership.member_id_format': 'TNCSC-{year}-{seq}',
'community_membership.renewal_offsets': '30,14,7',
},
}
def _load(self, filename, mode='init'):
convert_file(self.env, 'tncsc_deployment', f'data/{filename}', {}, mode=mode)
def test_install_reuses_existing_parameters(self):
params = self.env['ir.config_parameter'].sudo()
for filename, expected in self.SEEDS.items():
original_ids = {}
for key in expected:
params.set_param(key, 'existing custom value')
record = params.search([('key', '=', key)])
# Reproduce keys created through Settings, without seed XML IDs.
self.env['ir.model.data'].search([
('model', '=', 'ir.config_parameter'), ('res_id', '=', record.id),
('module', '=', 'tncsc_deployment'),
]).unlink()
original_ids[key] = record.id
self._load(filename)
self._load(filename)
for key, value in expected.items():
self.assertEqual(params.get_param(key), value)
self.assertEqual(params.search([('key', '=', key)]).ids, [original_ids[key]])
def test_install_creates_missing_parameters(self):
params = self.env['ir.config_parameter'].sudo()
for filename, expected in self.SEEDS.items():
params.search([('key', 'in', list(expected))]).unlink()
self._load(filename)
for key, value in expected.items():
self.assertEqual(params.get_param(key), value)
def test_upgrade_preserves_custom_parameters(self):
params = self.env['ir.config_parameter'].sudo()
for filename, expected in self.SEEDS.items():
for key in expected:
params.set_param(key, 'administrator value')
self._load(filename, mode='update')
for key in expected:
self.assertEqual(params.get_param(key), 'administrator value')