62 lines
2.2 KiB
Python
62 lines
2.2 KiB
Python
"""AI tool dispatch tests for fusion follow-up tools."""
|
|
|
|
from odoo.tests import tagged
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
from odoo.addons.fusion_accounting_ai.services.tools import customer_followup as tools
|
|
|
|
|
|
@tagged('post_install', '-at_install')
|
|
class TestFusionFollowupTools(TransactionCase):
|
|
|
|
def test_fusion_list_overdue(self):
|
|
result = tools.fusion_list_overdue(
|
|
self.env, {'company_id': self.env.company.id},
|
|
)
|
|
self.assertIn('partners', result)
|
|
|
|
def test_fusion_get_partner_detail(self):
|
|
partner = self.env['res.partner'].create({
|
|
'name': 'Tool Partner', 'email': 't@t.local',
|
|
})
|
|
result = tools.fusion_get_partner_followup_detail(
|
|
self.env, {'partner_id': partner.id},
|
|
)
|
|
self.assertEqual(result['partner_id'], partner.id)
|
|
|
|
def test_fusion_generate_text_uses_fallback(self):
|
|
self.env['ir.config_parameter'].sudo().search([
|
|
('key', 'in', [
|
|
'fusion_accounting.provider.followup_text',
|
|
'fusion_accounting.provider.default',
|
|
]),
|
|
]).unlink()
|
|
result = tools.fusion_generate_followup_text(self.env, {
|
|
'partner_name': 'Acme', 'total_overdue': 1000,
|
|
'currency_code': 'USD', 'longest_overdue_days': 15,
|
|
'tone': 'gentle',
|
|
})
|
|
self.assertIn('subject', result)
|
|
self.assertIn('body', result)
|
|
|
|
def test_fusion_get_risk_score(self):
|
|
partner = self.env['res.partner'].create({'name': 'Risk Test'})
|
|
result = tools.fusion_get_partner_risk_score(
|
|
self.env, {'partner_id': partner.id},
|
|
)
|
|
self.assertIn('risk', result)
|
|
|
|
def test_tools_registered_in_dispatch(self):
|
|
from odoo.addons.fusion_accounting_ai.services.tools import TOOL_DISPATCH
|
|
for tool_name in [
|
|
'fusion_list_overdue',
|
|
'fusion_get_partner_followup_detail',
|
|
'fusion_generate_followup_text',
|
|
'fusion_send_followup',
|
|
'fusion_get_partner_risk_score',
|
|
]:
|
|
self.assertIn(
|
|
tool_name, TOOL_DISPATCH,
|
|
f"{tool_name} not registered in TOOL_DISPATCH",
|
|
)
|