Initial upload: ConfigConvert CLI with full test suite and CI/CD
This commit is contained in:
71
tests/test_schema.py
Normal file
71
tests/test_schema.py
Normal file
@@ -0,0 +1,71 @@
|
||||
"""Tests for JSON Schema generation."""
|
||||
|
||||
import pytest
|
||||
|
||||
from config_convert.utils import generate_schema
|
||||
|
||||
|
||||
class TestGenerateSchema:
|
||||
def test_string_schema(self):
|
||||
result = generate_schema("hello")
|
||||
assert result["type"] == "string"
|
||||
|
||||
def test_integer_schema(self):
|
||||
result = generate_schema(123)
|
||||
assert result["type"] == "integer"
|
||||
|
||||
def test_float_schema(self):
|
||||
result = generate_schema(3.14)
|
||||
assert result["type"] == "number"
|
||||
|
||||
def test_boolean_schema(self):
|
||||
result = generate_schema(True)
|
||||
assert result["type"] == "boolean"
|
||||
|
||||
def test_null_schema(self):
|
||||
result = generate_schema(None)
|
||||
assert result["type"] == "null"
|
||||
|
||||
def test_array_schema(self):
|
||||
result = generate_schema([1, 2, 3])
|
||||
assert result["type"] == "array"
|
||||
|
||||
def test_object_schema(self):
|
||||
result = generate_schema({"name": "test"})
|
||||
assert result["type"] == "object"
|
||||
assert "properties" in result
|
||||
|
||||
def test_nested_object_schema(self):
|
||||
data = {"database": {"host": "localhost", "port": 5432}}
|
||||
result = generate_schema(data)
|
||||
assert result["type"] == "object"
|
||||
assert "properties" in result
|
||||
assert "database" in result["properties"]
|
||||
assert result["properties"]["database"]["type"] == "object"
|
||||
|
||||
def test_object_with_array_schema(self):
|
||||
data = {"tags": ["a", "b"]}
|
||||
result = generate_schema(data)
|
||||
assert result["type"] == "object"
|
||||
assert result["properties"]["tags"]["type"] == "array"
|
||||
|
||||
def test_complex_schema(self):
|
||||
data = {
|
||||
"name": "test",
|
||||
"version": "1.0.0",
|
||||
"enabled": True,
|
||||
"count": 42,
|
||||
"ratio": 3.14,
|
||||
"database": {
|
||||
"host": "localhost",
|
||||
"port": 5432
|
||||
},
|
||||
"tags": ["a", "b", "c"]
|
||||
}
|
||||
result = generate_schema(data)
|
||||
assert result["type"] == "object"
|
||||
assert "properties" in result
|
||||
assert result["properties"]["name"]["type"] == "string"
|
||||
assert result["properties"]["count"]["type"] == "integer"
|
||||
assert result["properties"]["enabled"]["type"] == "boolean"
|
||||
assert result["properties"]["ratio"]["type"] == "number"
|
||||
Reference in New Issue
Block a user