62 lines
2.4 KiB
Python
62 lines
2.4 KiB
Python
# Copyright 2019-20 ForgeFlow S.L. (https://www.forgeflow.com)
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
|
|
from datetime import timedelta
|
|
|
|
import odoo.tests.common as test_common
|
|
from odoo import fields
|
|
|
|
|
|
class TestMaintenancePlanActivity(test_common.TransactionCase):
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.maintenance_request_obj = self.env["maintenance.request"]
|
|
self.maintenance_plan_obj = self.env["maintenance.plan"]
|
|
self.maintenance_equipment_obj = self.env["maintenance.equipment"]
|
|
self.maintenance_planned_activity_obj = self.env["maintenance.planned.activity"]
|
|
self.mail_activity_obj = self.env["mail.activity"]
|
|
self.cron = self.env.ref("maintenance_plan.maintenance_requests_cron")
|
|
|
|
self.equipment_1 = self.maintenance_equipment_obj.create({"name": "Laptop 1"})
|
|
self.call = self.env["mail.activity.type"].search(
|
|
[("name", "=", "Call")], limit=1
|
|
)
|
|
self.maintenance_plan_1 = self.maintenance_plan_obj.create(
|
|
{
|
|
"equipment_id": self.equipment_1.id,
|
|
"interval": 1,
|
|
"interval_step": "month",
|
|
"maintenance_plan_horizon": 2,
|
|
"planning_step": "month",
|
|
}
|
|
)
|
|
self.planned_activity = self.maintenance_planned_activity_obj.create(
|
|
{
|
|
"maintenance_plan_id": self.maintenance_plan_1.id,
|
|
"activity_type_id": self.call.id,
|
|
"date_before_request": 2,
|
|
}
|
|
)
|
|
|
|
def test_01_cron_auto_create_activities(self):
|
|
"""Execute cron and check the request and the activities that have
|
|
been created
|
|
"""
|
|
self.cron.method_direct_trigger()
|
|
|
|
generated_requests = self.maintenance_request_obj.search(
|
|
[("maintenance_plan_id", "=", self.maintenance_plan_1.id)]
|
|
)
|
|
self.assertEqual(len(generated_requests), 3)
|
|
request_1 = generated_requests[0]
|
|
# Check if activity Call has been created for the request 1
|
|
generated_activities = self.mail_activity_obj.search(
|
|
[("res_id", "=", request_1.id)]
|
|
)
|
|
self.assertEqual(len(generated_activities), 2)
|
|
self.assertEqual(generated_activities[0].activity_type_id.name, self.call.name)
|
|
self.assertEqual(
|
|
generated_activities[0].date_deadline,
|
|
fields.Date.to_date(request_1.schedule_date) - timedelta(days=2),
|
|
)
|