"""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"