- Fixed import sorting in cli.py, __main__.py, detectors/__init__.py, base.py, python.py, rust.py, openapi.py, models/__init__.py - Removed unused imports (sys, asyncio, Observer, Text, Parameter, ParameterIn, HTTPMethod, DocConfig, List, Optional) - Removed trailing whitespace from blank lines - Split lines exceeding 100 characters - Added missing __init__ docstrings in generators and static/templates packages
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
"""Integration tests for CLI commands."""
|
{"""Integration tests for CLI commands."""
|
||||||
|
|
||||||
import pytest
|
|
||||||
import tempfile
|
import tempfile
|
||||||
import os
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from typer.testing import CliRunner
|
from typer.testing import CliRunner
|
||||||
|
|
||||||
from docgen.cli import app
|
from docgen.cli import app
|
||||||
|
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ class TestCLIDetect:
|
|||||||
def test_detect_no_files(self):
|
def test_detect_no_files(self):
|
||||||
"""Test detect with empty directory."""
|
"""Test detect with empty directory."""
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
result = runner.invoke(app, ["detect", tmpdir])
|
result = runner.invoke(app, ["detect", tmpdir])
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
@@ -23,7 +23,7 @@ class TestCLIDetect:
|
|||||||
def test_detect_python_fastapi(self):
|
def test_detect_python_fastapi(self):
|
||||||
"""Test detect with FastAPI code."""
|
"""Test detect with FastAPI code."""
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
code = '''
|
code = '''
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
@@ -39,7 +39,7 @@ def create_user():
|
|||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
py_file = Path(tmpdir) / "main.py"
|
py_file = Path(tmpdir) / "main.py"
|
||||||
py_file.write_text(code)
|
py_file.write_text(code)
|
||||||
|
|
||||||
result = runner.invoke(app, ["detect", tmpdir])
|
result = runner.invoke(app, ["detect", tmpdir])
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert "Found" in result.output or "endpoints" in result.output.lower()
|
assert "Found" in result.output or "endpoints" in result.output.lower()
|
||||||
@@ -47,7 +47,7 @@ def create_user():
|
|||||||
def test_detect_with_framework_filter(self):
|
def test_detect_with_framework_filter(self):
|
||||||
"""Test detect with specific framework."""
|
"""Test detect with specific framework."""
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
code = '''
|
code = '''
|
||||||
from flask import Flask
|
from flask import Flask
|
||||||
app = Flask(__name__)
|
app = Flask(__name__)
|
||||||
@@ -59,7 +59,7 @@ def get_items():
|
|||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
py_file = Path(tmpdir) / "app.py"
|
py_file = Path(tmpdir) / "app.py"
|
||||||
py_file.write_text(code)
|
py_file.write_text(code)
|
||||||
|
|
||||||
result = runner.invoke(app, ["detect", tmpdir, "--framework", "python"])
|
result = runner.invoke(app, ["detect", tmpdir, "--framework", "python"])
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ class TestCLIGenerate:
|
|||||||
def test_generate_html(self):
|
def test_generate_html(self):
|
||||||
"""Test HTML generation."""
|
"""Test HTML generation."""
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
code = '''
|
code = '''
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
@@ -82,7 +82,7 @@ def get_users():
|
|||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
py_file = Path(tmpdir) / "main.py"
|
py_file = Path(tmpdir) / "main.py"
|
||||||
py_file.write_text(code)
|
py_file.write_text(code)
|
||||||
|
|
||||||
output_dir = Path(tmpdir) / "docs"
|
output_dir = Path(tmpdir) / "docs"
|
||||||
result = runner.invoke(app, [
|
result = runner.invoke(app, [
|
||||||
"generate",
|
"generate",
|
||||||
@@ -90,7 +90,7 @@ def get_users():
|
|||||||
"--output", str(output_dir),
|
"--output", str(output_dir),
|
||||||
"--format", "html",
|
"--format", "html",
|
||||||
])
|
])
|
||||||
|
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert output_dir.exists()
|
assert output_dir.exists()
|
||||||
assert (output_dir / "index.html").exists()
|
assert (output_dir / "index.html").exists()
|
||||||
@@ -98,7 +98,7 @@ def get_users():
|
|||||||
def test_generate_markdown(self):
|
def test_generate_markdown(self):
|
||||||
"""Test Markdown generation."""
|
"""Test Markdown generation."""
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
code = '''
|
code = '''
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
@@ -110,7 +110,7 @@ def get_items():
|
|||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
py_file = Path(tmpdir) / "main.py"
|
py_file = Path(tmpdir) / "main.py"
|
||||||
py_file.write_text(code)
|
py_file.write_text(code)
|
||||||
|
|
||||||
output_dir = Path(tmpdir) / "docs"
|
output_dir = Path(tmpdir) / "docs"
|
||||||
result = runner.invoke(app, [
|
result = runner.invoke(app, [
|
||||||
"generate",
|
"generate",
|
||||||
@@ -118,14 +118,14 @@ def get_items():
|
|||||||
"--output", str(output_dir),
|
"--output", str(output_dir),
|
||||||
"--format", "markdown",
|
"--format", "markdown",
|
||||||
])
|
])
|
||||||
|
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert (output_dir / "README.md").exists()
|
assert (output_dir / "README.md").exists()
|
||||||
|
|
||||||
def test_generate_openapi(self):
|
def test_generate_openapi(self):
|
||||||
"""Test OpenAPI generation."""
|
"""Test OpenAPI generation."""
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
code = '''
|
code = '''
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
@@ -137,7 +137,7 @@ def get_products():
|
|||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
py_file = Path(tmpdir) / "main.py"
|
py_file = Path(tmpdir) / "main.py"
|
||||||
py_file.write_text(code)
|
py_file.write_text(code)
|
||||||
|
|
||||||
output_dir = Path(tmpdir) / "api"
|
output_dir = Path(tmpdir) / "api"
|
||||||
result = runner.invoke(app, [
|
result = runner.invoke(app, [
|
||||||
"generate",
|
"generate",
|
||||||
@@ -145,14 +145,14 @@ def get_products():
|
|||||||
"--output", str(output_dir),
|
"--output", str(output_dir),
|
||||||
"--format", "openapi",
|
"--format", "openapi",
|
||||||
])
|
])
|
||||||
|
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert (output_dir / "openapi.json").exists()
|
assert (output_dir / "openapi.json").exists()
|
||||||
|
|
||||||
def test_generate_with_custom_title(self):
|
def test_generate_with_custom_title(self):
|
||||||
"""Test generation with custom title."""
|
"""Test generation with custom title."""
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
code = '''
|
code = '''
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
@@ -164,7 +164,7 @@ def get_test():
|
|||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
py_file = Path(tmpdir) / "main.py"
|
py_file = Path(tmpdir) / "main.py"
|
||||||
py_file.write_text(code)
|
py_file.write_text(code)
|
||||||
|
|
||||||
output_dir = Path(tmpdir) / "docs"
|
output_dir = Path(tmpdir) / "docs"
|
||||||
result = runner.invoke(app, [
|
result = runner.invoke(app, [
|
||||||
"generate",
|
"generate",
|
||||||
@@ -174,7 +174,7 @@ def get_test():
|
|||||||
"--description", "A custom API description",
|
"--description", "A custom API description",
|
||||||
"--version", "2.0.0",
|
"--version", "2.0.0",
|
||||||
])
|
])
|
||||||
|
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
content = (output_dir / "index.html").read_text()
|
content = (output_dir / "index.html").read_text()
|
||||||
assert "My Custom API" in content
|
assert "My Custom API" in content
|
||||||
@@ -188,10 +188,10 @@ class TestCLIInit:
|
|||||||
def test_init_creates_config(self):
|
def test_init_creates_config(self):
|
||||||
"""Test init command creates configuration file."""
|
"""Test init command creates configuration file."""
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
with tempfile.TemporaryDirectory() as tmpdir:
|
with tempfile.TemporaryDirectory() as tmpdir:
|
||||||
result = runner.invoke(app, ["init", "--output", tmpdir])
|
result = runner.invoke(app, ["init", "--output", tmpdir])
|
||||||
|
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
config_file = Path(tmpdir) / "docgen.toml"
|
config_file = Path(tmpdir) / "docgen.toml"
|
||||||
assert config_file.exists()
|
assert config_file.exists()
|
||||||
@@ -204,6 +204,6 @@ class TestCLIVersion:
|
|||||||
"""Test version command displays version."""
|
"""Test version command displays version."""
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
result = runner.invoke(app, ["version"])
|
result = runner.invoke(app, ["version"])
|
||||||
|
|
||||||
assert result.exit_code == 0
|
assert result.exit_code == 0
|
||||||
assert "DocGen-CLI" in result.output
|
assert "DocGen-CLI" in result.output
|
||||||
|
|||||||
Reference in New Issue
Block a user