feat: fixes error on validation of IPAddresses by Upgrading Pydantic min version to v2.12.4, fixes internal tests implementation and fixes minor logic errors

This commit is contained in:
2025-11-23 02:15:41 -03:00
parent 9bc16ff1aa
commit c9330dfd6d
5 changed files with 227 additions and 136 deletions

View File

@@ -3,6 +3,7 @@ from jambo.parser import StringTypeParser
from pydantic import AnyUrl, EmailStr
import unittest
from datetime import date, datetime, time, timedelta, timezone
from ipaddress import IPv4Address, IPv6Address, ip_address
from unittest import TestCase
@@ -126,7 +127,7 @@ class TestStringTypeParser(TestCase):
parser = StringTypeParser()
formats = {"ipv4": IPv4Address, "ipv6": IPv6Address}
examples = {"ipv4": "192.168.1.1", "ipv6": "::1"}
examples = {"ipv4": ["192.168.1.1"], "ipv6": ["::1"]}
for ip_format, expected_type in formats.items():
example = examples[ip_format]
@@ -134,7 +135,7 @@ class TestStringTypeParser(TestCase):
properties = {
"type": "string",
"format": ip_format,
"examples": [example],
"examples": example,
}
type_parsing, type_validator = parser.from_properties(
@@ -142,7 +143,9 @@ class TestStringTypeParser(TestCase):
)
self.assertEqual(type_parsing, expected_type)
self.assertEqual(type_validator["examples"], [ip_address(example)])
self.assertEqual(
type_validator["examples"], [ip_address(e) for e in example]
)
def test_string_parser_with_uuid_format(self):
parser = StringTypeParser()
@@ -186,7 +189,7 @@ class TestStringTypeParser(TestCase):
parser = StringTypeParser()
format_types = {
"hostname": "hostname_example",
"hostname": "example.com",
}
for format_type, example_type in format_types.items():
@@ -296,6 +299,7 @@ class TestStringTypeParser(TestCase):
],
)
@unittest.skip("Duration parsing not yet implemented")
def test_string_parser_with_timedelta_format(self):
parser = StringTypeParser()