Files
mockapi/tests/integration/test_server.py
7000pctAUTO 11d6b9c593
Some checks failed
CI / test (push) Failing after 10s
CI / build (push) Has been skipped
Add test files for CI
2026-03-22 21:24:22 +00:00

106 lines
3.4 KiB
Python

"""Integration tests for mock server."""
import pytest
from mockapi.core.spec_loader import SpecLoader
from mockapi.core.validator import OpenAPIValidator
from mockapi.core.server_generator import MockServerGenerator
from mockapi.core.config import Config
class TestMockServerIntegration:
"""Test cases for mock server integration."""
def test_load_spec(self):
"""Test loading a spec."""
spec_dict = {
"openapi": "3.0.0",
"info": {"title": "Test API", "version": "1.0.0"},
"paths": {
"/users": {
"get": {"operationId": "getUsers", "responses": {"200": {"description": "OK"}}},
},
},
}
generator = MockServerGenerator(spec_dict)
assert generator.spec is not None
def test_validate_spec(self):
"""Test validating a spec."""
spec = {
"openapi": "3.0.0",
"info": {"title": "Test", "version": "1.0.0"},
"paths": {},
}
validator = OpenAPIValidator(spec)
assert validator.is_valid() is True
def test_get_paths(self):
"""Test getting paths from spec."""
spec = {
"openapi": "3.0.0",
"info": {"title": "Test", "version": "1.0.0"},
"paths": {
"/users": {},
"/items": {},
},
}
validator = OpenAPIValidator(spec)
paths = validator.get_paths()
assert len(paths) == 2
def test_generate_mock_server(self):
"""Test generating a mock server."""
spec = {
"openapi": "3.0.0",
"info": {"title": "Test API", "version": "1.0.0"},
"paths": {
"/users": {
"get": {"operationId": "getUsers", "responses": {"200": {"description": "OK"}}},
},
},
}
config = Config()
generator = MockServerGenerator(spec, config)
app = generator.generate()
assert app is not None
def test_paths_have_operations(self):
"""Test that paths have operations defined."""
spec = {
"openapi": "3.0.0",
"info": {"title": "Test API", "version": "1.0.0"},
"paths": {
"/users": {
"get": {"operationId": "getUsers", "responses": {"200": {}}},
"post": {"operationId": "createUser", "responses": {"201": {}}},
},
},
}
validator = OpenAPIValidator(spec)
ops = validator.get_operations("/users")
assert "get" in ops
assert "post" in ops
def test_schemas_defined(self):
"""Test that schemas are properly defined."""
spec = {
"openapi": "3.0.0",
"info": {"title": "Test API", "version": "1.0.0"},
"paths": {},
"components": {
"schemas": {
"User": {
"type": "object",
"properties": {
"id": {"type": "integer"},
"name": {"type": "string"},
},
},
},
},
}
validator = OpenAPIValidator(spec)
schema = validator.get_schema("User")
assert schema is not None
assert schema["type"] == "object"