Initial upload: ConfDoc v0.1.0 - Config validation and documentation generator
This commit is contained in:
109
tests/test_docs.py
Normal file
109
tests/test_docs.py
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
import pytest
|
||||||
|
from confdoc.docs.generator import DocGenerator
|
||||||
|
|
||||||
|
|
||||||
|
class TestDocGenerator:
|
||||||
|
def test_generate_simple_schema(self):
|
||||||
|
generator = DocGenerator()
|
||||||
|
schema = {
|
||||||
|
"title": "Test Config",
|
||||||
|
"description": "A test configuration schema",
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"name": {"type": "string", "description": "The name"},
|
||||||
|
"value": {"type": "integer", "description": "The value"}
|
||||||
|
},
|
||||||
|
"required": ["name"]
|
||||||
|
}
|
||||||
|
result = generator.generate(schema, "Test Documentation")
|
||||||
|
assert "# Test Documentation" in result
|
||||||
|
assert "Test Config" in result
|
||||||
|
assert "A test configuration schema" in result
|
||||||
|
|
||||||
|
def test_generate_with_properties_table(self):
|
||||||
|
generator = DocGenerator()
|
||||||
|
schema = {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"name": {"type": "string", "description": "The name"},
|
||||||
|
"enabled": {"type": "boolean", "description": "Enable feature", "default": True}
|
||||||
|
},
|
||||||
|
"required": ["name"]
|
||||||
|
}
|
||||||
|
result = generator.generate(schema)
|
||||||
|
assert "Configuration Options" in result
|
||||||
|
assert "`name`" in result
|
||||||
|
assert "`enabled`" in result
|
||||||
|
assert "Yes" in result
|
||||||
|
assert "No" in result
|
||||||
|
|
||||||
|
def test_format_type(self):
|
||||||
|
generator = DocGenerator()
|
||||||
|
assert generator._format_type("string") == "string"
|
||||||
|
assert generator._format_type("integer") == "integer"
|
||||||
|
assert generator._format_type("boolean") == "boolean"
|
||||||
|
assert generator._format_type(["string", "integer"]) == "string, integer"
|
||||||
|
|
||||||
|
def test_format_default(self):
|
||||||
|
generator = DocGenerator()
|
||||||
|
assert generator._format_default(None) == "-"
|
||||||
|
assert generator._format_default(True) == "true"
|
||||||
|
assert generator._format_default("test") == "`test`"
|
||||||
|
assert generator._format_default(123) == "123"
|
||||||
|
|
||||||
|
def test_generate_with_definitions(self):
|
||||||
|
generator = DocGenerator()
|
||||||
|
schema = {
|
||||||
|
"definitions": {
|
||||||
|
"Address": {
|
||||||
|
"type": "object",
|
||||||
|
"description": "A mailing address",
|
||||||
|
"properties": {
|
||||||
|
"street": {"type": "string"},
|
||||||
|
"city": {"type": "string"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"address": {"$ref": "#/definitions/Address"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result = generator.generate(schema)
|
||||||
|
assert "Definitions" in result
|
||||||
|
assert "Address" in result
|
||||||
|
|
||||||
|
def test_generate_with_enum(self):
|
||||||
|
generator = DocGenerator()
|
||||||
|
schema = {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"status": {
|
||||||
|
"type": "string",
|
||||||
|
"description": "The status",
|
||||||
|
"enum": ["active", "inactive"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result = generator.generate(schema)
|
||||||
|
assert "Allowed values" in result
|
||||||
|
assert "active" in result
|
||||||
|
assert "inactive" in result
|
||||||
|
|
||||||
|
def test_generate_empty_schema(self):
|
||||||
|
generator = DocGenerator()
|
||||||
|
schema = {"type": "object"}
|
||||||
|
result = generator.generate(schema)
|
||||||
|
assert "# Configuration Documentation" in result
|
||||||
|
|
||||||
|
def test_generate_table_section(self):
|
||||||
|
generator = DocGenerator()
|
||||||
|
items = [
|
||||||
|
{"name": "item1", "type": "string"},
|
||||||
|
{"name": "item2", "type": "integer"}
|
||||||
|
]
|
||||||
|
columns = ["Name", "Type"]
|
||||||
|
result = generator.generate_table_section("Test Items", items, columns)
|
||||||
|
assert "## Test Items" in result
|
||||||
|
assert "item1" in result
|
||||||
|
assert "item2" in result
|
||||||
Reference in New Issue
Block a user