Files
computer-playbook/tests/unit/utils/manager/test_value_generator.py
T

62 lines
2.0 KiB
Python

import base64
import re
import unittest
from utils.manager.value_generator import ValueGenerator
class TestValueGenerator(unittest.TestCase):
def setUp(self):
self.vg = ValueGenerator()
def test_generate_secure_alphanumeric(self):
s = self.vg.generate_secure_alphanumeric(64)
self.assertEqual(len(s), 64)
self.assertTrue(re.fullmatch(r"[A-Za-z0-9]{64}", s))
def test_generate_value_random_hex(self):
v = self.vg.generate_value("random_hex")
self.assertTrue(re.fullmatch(r"[0-9a-f]{128}", v))
def test_generate_value_random_hex_32(self):
v = self.vg.generate_value("random_hex_32")
self.assertTrue(re.fullmatch(r"[0-9a-f]{64}", v))
def test_generate_value_random_hex_16(self):
v = self.vg.generate_value("random_hex_16")
self.assertTrue(re.fullmatch(r"[0-9a-f]{32}", v))
def test_generate_value_sha256(self):
v = self.vg.generate_value("sha256")
self.assertTrue(re.fullmatch(r"[0-9a-f]{64}", v))
def test_generate_value_sha1(self):
v = self.vg.generate_value("sha1")
self.assertTrue(re.fullmatch(r"[0-9a-f]{40}", v))
def test_generate_value_base64_prefixed_32(self):
v = self.vg.generate_value("base64_prefixed_32")
self.assertTrue(v.startswith("base64:"))
raw = v.split("base64:", 1)[1].encode()
decoded = base64.b64decode(raw)
self.assertEqual(len(decoded), 32)
def test_generate_value_alphanumeric(self):
v = self.vg.generate_value("alphanumeric")
self.assertEqual(len(v), 64)
self.assertTrue(re.fullmatch(r"[A-Za-z0-9]{64}", v))
def test_generate_value_bcrypt(self):
v = self.vg.generate_value("bcrypt")
# your implementation replaces '$' chars
self.assertNotIn("$", v)
self.assertGreater(len(v), 20)
def test_generate_value_unknown(self):
v = self.vg.generate_value("does_not_exist")
self.assertEqual(v, "undefined")
if __name__ == "__main__":
unittest.main()