Split optional-provided field=something and typing.Optional=@nullable field options, add pytest

This commit is contained in:
2025-07-12 02:15:51 +03:00
parent 8a25d234c8
commit 5b4eba5190
7 changed files with 198 additions and 36 deletions

34
tests/test_basic.py Normal file
View File

@@ -0,0 +1,34 @@
from __future__ import annotations
from dataclasses import dataclass
from src.megasniff import SchemaInflatorGenerator
def test_basic_constructor():
class A:
def __init__(self, a: int):
self.a = a
infl = SchemaInflatorGenerator()
fn = infl.schema_to_generator(A)
a = fn({'a': 42})
assert a.a == 42
@dataclass
class CircA:
b: CircB
@dataclass
class CircB:
a: CircA | None
def test_circular():
infl = SchemaInflatorGenerator()
fn = infl.schema_to_generator(CircA)
a = fn({'b': {'a': None}})
return isinstance(a.b, CircB)