Files
Odoo-18.0-20251222/maintenance_equipment_usage/tests/test_maintenance_equipment_usage.py
tocmo0nlord adbe430761
Some checks failed
pre-commit / pre-commit (push) Has been cancelled
tests / Detect unreleased dependencies (push) Has been cancelled
tests / test with OCB (push) Has been cancelled
tests / test with Odoo (push) Has been cancelled
Initial commit: Odoo 18.0-20251222 extra-addons
2026-03-13 20:43:25 +00:00

66 lines
2.7 KiB
Python

# Copyright 2022-2024 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo.exceptions import UserError
from odoo.tests import Form, new_test_user
from odoo.addons.base.tests.common import BaseCommon
class TestMaintenanceEquipmentUsage(BaseCommon):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.user = new_test_user(cls.env, login="test_basic_user")
cls.equipment = cls.env["maintenance.equipment"].create(
{"name": "Test equipment"}
)
cls.equipment_usage = cls._create_equipment_usage()
@classmethod
def _create_equipment_usage(cls):
equipment_usage_form = Form(cls.env["maintenance.equipment.usage"])
equipment_usage_form.equipment_id = cls.equipment
equipment_usage_form.user_id = cls.user
return equipment_usage_form.save()
def test_maintenance_equipment_full_process(self):
self.assertIn(self.equipment_usage, self.equipment.usage_ids)
self.assertFalse(self.equipment.in_use)
self.assertEqual(self.equipment_usage.state, "draft")
self.equipment_usage.action_pick()
self.assertTrue(self.equipment_usage.date_picking)
self.assertEqual(self.equipment_usage.state, "in_use")
self.assertTrue(self.equipment.in_use)
self.equipment_usage.action_return()
self.assertEqual(self.equipment_usage.state, "returned")
self.assertTrue(self.equipment_usage.date_return)
self.assertFalse(self.equipment.in_use)
def test_maintenance_equipment_cancel_process(self):
self.assertEqual(self.equipment_usage.state, "draft")
self.equipment_usage.action_cancel()
self.assertEqual(self.equipment_usage.state, "cancel")
def test_maintenance_equipment_multi(self):
self.equipment_usage.action_pick()
self.assertEqual(self.equipment_usage.state, "in_use")
equipment_usage2 = self._create_equipment_usage()
with self.assertRaises(UserError):
equipment_usage2.action_pick()
self.equipment_usage.action_cancel()
self.assertEqual(self.equipment_usage.state, "cancel")
equipment_usage2.action_pick()
self.assertEqual(equipment_usage2.state, "in_use")
def test_compute_usage_count(self):
equipment_usage2 = self.env["maintenance.equipment.usage"].create(
{"equipment_id": self.equipment.id, "user_id": self.user.id}
)
self.equipment._compute_usage_count()
self.assertEqual(self.equipment.usage_count, 2)
equipment_usage2.unlink()
self.equipment._compute_usage_count()
self.assertEqual(self.equipment.usage_count, 1)