__init__
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import unittest
|
||||
|
||||
from uvm.errors import ValidationError
|
||||
from uvm.validation import parse_cpu, parse_password, parse_ram, parse_username
|
||||
|
||||
|
||||
class ValidationTests(unittest.TestCase):
|
||||
def test_parse_ram_uses_mib_by_default(self) -> None:
|
||||
self.assertEqual(parse_ram("512"), 512)
|
||||
self.assertEqual(parse_ram("1G"), 1024)
|
||||
self.assertEqual(parse_ram("512MiB"), 512)
|
||||
self.assertEqual(parse_ram("134217728B"), 128)
|
||||
|
||||
def test_parse_ram_rejects_small_and_invalid_values(self) -> None:
|
||||
for value in ("127M", "nonsense", "-1G", "1T"):
|
||||
with self.subTest(value=value):
|
||||
with self.assertRaises(ValidationError):
|
||||
parse_ram(value)
|
||||
|
||||
def test_parse_cpu_requires_a_positive_finite_value(self) -> None:
|
||||
self.assertEqual(parse_cpu("0.5"), 0.5)
|
||||
for value in ("0", "-1", "nan", "inf", "cpu"):
|
||||
with self.subTest(value=value):
|
||||
with self.assertRaises(ValidationError):
|
||||
parse_cpu(value)
|
||||
|
||||
def test_guest_username_is_validated(self) -> None:
|
||||
self.assertEqual(parse_username("root"), "root")
|
||||
self.assertEqual(parse_username("app-user"), "app-user")
|
||||
for value in ("", "Root", "9user", "user name", "a" * 33):
|
||||
with self.subTest(value=value):
|
||||
with self.assertRaises(ValidationError):
|
||||
parse_username(value)
|
||||
|
||||
def test_guest_password_rejects_empty_control_or_oversized_values(self) -> None:
|
||||
self.assertEqual(
|
||||
parse_password("correct horse battery staple"),
|
||||
"correct horse battery staple",
|
||||
)
|
||||
for value in ("", "line\nbreak", "tab\tvalue", "a" * 129):
|
||||
with self.subTest(value=value):
|
||||
with self.assertRaises(ValidationError):
|
||||
parse_password(value)
|
||||
Reference in New Issue
Block a user