39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import pytest
|
|
from src.core.generator import generate_docs
|
|
from pathlib import Path
|
|
|
|
|
|
def test_generate_html(tmp_path, sample_spec):
|
|
output = tmp_path / "test.html"
|
|
generate_docs(str(sample_spec), str(output), 'html')
|
|
assert output.exists()
|
|
html = output.read_text()
|
|
assert '<html>' in html
|
|
assert 'API Documentation' in html
|
|
|
|
|
|
def test_generate_markdown(tmp_path, sample_spec):
|
|
output = tmp_path / "test.md"
|
|
generate_docs(str(sample_spec), str(output), 'markdown')
|
|
assert output.exists()
|
|
md = output.read_text()
|
|
assert '# API Documentation' in md
|
|
|
|
|
|
def test_generate_json(tmp_path, sample_spec):
|
|
output = tmp_path / "test.json"
|
|
generate_docs(str(sample_spec), str(output), 'json')
|
|
assert output.exists()
|
|
import json
|
|
data = json.loads(output.read_text())
|
|
assert 'title' in data
|
|
assert 'endpoints' in data
|
|
|
|
|
|
def test_invalid_spec(tmp_path):
|
|
invalid_spec = tmp_path / "invalid.json"
|
|
invalid_spec.write_text('{"invalid": "spec"}')
|
|
|
|
with pytest.raises(ValueError):
|
|
generate_docs(str(invalid_spec), 'html')
|