Files
localapi-docs/tests/test_generator.py
7000pctAUTO 6cb15ff2da
Some checks failed
CI/CD / test (push) Has been cancelled
fix: resolve CI linting issues
2026-02-01 17:30:07 +00:00

157 lines
5.1 KiB
Python

import pytest
from src.core.models import Schema
from src.utils.examples import ExampleGenerator, generate_examples_from_schema
class TestExampleGenerator:
def test_generate_string(self):
schema = Schema(type="string")
generator = ExampleGenerator()
result = generator.generate(schema)
assert result == "string"
def test_generate_string_with_format(self):
schema = Schema(type="string", format="email")
generator = ExampleGenerator()
result = generator.generate(schema)
assert result == "user@example.com"
def test_generate_string_with_date_format(self):
schema = Schema(type="string", format="date")
generator = ExampleGenerator()
result = generator.generate(schema)
assert result == "2024-01-01"
def test_generate_string_with_datetime_format(self):
schema = Schema(type="string", format="date-time")
generator = ExampleGenerator()
result = generator.generate(schema)
assert "T" in result
def test_generate_integer(self):
schema = Schema(type="integer")
generator = ExampleGenerator()
result = generator.generate(schema)
assert result == 0
assert isinstance(result, int)
def test_generate_integer_with_default(self):
schema = Schema(type="integer", default=42)
generator = ExampleGenerator()
result = generator.generate(schema)
assert result == 42
def test_generate_number(self):
schema = Schema(type="number")
generator = ExampleGenerator()
result = generator.generate(schema)
assert result == 0.0
assert isinstance(result, float)
def test_generate_boolean(self):
schema = Schema(type="boolean")
generator = ExampleGenerator()
result = generator.generate(schema)
assert result is False
assert isinstance(result, bool)
def test_generate_boolean_with_example(self):
schema = Schema(type="boolean", example=True)
generator = ExampleGenerator()
result = generator.generate(schema)
assert result is True
def test_generate_array(self):
schema = Schema(type="array", items={"type": "string"})
generator = ExampleGenerator()
result = generator.generate(schema)
assert isinstance(result, list)
assert len(result) == 1
assert result[0] == "string"
def test_generate_object(self):
schema = Schema(
type="object",
properties={
"name": Schema(type="string"),
"age": Schema(type="integer")
},
required=["name"]
)
generator = ExampleGenerator()
result = generator.generate(schema)
assert isinstance(result, dict)
assert "name" in result
assert "age" in result
def test_generate_object_with_enum(self):
schema = Schema(
type="object",
properties={
"status": Schema(type="string", enum=["active", "inactive"])
}
)
generator = ExampleGenerator()
result = generator.generate(schema)
assert isinstance(result, dict)
assert result["status"] in ["active", "inactive"]
def test_generate_with_example(self):
schema = Schema(type="string", example="custom-value")
generator = ExampleGenerator()
result = generator.generate(schema)
assert result == "custom-value"
def test_generate_null_schema(self):
generator = ExampleGenerator()
result = generator.generate(None)
assert result is None
def test_generate_with_all_of(self):
schema = Schema(all_of=[
{"type": "object", "properties": {"name": {"type": "string"}}},
{"type": "object", "properties": {"email": {"type": "string"}}}
])
generator = ExampleGenerator()
result = generator.generate(schema)
assert isinstance(result, dict)
assert "name" in result
assert "email" in result
def test_generate_with_any_of(self):
schema = Schema(any_of=[
{"type": "string"},
{"type": "integer"}
])
generator = ExampleGenerator()
result = generator.generate(schema)
assert result is not None
def test_generate_with_one_of(self):
schema = Schema(one_of=[
{"type": "string"},
{"type": "integer"}
])
generator = ExampleGenerator()
result = generator.generate(schema)
assert result is not None
class TestGenerateExamplesFromSchema:
def test_generate_from_dict_schema(self):
schema = {"type": "string"}
result = generate_examples_from_schema(schema)
assert result == "string"
def test_generate_with_components(self):
schemas = {"User": Schema(type="object", properties={"name": Schema(type="string")})}
generator = ExampleGenerator(schemas)
result = generator.generate({"$ref": "#/components/schemas/User"})
assert isinstance(result, dict)
assert "name" in result
if __name__ == "__main__":
pytest.main([__file__, "-v"])