from odoo.tests import common from odoo import fields from datetime import timedelta class TestApprovalCleaner(common.TransactionCase): def setUp(self): super(TestApprovalCleaner, self).setUp() self.ApprovalRequest = self.env['approval.request'] self.category = self.env['approval.category'].create({ 'name': 'Test Category', 'has_date': 'required', }) # Create approvals with different dates self.approval_old = self.ApprovalRequest.create({ 'name': 'Old Approval', 'category_id': self.category.id, 'date': fields.Datetime.now() - timedelta(days=100), }) self.approval_new = self.ApprovalRequest.create({ 'name': 'New Approval', 'category_id': self.category.id, 'date': fields.Datetime.now() - timedelta(days=10), }) def test_clean_approvals(self): wizard = self.env['approval.cleaner.wizard'].create({ 'date_end': fields.Date.today() - timedelta(days=30), }) wizard.action_clean_approvals() # Check that old approval is deleted self.assertFalse(self.approval_old.exists(), "Old approval should be deleted") # Check that new approval still exists self.assertTrue(self.approval_new.exists(), "New approval should not be deleted")