Skip to content

Commit 095d03e

Browse files
committed
[chore] refactor function for clarity - adding tests
1 parent 0dd631d commit 095d03e

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
from . import test_farm
22
from . import test_farm_season
3+
from . import test_group_membership
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
from odoo.exceptions import UserError
2+
from odoo.tests import tagged
3+
from odoo.tests.common import TransactionCase
4+
5+
6+
@tagged("post_install", "-at_install")
7+
class TestG2PGroupMembership(TransactionCase):
8+
@classmethod
9+
def setUpClass(cls):
10+
super().setUpClass()
11+
# Set context to avoid job queue delay
12+
cls.env = cls.env(
13+
context=dict(
14+
cls.env.context,
15+
test_queue_job_no_delay=True,
16+
)
17+
)
18+
19+
# Create test data
20+
cls.individual_1 = cls.env["res.partner"].create(
21+
{
22+
"name": "Test Individual 1",
23+
"is_group": False,
24+
"is_registrant": True,
25+
}
26+
)
27+
cls.individual_2 = cls.env["res.partner"].create(
28+
{
29+
"name": "Test Individual 2",
30+
"is_group": False,
31+
"is_registrant": True,
32+
}
33+
)
34+
cls.group = cls.env["res.partner"].create(
35+
{
36+
"name": "Test Group",
37+
"is_group": True,
38+
"is_registrant": True,
39+
}
40+
)
41+
42+
# Get the head membership kind
43+
cls.head_kind = cls.env.ref("g2p_registry_membership.group_membership_kind_head")
44+
45+
# Create memberships
46+
cls.membership_1 = cls.env["g2p.group.membership"].create(
47+
{
48+
"group": cls.group.id,
49+
"individual": cls.individual_1.id,
50+
"kind": [(4, cls.head_kind.id)],
51+
}
52+
)
53+
cls.membership_2 = cls.env["g2p.group.membership"].create(
54+
{
55+
"group": cls.group.id,
56+
"individual": cls.individual_2.id,
57+
}
58+
)
59+
60+
def test_01_unlink_non_head_member(self):
61+
"""Test unlink of a non-head member"""
62+
# Should be able to unlink non-head member
63+
self.membership_2.unlink()
64+
self.assertFalse(self.membership_2.exists())
65+
66+
def test_02_unlink_head_member_with_skip_context(self):
67+
"""Test unlink of head member with skip_head_check context"""
68+
# Should be able to unlink head member with skip context
69+
self.membership_1.with_context(skip_head_check=True).unlink()
70+
self.assertFalse(self.membership_1.exists())
71+
72+
def test_03_unlink_head_member_without_skip_context(self):
73+
"""Test unlink of head member without skip_head_check context"""
74+
# Should raise error when trying to unlink head member
75+
with self.assertRaises(UserError):
76+
self.membership_1.unlink()
77+
self.assertTrue(self.membership_1.exists())

0 commit comments

Comments
 (0)