Skip to content

Commit d01f2d0

Browse files
committed
fix: update tests for 7th program, activate children_under_5 variable
1 parent aa4db87 commit d01f2d0

3 files changed

Lines changed: 22 additions & 5 deletions

File tree

spp_mis_demo_v2/__manifest__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@
5252
"views/mis_demo_wizard_view.xml",
5353
],
5454
"assets": {},
55+
"oca_data_manual": [
56+
"data/demo_api_client.xml",
57+
],
5558
"demo": [],
5659
"images": [],
5760
"application": False,

spp_mis_demo_v2/models/indicator_providers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
# Household composition (aggregate)
4242
"spp_studio.var_hh_size",
4343
"spp_studio.var_child_count",
44+
"spp_studio.var_children_under_5",
4445
"spp_studio.var_elderly_count",
4546
"spp_studio.var_working_age_count",
4647
# Household characteristics (computed)

spp_mis_demo_v2/tests/test_demo_programs.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class TestDemoPrograms(TransactionCase):
88
99
The demo programs use activated registry variables for CEL expressions:
1010
- Universal Child Grant: child_count variable
11+
- Conditional Child Grant: members.exists() for first 1,000 days
1112
- Elderly Social Pension: age + retirement_age variables
1213
- Emergency Relief Fund: dependency_ratio, is_female_headed, elderly_count
1314
- Cash Transfer Program: hh_total_income, poverty_line, hh_size
@@ -16,16 +17,17 @@ class TestDemoPrograms(TransactionCase):
1617
"""
1718

1819
def test_get_all_demo_programs(self):
19-
"""Test that all 6 demo programs are returned."""
20+
"""Test that all 7 demo programs are returned."""
2021
from odoo.addons.spp_mis_demo_v2.models import demo_programs
2122

2223
programs = demo_programs.get_all_demo_programs()
2324
self.assertIsInstance(programs, list)
24-
self.assertEqual(len(programs), 6, "Expected exactly 6 demo programs")
25+
self.assertEqual(len(programs), 7, "Expected exactly 7 demo programs")
2526

2627
# Check expected programs exist (V3 names)
2728
program_names = [p["name"] for p in programs]
2829
self.assertIn("Universal Child Grant", program_names)
30+
self.assertIn("Conditional Child Grant", program_names)
2931
self.assertIn("Elderly Social Pension", program_names)
3032
self.assertIn("Emergency Relief Fund", program_names)
3133
self.assertIn("Cash Transfer Program", program_names)
@@ -348,8 +350,10 @@ def test_get_programs_by_pack(self):
348350
from odoo.addons.spp_mis_demo_v2.models import demo_programs
349351

350352
programs = demo_programs.get_programs_by_pack("child_benefit")
351-
self.assertEqual(len(programs), 1)
352-
self.assertEqual(programs[0]["name"], "Universal Child Grant")
353+
self.assertEqual(len(programs), 2)
354+
program_names = [p["name"] for p in programs]
355+
self.assertIn("Universal Child Grant", program_names)
356+
self.assertIn("Conditional Child Grant", program_names)
353357

354358
# Non-existent pack should return empty
355359
programs = demo_programs.get_programs_by_pack("nonexistent")
@@ -460,11 +464,20 @@ def test_story_program_alignment_complete(self):
460464
)
461465

462466
def test_all_programs_have_enrolled_stories(self):
463-
"""Test that every demo program has at least one enrolled story."""
467+
"""Test that demo programs have at least one enrolled story.
468+
469+
Conditional Child Grant is excluded: it demonstrates compliance
470+
features and members.exists() CEL patterns without persona stories.
471+
"""
464472
from odoo.addons.spp_mis_demo_v2.models import demo_programs
465473

474+
# Programs that intentionally have no story personas
475+
programs_without_stories = {"Conditional Child Grant"}
476+
466477
for program in demo_programs.get_all_demo_programs():
467478
program_name = program["name"]
479+
if program_name in programs_without_stories:
480+
continue
468481
stories = program.get("stories", [])
469482
self.assertGreater(
470483
len(stories),

0 commit comments

Comments
 (0)