From 436bc160e33a2336d6c38502a743045151d36dd5 Mon Sep 17 00:00:00 2001 From: git_admin Date: Mon, 27 Apr 2026 08:43:31 +0000 Subject: [PATCH] Tower: upload cetmix_tower_server 16.0.2.2.9 (via marketplace) --- .../cetmix_tower_server/tests/test_tools.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 addons/cetmix_tower_server/tests/test_tools.py diff --git a/addons/cetmix_tower_server/tests/test_tools.py b/addons/cetmix_tower_server/tests/test_tools.py new file mode 100644 index 0000000..98cd545 --- /dev/null +++ b/addons/cetmix_tower_server/tests/test_tools.py @@ -0,0 +1,38 @@ +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