69 lines
3.2 KiB
Python
69 lines
3.2 KiB
Python
from odoo.tests import tagged
|
|
from odoo.tests.common import TransactionCase
|
|
|
|
from odoo.addons.account.tools import (
|
|
is_valid_structured_reference_be,
|
|
is_valid_structured_reference_fi,
|
|
is_valid_structured_reference_no_se,
|
|
is_valid_structured_reference_iso,
|
|
)
|
|
|
|
|
|
@tagged('standard', 'at_install')
|
|
class StructuredReferenceTest(TransactionCase):
|
|
|
|
def test_structured_reference_iso(self):
|
|
# Accepts references in structured format
|
|
self.assertTrue(is_valid_structured_reference_iso(' RF18 5390 0754 7034 '))
|
|
# Accept references in unstructured format
|
|
self.assertTrue(is_valid_structured_reference_iso(' RF18539007547034'))
|
|
# Validates with zero's added in front
|
|
self.assertTrue(is_valid_structured_reference_iso('RF18000000000539007547034'))
|
|
|
|
# Does not validate invalid structured format
|
|
self.assertFalse(is_valid_structured_reference_iso('18539007547034RF'))
|
|
# Does not validate invalid checksum
|
|
self.assertFalse(is_valid_structured_reference_iso('RF17539007547034'))
|
|
|
|
def test_structured_reference_be(self):
|
|
# Accepts references in both structured formats
|
|
self.assertTrue(is_valid_structured_reference_be(' +++020/3430/57642+++'))
|
|
self.assertTrue(is_valid_structured_reference_be('***020/3430/57642*** '))
|
|
# Accept references in unstructured format
|
|
self.assertTrue(is_valid_structured_reference_be(' 020343057642'))
|
|
# Validates edge case where result of % 97 = 0
|
|
self.assertTrue(is_valid_structured_reference_be('020343053497'))
|
|
|
|
# Does not validate invalid structured format
|
|
self.assertFalse(is_valid_structured_reference_be('***02/03430/57642***'))
|
|
# Does not validate invalid checksum
|
|
self.assertFalse(is_valid_structured_reference_be('020343057641'))
|
|
|
|
def test_structured_reference_fi(self):
|
|
# Accepts references in structured format
|
|
self.assertTrue(is_valid_structured_reference_fi('2023 0000 98'))
|
|
# Accept references in unstructured format
|
|
self.assertTrue(is_valid_structured_reference_fi('2023000098'))
|
|
# Validates with zero's added in front
|
|
self.assertTrue(is_valid_structured_reference_fi('00000000002023000098'))
|
|
|
|
# Does not validate invalid structured format
|
|
self.assertFalse(is_valid_structured_reference_fi('2023/0000/98'))
|
|
# Does not validate invalid length
|
|
self.assertFalse(is_valid_structured_reference_fi('000000000002023000098'))
|
|
# Does not validate invalid checksum
|
|
self.assertFalse(is_valid_structured_reference_fi('2023000095'))
|
|
|
|
def test_structured_reference_no_se(self):
|
|
# Accepts references in structured format
|
|
self.assertTrue(is_valid_structured_reference_no_se('1234 5678 97'))
|
|
# Accept references in unstructured format
|
|
self.assertTrue(is_valid_structured_reference_no_se('1234567897'))
|
|
# Validates with zero's added in front
|
|
self.assertTrue(is_valid_structured_reference_no_se('000001234567897'))
|
|
|
|
# Does not validate invalid structured format
|
|
self.assertFalse(is_valid_structured_reference_no_se('1234/5678/97'))
|
|
# Does not validate invalid checksum
|
|
self.assertFalse(is_valid_structured_reference_no_se('1234567898'))
|