From 1b7b1710b5b0867629f47a8efc7252e03814cd10 Mon Sep 17 00:00:00 2001 From: metatroncubeswdev Date: Sat, 26 Sep 2026 19:56:35 -0400 Subject: [PATCH] updated the error fix for deployement --- .../tncsc_deployment/data/membership_data.xml | 20 +++--- addons/tncsc_deployment/data/theme_data.xml | 32 ++++------ addons/tncsc_deployment/tests/__init__.py | 1 + .../tests/test_config_seed.py | 61 +++++++++++++++++++ 4 files changed, 82 insertions(+), 32 deletions(-) create mode 100644 addons/tncsc_deployment/tests/test_config_seed.py diff --git a/addons/tncsc_deployment/data/membership_data.xml b/addons/tncsc_deployment/data/membership_data.xml index 3661f11..2ad02e8 100644 --- a/addons/tncsc_deployment/data/membership_data.xml +++ b/addons/tncsc_deployment/data/membership_data.xml @@ -1,18 +1,14 @@ + - - 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 - + + + diff --git a/addons/tncsc_deployment/data/theme_data.xml b/addons/tncsc_deployment/data/theme_data.xml index c9ee456..ca8dd6d 100644 --- a/addons/tncsc_deployment/data/theme_data.xml +++ b/addons/tncsc_deployment/data/theme_data.xml @@ -1,26 +1,18 @@ + - - 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 - + + + + + diff --git a/addons/tncsc_deployment/tests/__init__.py b/addons/tncsc_deployment/tests/__init__.py index 8b559c8..4348141 100644 --- a/addons/tncsc_deployment/tests/__init__.py +++ b/addons/tncsc_deployment/tests/__init__.py @@ -1 +1,2 @@ from . import test_tncsc_deployment +from . import test_config_seed diff --git a/addons/tncsc_deployment/tests/test_config_seed.py b/addons/tncsc_deployment/tests/test_config_seed.py new file mode 100644 index 0000000..9e154f1 --- /dev/null +++ b/addons/tncsc_deployment/tests/test_config_seed.py @@ -0,0 +1,61 @@ +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')