from odoo.tests.common import TransactionCase from odoo.tests import tagged @tagged('post_install', '-at_install') class TestFusionFollowupRun(TransactionCase): @classmethod def setUpClass(cls): super().setUpClass() cls.partner = cls.env['res.partner'].create({'name': 'Run Test Partner'}) cls.level = cls.env['fusion.followup.level'].create({ 'name': 'Reminder', 'sequence': 301, 'delay_days': 7, 'tone': 'gentle', }) def test_create_minimal(self): run = self.env['fusion.followup.run'].create({ 'partner_id': self.partner.id, 'level_id': self.level.id, }) self.assertEqual(run.state, 'draft') self.assertTrue(run.execution_date) def test_action_mark_sent(self): run = self.env['fusion.followup.run'].create({ 'partner_id': self.partner.id, 'level_id': self.level.id, }) run.action_mark_sent() self.assertEqual(run.state, 'sent') def test_action_mark_failed_records_error(self): run = self.env['fusion.followup.run'].create({ 'partner_id': self.partner.id, }) run.action_mark_failed(error='SMTP unreachable') self.assertEqual(run.state, 'failed') self.assertEqual(run.error_message, 'SMTP unreachable') def test_partner_required(self): with self.assertRaises(Exception): self.env['fusion.followup.run'].create({ 'level_id': self.level.id, })