Public release from ruodoo-project: 19.0 - 2026-05-31 21:19:12 UTC
This commit is contained in:
118
base_user_role/tests/test_role_add_users_wizard.py
Normal file
118
base_user_role/tests/test_role_add_users_wizard.py
Normal file
@ -0,0 +1,118 @@
|
||||
from odoo import Command
|
||||
from odoo.tests.common import TransactionCase
|
||||
|
||||
|
||||
class TestRoleAddUsersWizard(TransactionCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.role = cls.env["res.users.role"].create(
|
||||
{
|
||||
"name": "Test Role",
|
||||
}
|
||||
)
|
||||
cls.user1 = cls.env["res.users"].create(
|
||||
{
|
||||
"name": "Test User 1",
|
||||
"login": "testuser1",
|
||||
"email": "testuser1@example.com",
|
||||
}
|
||||
)
|
||||
cls.user2 = cls.env["res.users"].create(
|
||||
{
|
||||
"name": "Test User 2",
|
||||
"login": "testuser2",
|
||||
"email": "testuser2@example.com",
|
||||
}
|
||||
)
|
||||
cls.user3 = cls.env["res.users"].create(
|
||||
{
|
||||
"name": "Test User 3",
|
||||
"login": "testuser3",
|
||||
"email": "testuser3@example.com",
|
||||
}
|
||||
)
|
||||
|
||||
def test_add_new_users_to_role(self):
|
||||
"""Test adding new users to a role without existing users"""
|
||||
wizard = self.env["role.add.users.wizard"].create(
|
||||
{
|
||||
"role_id": self.role.id,
|
||||
"user_ids": [Command.set([self.user1.id, self.user2.id])],
|
||||
"date_from": "2024-01-01",
|
||||
"date_to": "2024-12-31",
|
||||
}
|
||||
)
|
||||
|
||||
result = wizard.action_add_users()
|
||||
self.assertEqual(result["type"], "ir.actions.act_window_close")
|
||||
self.assertEqual(len(self.role.line_ids), 2)
|
||||
self.assertIn(self.user1, self.role.line_ids.mapped("user_id"))
|
||||
self.assertIn(self.user2, self.role.line_ids.mapped("user_id"))
|
||||
for line in self.role.line_ids:
|
||||
self.assertEqual(str(line.date_from), "2024-01-01")
|
||||
self.assertEqual(str(line.date_to), "2024-12-31")
|
||||
|
||||
def test_add_users_with_existing_users(self):
|
||||
"""Test adding users when some already exist in the role"""
|
||||
self.env["res.users.role.line"].create(
|
||||
{
|
||||
"role_id": self.role.id,
|
||||
"user_id": self.user1.id,
|
||||
}
|
||||
)
|
||||
|
||||
wizard = self.env["role.add.users.wizard"].create(
|
||||
{
|
||||
"role_id": self.role.id,
|
||||
"user_ids": [Command.set([self.user1.id, self.user2.id])],
|
||||
}
|
||||
)
|
||||
|
||||
wizard.action_add_users()
|
||||
self.assertEqual(len(self.role.line_ids), 2)
|
||||
users_in_role = self.role.line_ids.mapped("user_id")
|
||||
self.assertIn(self.user1, users_in_role)
|
||||
self.assertIn(self.user2, users_in_role)
|
||||
|
||||
user1_lines = self.role.line_ids.filtered(
|
||||
lambda line: line.user_id == self.user1
|
||||
)
|
||||
self.assertEqual(len(user1_lines), 1)
|
||||
|
||||
def test_add_users_without_dates(self):
|
||||
"""Test adding users without specifying dates"""
|
||||
wizard = self.env["role.add.users.wizard"].create(
|
||||
{
|
||||
"role_id": self.role.id,
|
||||
"user_ids": [Command.set([self.user3.id])],
|
||||
}
|
||||
)
|
||||
|
||||
wizard.action_add_users()
|
||||
self.assertEqual(len(self.role.line_ids), 1)
|
||||
line = self.role.line_ids[0]
|
||||
self.assertEqual(line.user_id, self.user3)
|
||||
self.assertFalse(line.date_from)
|
||||
self.assertFalse(line.date_to)
|
||||
|
||||
def test_add_multiple_new_users(self):
|
||||
"""Test adding multiple new users at once"""
|
||||
wizard = self.env["role.add.users.wizard"].create(
|
||||
{
|
||||
"role_id": self.role.id,
|
||||
"user_ids": [
|
||||
Command.set([self.user1.id, self.user2.id, self.user3.id])
|
||||
],
|
||||
"date_from": "2024-06-01",
|
||||
}
|
||||
)
|
||||
|
||||
wizard.action_add_users()
|
||||
self.assertEqual(len(self.role.line_ids), 3)
|
||||
users_in_role = self.role.line_ids.mapped("user_id")
|
||||
self.assertEqual(
|
||||
set(users_in_role.ids), {self.user1.id, self.user2.id, self.user3.id}
|
||||
)
|
||||
for line in self.role.line_ids:
|
||||
self.assertEqual(str(line.date_from), "2024-06-01")
|
||||
Reference in New Issue
Block a user