Skip to content

Commit 13cdf1e

Browse files
committed
added test cases to spp_programs_sp and spp_registry_group_hierarchy
1 parent 7eb47a3 commit 13cdf1e

File tree

7 files changed

+198
-0
lines changed

7 files changed

+198
-0
lines changed

spp_programs_sp/tests/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
from . import common
2+
from . import test_entitlement_manager_cash
3+
from . import test_entitlement_manager_default
4+
from . import test_entitlement_manager_inkind

spp_programs_sp/tests/common.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
from odoo.tests.common import TransactionCase
2+
3+
4+
class Common(TransactionCase):
5+
@classmethod
6+
def setUpClass(cls):
7+
super().setUpClass()
8+
country = cls.env.ref("base.iq")
9+
cls.service_point_1 = cls.env["spp.service.point"].create(
10+
{
11+
"name": "Agent1",
12+
"country_id": country.id,
13+
"phone_no": "+9647001234567",
14+
"is_disabled": False,
15+
}
16+
)
17+
cls.registrant_1 = cls.env["res.partner"].create(
18+
{
19+
"name": "Registrant 1 [TEST]",
20+
"is_registrant": True,
21+
"is_group": True,
22+
"service_point_ids": [(6, 0, cls.service_point_1.ids)],
23+
}
24+
)
25+
26+
cls.program = cls.env["g2p.program"].create(
27+
{
28+
"name": "Program 1",
29+
"store_sp_in_entitlements": True,
30+
}
31+
)
32+
cls.program.create_journal()
33+
34+
def _common_test_get_addl_entitlement_fields(self, entitlement_manager, mock_super):
35+
mock_return_value = {"test": "test"}
36+
mock_super.return_value = mock_return_value
37+
result = entitlement_manager._get_addl_entitlement_fields(self.registrant_1)
38+
self.assertEqual(result, {"test": "test", "service_point_ids": self.service_point_1})
39+
40+
mock_super.return_value = None
41+
self.program.store_sp_in_entitlements = False
42+
result = entitlement_manager._get_addl_entitlement_fields(self.registrant_1)
43+
self.assertEqual(result, {"service_point_ids": None})
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from unittest.mock import patch
2+
3+
from .common import Common
4+
5+
6+
class CashEntitlementManagerTest(Common):
7+
@classmethod
8+
def setUpClass(cls):
9+
super().setUpClass()
10+
cls.cash_entitlement_manager = cls.env["g2p.program.entitlement.manager.cash"].create(
11+
{
12+
"name": "Entitlement Manager Cash 1",
13+
"program_id": cls.program.id,
14+
}
15+
)
16+
17+
@patch(
18+
"odoo.addons.spp_entitlement_cash.models.entitlement_manager.G2PCashEntitlementManager._get_addl_entitlement_fields"
19+
)
20+
def test_cash_get_addl_entitlement_fields(self, mock_super):
21+
self._common_test_get_addl_entitlement_fields(self.cash_entitlement_manager, mock_super)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from unittest.mock import patch
2+
3+
from .common import Common
4+
5+
6+
class DefaultEntitlementManagerTest(Common):
7+
@classmethod
8+
def setUpClass(cls):
9+
super().setUpClass()
10+
cls.default_entitlement_manager = cls.env["g2p.program.entitlement.manager.default"].create(
11+
{
12+
"name": "Entitlement Manager Default 1",
13+
"program_id": cls.program.id,
14+
}
15+
)
16+
17+
@patch(
18+
"odoo.addons.spp_programs.models.managers.entitlement_manager_default.G2PDefaultEntitlementManagerCustom._get_addl_entitlement_fields"
19+
)
20+
def test_cash_get_addl_entitlement_fields(self, mock_super):
21+
self._common_test_get_addl_entitlement_fields(self.default_entitlement_manager, mock_super)
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from unittest.mock import patch
2+
3+
from .common import Common
4+
5+
6+
class DefaultEntitlementManagerTest(Common):
7+
@classmethod
8+
def setUpClass(cls):
9+
super().setUpClass()
10+
cls.inkind_entitlement_manager = cls.env["g2p.program.entitlement.manager.inkind"].create(
11+
{
12+
"name": "Entitlement Manager In-Kind 1",
13+
"program_id": cls.program.id,
14+
}
15+
)
16+
17+
@patch(
18+
"odoo.addons.spp_entitlement_in_kind.models.entitlement_manager.G2PInKindEntitlementManager._get_addl_entitlement_fields"
19+
)
20+
def test_cash_get_addl_entitlement_fields(self, mock_super):
21+
self._common_test_get_addl_entitlement_fields(self.inkind_entitlement_manager, mock_super)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
from . import test_group_membership
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
from odoo import fields
2+
from odoo.exceptions import UserError
3+
from odoo.tests.common import TransactionCase
4+
5+
6+
class MembershipTest(TransactionCase):
7+
@classmethod
8+
def setUpClass(cls):
9+
super().setUpClass()
10+
11+
cls.registrant_1 = cls.env["res.partner"].create(
12+
{
13+
"family_name": "Butay",
14+
"given_name": "Red",
15+
"name": "Red Butay",
16+
"is_group": False,
17+
"is_registrant": True,
18+
}
19+
)
20+
cls.kind_1 = cls.env["g2p.group.kind"].create(
21+
{
22+
"name": "Test Kind",
23+
"allow_all_member_type": True,
24+
}
25+
)
26+
cls.group_1 = cls.env["res.partner"].create(
27+
{
28+
"name": "Group 1",
29+
"is_group": True,
30+
"is_registrant": True,
31+
"kind": cls.kind_1.id,
32+
}
33+
)
34+
cls.group_membership_1 = cls.env["g2p.group.membership"].create(
35+
{
36+
"group": cls.group_1.id,
37+
"individual": cls.registrant_1.id,
38+
"start_date": fields.Datetime.now(),
39+
}
40+
)
41+
42+
def test_compute_individual_domain(self):
43+
self.group_membership_1._compute_individual_domain()
44+
45+
self.assertIsInstance(self.group_membership_1.individual_domain, list)
46+
self.assertEqual(len(self.group_membership_1.individual_domain), 2)
47+
self.assertIn(("is_registrant", "=", True), self.group_membership_1.individual_domain)
48+
self.assertIn(("id", "!=", self.group_membership_1.group.id), self.group_membership_1.individual_domain)
49+
50+
self.group_1.kind = False
51+
self.group_membership_1._compute_individual_domain()
52+
53+
self.assertIsInstance(self.group_membership_1.individual_domain, list)
54+
self.assertEqual(len(self.group_membership_1.individual_domain), 2)
55+
self.assertIn(("is_registrant", "=", True), self.group_membership_1.individual_domain)
56+
self.assertIn(("is_group", "=", False), self.group_membership_1.individual_domain)
57+
58+
def test_open_member_form(self):
59+
member_form = self.group_membership_1.open_member_form()
60+
61+
self.assertIsInstance(member_form, dict)
62+
self.assertEqual(member_form["name"], "Individual Member")
63+
self.assertEqual(member_form["view_mode"], "form")
64+
self.assertEqual(member_form["res_model"], "res.partner")
65+
self.assertEqual(member_form["res_id"], self.registrant_1.id)
66+
self.assertEqual(member_form["view_id"], self.env.ref("g2p_registry_individual.view_individuals_form").id)
67+
self.assertEqual(member_form["type"], "ir.actions.act_window")
68+
self.assertEqual(member_form["target"], "new")
69+
self.assertEqual(member_form["context"], {"default_is_group": False})
70+
self.assertEqual(member_form["flags"], {"mode": "readonly"})
71+
72+
self.registrant_1.is_group = True
73+
member_form = self.group_membership_1.open_member_form()
74+
self.assertIsInstance(member_form, dict)
75+
self.assertEqual(member_form["name"], "Group Membership")
76+
self.assertEqual(member_form["view_mode"], "form")
77+
self.assertEqual(member_form["res_model"], "res.partner")
78+
self.assertEqual(member_form["res_id"], self.registrant_1.id)
79+
self.assertEqual(member_form["view_id"], self.env.ref("g2p_registry_group.view_groups_form").id)
80+
self.assertEqual(member_form["type"], "ir.actions.act_window")
81+
self.assertEqual(member_form["target"], "new")
82+
self.assertEqual(member_form["context"], {"default_is_group": True})
83+
self.assertEqual(member_form["flags"], {"mode": "readonly"})
84+
85+
self.group_membership_1.individual = False
86+
with self.assertRaisesRegex(UserError, "A group or individual must be speficied for this member."):
87+
self.group_membership_1.open_member_form()

0 commit comments

Comments
 (0)