(improvement): Adds tests for UUID String Format

This commit is contained in:
2025-08-20 00:30:54 -03:00
parent d3a2f1e76c
commit 97aed6e9aa
2 changed files with 30 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ from pydantic import AnyUrl, EmailStr
from datetime import date, datetime, time, timedelta from datetime import date, datetime, time, timedelta
from ipaddress import IPv4Address, IPv6Address from ipaddress import IPv4Address, IPv6Address
from unittest import TestCase from unittest import TestCase
from uuid import UUID
class TestStringTypeParser(TestCase): class TestStringTypeParser(TestCase):
@@ -131,6 +132,18 @@ class TestStringTypeParser(TestCase):
self.assertEqual(type_parsing, expected_type) self.assertEqual(type_parsing, expected_type)
def test_string_parser_with_uuid_format(self):
parser = StringTypeParser()
properties = {
"type": "string",
"format": "uuid",
}
type_parsing, type_validator = parser.from_properties("placeholder", properties)
self.assertEqual(type_parsing, UUID)
def test_string_parser_with_time_format(self): def test_string_parser_with_time_format(self):
parser = StringTypeParser() parser = StringTypeParser()

View File

@@ -4,6 +4,7 @@ from pydantic import AnyUrl, BaseModel
from ipaddress import IPv4Address, IPv6Address from ipaddress import IPv4Address, IPv6Address
from unittest import TestCase from unittest import TestCase
from uuid import UUID
def is_pydantic_model(cls): def is_pydantic_model(cls):
@@ -493,6 +494,22 @@ class TestSchemaConverter(TestCase):
with self.assertRaises(ValueError): with self.assertRaises(ValueError):
model(ip="invalid-ipv6") model(ip="invalid-ipv6")
def test_string_format_uuid(self):
schema = {
"title": "UUIDTest",
"type": "object",
"properties": {"id": {"type": "string", "format": "uuid"}},
}
model = SchemaConverter.build(schema)
self.assertEqual(
model(id="123e4567-e89b-12d3-a456-426614174000").id,
UUID("123e4567-e89b-12d3-a456-426614174000"),
)
with self.assertRaises(ValueError):
model(id="invalid-uuid")
def test_string_format_hostname(self): def test_string_format_hostname(self):
schema = { schema = {
"title": "HostnameTest", "title": "HostnameTest",