Files
Odoo-Modules/fusion_claims/tests/test_signed_pages_gate.py
gsinghpal 1f20eb3d2a feat(claims): add x_fc_pages_11_12_in_original + computed gate
New boolean on sale.order tracks whether pages 11 & 12 are bundled
inside the original application PDF. Computed helper
x_fc_has_signed_pages_11_12 ORs bundled flag with separate-file and
remote-signing presence so downstream gates can read one field.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 15:15:50 -04:00

61 lines
2.1 KiB
Python

# -*- coding: utf-8 -*-
import base64
from odoo.tests.common import TransactionCase, tagged
PDF_MAGIC = b'%PDF-1.4\n%fake pdf for tests'
def _b64_pdf():
return base64.b64encode(PDF_MAGIC)
@tagged('-at_install', 'post_install', 'fusion_claims')
class TestSignedPagesGate(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.partner = cls.env['res.partner'].create({'name': 'Test Client'})
cls.order = cls.env['sale.order'].create({
'partner_id': cls.partner.id,
'x_fc_adp_application_status': 'waiting_for_application',
})
def test_pages_11_12_in_original_defaults_false(self):
self.assertFalse(self.order.x_fc_pages_11_12_in_original)
def test_has_signed_pages_false_when_nothing_set(self):
self.assertFalse(self.order.x_fc_has_signed_pages_11_12)
def test_has_signed_pages_true_when_bundled_flag_set(self):
self.order.x_fc_pages_11_12_in_original = True
self.order.flush_recordset()
self.assertTrue(self.order.x_fc_has_signed_pages_11_12)
def test_has_signed_pages_true_when_separate_file_uploaded(self):
self.order.x_fc_signed_pages_11_12 = _b64_pdf()
self.order.flush_recordset()
self.assertTrue(self.order.x_fc_has_signed_pages_11_12)
def test_has_signed_pages_true_when_remote_request_signed(self):
self.env['fusion.page11.sign.request'].create({
'sale_order_id': self.order.id,
'signer_email': 'test@example.com',
'signer_type': 'client',
'state': 'signed',
})
self.order.invalidate_recordset()
self.assertTrue(self.order.x_fc_has_signed_pages_11_12)
def test_has_signed_pages_false_when_remote_request_only_sent(self):
self.env['fusion.page11.sign.request'].create({
'sale_order_id': self.order.id,
'signer_email': 'test@example.com',
'signer_type': 'client',
'state': 'sent',
})
self.order.invalidate_recordset()
self.assertFalse(self.order.x_fc_has_signed_pages_11_12)