43 lines
1.5 KiB
Python
43 lines
1.5 KiB
Python
from odoo.tests.common import TransactionCase, tagged
|
|
from odoo.addons.fusion_accounting_bank_rec.services.memo_tokenizer import tokenize_memo
|
|
|
|
|
|
@tagged('post_install', '-at_install')
|
|
class TestMemoTokenizer(TransactionCase):
|
|
|
|
def test_extracts_rbc_etf_reference(self):
|
|
tokens = tokenize_memo("RBC ETF DEP REF 4831")
|
|
self.assertIn('RBC', tokens)
|
|
self.assertIn('ETF', tokens)
|
|
self.assertIn('REF4831', tokens)
|
|
|
|
def test_extracts_cheque_number(self):
|
|
tokens = tokenize_memo("CHEQUE 4827 - WESTIN PLATING")
|
|
self.assertIn('CHEQUE4827', tokens)
|
|
self.assertIn('WESTIN', tokens)
|
|
self.assertIn('PLATING', tokens)
|
|
|
|
def test_strips_noise_tokens(self):
|
|
tokens = tokenize_memo("PAYMENT - INV - DEP - 12345")
|
|
self.assertNotIn('-', tokens)
|
|
self.assertEqual([t for t in tokens if len(t) <= 1], [])
|
|
|
|
def test_handles_empty_memo(self):
|
|
self.assertEqual(tokenize_memo(""), [])
|
|
self.assertEqual(tokenize_memo(None), [])
|
|
|
|
def test_canadian_french_memo(self):
|
|
tokens = tokenize_memo("PAIEMENT VIREMENT BANCAIRE")
|
|
self.assertIn('PAIEMENT', tokens)
|
|
self.assertIn('VIREMENT', tokens)
|
|
|
|
def test_normalises_case(self):
|
|
tokens = tokenize_memo("rbc etf dep ref 4831")
|
|
self.assertIn('RBC', tokens)
|
|
|
|
def test_handles_special_characters(self):
|
|
tokens = tokenize_memo("RBC*PAYMENT/REF#4831")
|
|
self.assertIn('RBC', tokens)
|
|
self.assertIn('PAYMENT', tokens)
|
|
self.assertIn('REF4831', tokens)
|