(improvement): Adds More Type Formats to String Parser #42

Merged
HideyoshiNakazone merged 2 commits from improvement/better-string-validations into main 2025-08-20 03:31:46 +00:00
2 changed files with 30 additions and 0 deletions
Showing only changes of commit 97aed6e9aa - Show all commits

View File

@@ -5,6 +5,7 @@ from pydantic import AnyUrl, EmailStr
from datetime import date, datetime, time, timedelta
from ipaddress import IPv4Address, IPv6Address
from unittest import TestCase
from uuid import UUID
class TestStringTypeParser(TestCase):
@@ -131,6 +132,18 @@ class TestStringTypeParser(TestCase):
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):
parser = StringTypeParser()

View File

@@ -4,6 +4,7 @@ from pydantic import AnyUrl, BaseModel
from ipaddress import IPv4Address, IPv6Address
from unittest import TestCase
from uuid import UUID
def is_pydantic_model(cls):
@@ -493,6 +494,22 @@ class TestSchemaConverter(TestCase):
with self.assertRaises(ValueError):
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):
schema = {
"title": "HostnameTest",