[IMP] mail_activity_team: Improve test using standard methods
This commit is contained in:
parent
5edac89b4f
commit
c3c52d7384
@ -38,7 +38,7 @@ class MailActivity(models.Model):
|
|||||||
if self.team_id and self.user_id in self.team_id.member_ids:
|
if self.team_id and self.user_id in self.team_id.member_ids:
|
||||||
return res
|
return res
|
||||||
self.team_id = self.with_context(
|
self.team_id = self.with_context(
|
||||||
default_res_model=self.res_model_id.id
|
default_res_model=self.res_model_id.model
|
||||||
)._get_default_team_id(user_id=self.user_id.id)
|
)._get_default_team_id(user_id=self.user_id.id)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
@ -64,6 +64,9 @@ class ResUsers(models.Model):
|
|||||||
user_activities[activity["model"]][
|
user_activities[activity["model"]][
|
||||||
"%s_count" % activity["states"]
|
"%s_count" % activity["states"]
|
||||||
] += activity["count"]
|
] += activity["count"]
|
||||||
if activity["states"] in ("today", "overdue"):
|
if (
|
||||||
|
activity["states"] in ("today", "overdue")
|
||||||
|
and activity["user_id"] != user
|
||||||
|
):
|
||||||
user_activities[activity["model"]]["total_count"] += activity["count"]
|
user_activities[activity["model"]]["total_count"] += activity["count"]
|
||||||
return list(user_activities.values())
|
return list(user_activities.values())
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
# Copyright 2018-22 ForgeFlow S.L.
|
# Copyright 2018-22 ForgeFlow S.L.
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
from odoo.exceptions import ValidationError
|
from odoo.exceptions import ValidationError
|
||||||
from odoo.tests.common import TransactionCase
|
from odoo.tests.common import Form, SavepointCase
|
||||||
|
|
||||||
|
|
||||||
class TestMailActivityTeam(TransactionCase):
|
class TestMailActivityTeam(SavepointCase):
|
||||||
def setUp(self):
|
@classmethod
|
||||||
super(TestMailActivityTeam, self).setUp()
|
def setUpClass(cls):
|
||||||
|
super().setUpClass()
|
||||||
|
self = cls
|
||||||
self.env["mail.activity.team"].search([]).unlink()
|
self.env["mail.activity.team"].search([]).unlink()
|
||||||
|
|
||||||
self.employee = self.env["res.users"].create(
|
self.employee = self.env["res.users"].create(
|
||||||
@ -125,6 +126,18 @@ class TestMailActivityTeam(TransactionCase):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_activity_members(self):
|
||||||
|
self.team1.member_ids |= self.employee2
|
||||||
|
self.partner_client.refresh()
|
||||||
|
self.assertIn(self.employee2, self.partner_client.activity_team_user_ids)
|
||||||
|
self.assertIn(self.employee, self.partner_client.activity_team_user_ids)
|
||||||
|
self.assertEqual(
|
||||||
|
self.partner_client,
|
||||||
|
self.env["res.partner"].search(
|
||||||
|
[("activity_team_user_ids", "=", self.employee.id)]
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
def test_team_and_user_onchange(self):
|
def test_team_and_user_onchange(self):
|
||||||
with self.assertRaises(ValidationError):
|
with self.assertRaises(ValidationError):
|
||||||
self.team1.member_ids = [(3, self.employee.id)]
|
self.team1.member_ids = [(3, self.employee.id)]
|
||||||
@ -144,32 +157,83 @@ class TestMailActivityTeam(TransactionCase):
|
|||||||
self.team2._onchange_user_id()
|
self.team2._onchange_user_id()
|
||||||
self.assertTrue(self.employee3 in self.team2.member_ids)
|
self.assertTrue(self.employee3 in self.team2.member_ids)
|
||||||
|
|
||||||
def test_activity_onchanges(self):
|
def test_activity_onchanges_keep_user(self):
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.act2.team_id, self.team1, "Error: Activity 2 should have Team 1."
|
self.act2.team_id, self.team1, "Error: Activity 2 should have Team 1."
|
||||||
)
|
)
|
||||||
self.act2.team_id = False
|
with Form(self.act2) as form:
|
||||||
self.act2._onchange_team_id()
|
form.team_id = self.env["mail.activity.team"]
|
||||||
self.assertEqual(self.act2.user_id, self.employee)
|
self.assertEqual(form.user_id, self.employee)
|
||||||
self.act2.team_id = self.team2
|
|
||||||
self.act2._onchange_team_id()
|
def test_activity_onchanges_user_no_member_team(self):
|
||||||
self.assertEqual(self.act2.user_id, self.employee)
|
self.assertEqual(
|
||||||
self.act2.user_id = self.employee2
|
self.act2.team_id, self.team1, "Error: Activity 2 should have Team 1."
|
||||||
self.act2._onchange_user_id()
|
)
|
||||||
self.assertEqual(self.act2.team_id, self.team2)
|
with Form(self.act2) as form:
|
||||||
|
form.user_id = self.employee2
|
||||||
|
self.assertEqual(form.team_id, self.team2)
|
||||||
|
|
||||||
|
def test_activity_onchanges_user_no_team(self):
|
||||||
|
self.assertEqual(
|
||||||
|
self.act2.team_id, self.team1, "Error: Activity 2 should have Team 1."
|
||||||
|
)
|
||||||
|
with Form(self.act2) as form:
|
||||||
|
form.team_id = self.env["mail.activity.team"]
|
||||||
|
form.user_id = self.employee2
|
||||||
|
self.assertEqual(form.team_id, self.team2)
|
||||||
|
|
||||||
|
def test_activity_onchanges_team_no_member(self):
|
||||||
|
self.assertEqual(
|
||||||
|
self.act2.team_id, self.team1, "Error: Activity 2 should have Team 1."
|
||||||
|
)
|
||||||
|
self.team2.user_id = False
|
||||||
|
self.team2.member_ids = False
|
||||||
|
with Form(self.act2) as form:
|
||||||
|
form.team_id = self.team2
|
||||||
|
self.assertFalse(form.user_id)
|
||||||
|
|
||||||
|
def test_activity_onchanges_team_different_member(self):
|
||||||
|
self.assertEqual(
|
||||||
|
self.act2.team_id, self.team1, "Error: Activity 2 should have Team 1."
|
||||||
|
)
|
||||||
|
self.team2.user_id = self.employee2
|
||||||
|
self.team2.member_ids = self.employee2
|
||||||
|
with Form(self.act2) as form:
|
||||||
|
form.team_id = self.team2
|
||||||
|
self.assertEqual(form.user_id, self.employee2)
|
||||||
|
|
||||||
|
def test_activity_onchanges_team_different_member_no_leader(self):
|
||||||
|
self.assertEqual(
|
||||||
|
self.act2.team_id, self.team1, "Error: Activity 2 should have Team 1."
|
||||||
|
)
|
||||||
|
self.team2.user_id = False
|
||||||
|
self.team2.member_ids = self.employee2
|
||||||
|
with Form(self.act2) as form:
|
||||||
|
form.team_id = self.team2
|
||||||
|
self.assertEqual(form.user_id, self.employee2)
|
||||||
|
|
||||||
|
def test_activity_onchanges_activity_type_set_team(self):
|
||||||
|
self.assertEqual(
|
||||||
|
self.act2.team_id, self.team1, "Error: Activity 2 should have Team 1."
|
||||||
|
)
|
||||||
|
self.activity1.default_team_id = self.team2
|
||||||
|
self.assertEqual(self.act2.activity_type_id, self.activity2)
|
||||||
|
with Form(self.act2) as form:
|
||||||
|
form.activity_type_id = self.activity1
|
||||||
|
self.assertEqual(form.team_id, self.team2)
|
||||||
|
|
||||||
|
def test_activity_onchanges_activity_type_no_team(self):
|
||||||
|
self.assertEqual(
|
||||||
|
self.act2.team_id, self.team1, "Error: Activity 2 should have Team 1."
|
||||||
|
)
|
||||||
|
self.assertEqual(self.act2.activity_type_id, self.activity2)
|
||||||
|
with Form(self.act2) as form:
|
||||||
|
form.activity_type_id = self.activity1
|
||||||
|
self.assertEqual(form.team_id, self.team1)
|
||||||
|
|
||||||
|
def test_activity_constrain(self):
|
||||||
with self.assertRaises(ValidationError):
|
with self.assertRaises(ValidationError):
|
||||||
self.act2.write({"user_id": self.employee2.id, "team_id": self.team1.id})
|
self.act2.write({"user_id": self.employee2.id, "team_id": self.team1.id})
|
||||||
self.team1.user_id = False
|
|
||||||
self.act2.user_id = False
|
|
||||||
self.act2._onchange_user_id()
|
|
||||||
self.team2.member_ids = [(4, self.employee3.id)]
|
|
||||||
self.act2.team_id = self.team1
|
|
||||||
self.act2.team_id = False
|
|
||||||
self.act2.user_id = self.employee3
|
|
||||||
self.act2._onchange_user_id()
|
|
||||||
self.act2.team_id = self.team2
|
|
||||||
self.team2.member_ids = [(3, self.act2.user_id.id)]
|
|
||||||
self.act2._onchange_team_id()
|
|
||||||
|
|
||||||
def test_schedule_activity(self):
|
def test_schedule_activity(self):
|
||||||
"""Correctly assign teams to auto scheduled activities. Those won't
|
"""Correctly assign teams to auto scheduled activities. Those won't
|
||||||
@ -210,6 +274,23 @@ class TestMailActivityTeam(TransactionCase):
|
|||||||
.systray_get_activities()
|
.systray_get_activities()
|
||||||
)
|
)
|
||||||
self.assertEqual(res[0]["total_count"], 0)
|
self.assertEqual(res[0]["total_count"], 0)
|
||||||
|
self.assertEqual(res[0]["today_count"], 1)
|
||||||
|
partner_record = self.employee.partner_id.with_user(self.employee.id)
|
||||||
|
self.activity2.default_team_id = self.team2
|
||||||
|
activity = partner_record.activity_schedule(
|
||||||
|
activity_type_id=self.activity2.id, user_id=self.employee2.id
|
||||||
|
)
|
||||||
|
activity.flush()
|
||||||
|
res = (
|
||||||
|
self.env["res.users"]
|
||||||
|
.with_user(self.employee.id)
|
||||||
|
.with_context({"team_activities": True})
|
||||||
|
.systray_get_activities()
|
||||||
|
)
|
||||||
|
self.assertEqual(res[0]["total_count"], 1)
|
||||||
|
self.assertEqual(res[0]["today_count"], 2)
|
||||||
|
res = self.env["res.users"].with_user(self.employee.id).systray_get_activities()
|
||||||
|
self.assertEqual(res[0]["total_count"], 2)
|
||||||
|
|
||||||
def test_activity_schedule_next(self):
|
def test_activity_schedule_next(self):
|
||||||
self.activity1.write(
|
self.activity1.write(
|
||||||
|
Loading…
Reference in New Issue
Block a user