(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 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",