Files
odoo-addons/addons/cetmix_tower_server/tests/test_tools.py

39 lines
1.4 KiB
Python

from odoo.tests import common
from ..models.tools import CHARS, generate_random_id
class TestTools(common.TransactionCase):
"""Test class for tools module."""
def test_generate_random_id(self):
"""Test random id generation"""
# Test single section
result = generate_random_id()
self.assertEqual(len(result), 4) # Default length is 4
self.assertTrue(all(c in CHARS for c in result)) # All chars from CHARS
# Test multiple sections
result = generate_random_id(sections=2)
sections = result.split("-")
self.assertEqual(len(sections), 2)
self.assertTrue(all(len(s) == 4 for s in sections))
self.assertTrue(all(c in CHARS for s in sections for c in s))
# Test custom population
result = generate_random_id(population=6)
self.assertEqual(len(result), 6)
# Test custom separator
result = generate_random_id(sections=2, separator="_")
self.assertIn("_", result)
self.assertEqual(len(result.split("_")), 2)
# Test invalid inputs
self.assertIsNone(generate_random_id(sections=0))
self.assertIsNone(generate_random_id(population=-1))
# Test empty separator
result = generate_random_id(sections=3, separator="")
self.assertEqual(len(result), 12) # 3 sections of 4 chars with no separator