test(fusion_accounting_followup): engine integration tests for full lifecycle
End-to-end flows over a real posted receivable line: aging discovery, level resolution, send-with-cache reuse, pause+force override, and audit history growth. Adds ignore_pause kwarg to compute_followup_level so force=True in send_followup_email reaches level resolution. Made-with: Cursor
This commit is contained in:
@@ -54,12 +54,12 @@ class FusionFollowupEngine(models.AbstractModel):
|
||||
}
|
||||
|
||||
@api.model
|
||||
def compute_followup_level(self, partner):
|
||||
def compute_followup_level(self, partner, *, ignore_pause=False):
|
||||
"""Return the fusion.followup.level recordset that should fire now,
|
||||
or empty recordset if no action needed."""
|
||||
partner.ensure_one()
|
||||
Level = self.env['fusion.followup.level']
|
||||
if partner.fusion_followup_paused_until and \
|
||||
if not ignore_pause and partner.fusion_followup_paused_until and \
|
||||
partner.fusion_followup_paused_until > fields.Date.today():
|
||||
return Level
|
||||
|
||||
@@ -101,11 +101,6 @@ class FusionFollowupEngine(models.AbstractModel):
|
||||
Creates a fusion.followup.run record. Uses cached text if available."""
|
||||
partner.ensure_one()
|
||||
|
||||
if not level:
|
||||
level = self.compute_followup_level(partner)
|
||||
if not level:
|
||||
return {'status': 'no_action', 'partner_id': partner.id}
|
||||
|
||||
if not force and partner.fusion_followup_paused_until and \
|
||||
partner.fusion_followup_paused_until > fields.Date.today():
|
||||
return {
|
||||
@@ -113,6 +108,11 @@ class FusionFollowupEngine(models.AbstractModel):
|
||||
'partner_id': partner.id,
|
||||
}
|
||||
|
||||
if not level:
|
||||
level = self.compute_followup_level(partner, ignore_pause=force)
|
||||
if not level:
|
||||
return {'status': 'no_action', 'partner_id': partner.id}
|
||||
|
||||
if level.requires_manual_review and not force:
|
||||
run = self._create_run(partner, level, state='manual_review')
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user