From 9e5e62ad7fd6ca00b7119d6d95dbb1dce90b367d Mon Sep 17 00:00:00 2001 From: 7000pctAUTO Date: Sun, 22 Mar 2026 21:24:20 +0000 Subject: [PATCH] Add test files for CI --- tests/unit/test_validator.py | 120 ++++++++++++++++++++++------------- 1 file changed, 75 insertions(+), 45 deletions(-) diff --git a/tests/unit/test_validator.py b/tests/unit/test_validator.py index aacc472..7654846 100644 --- a/tests/unit/test_validator.py +++ b/tests/unit/test_validator.py @@ -5,62 +5,84 @@ import pytest from mockapi.core.validator import OpenAPIValidator -VALID_SPEC = { - "openapi": "3.0.3", - "info": {"title": "Test API", "version": "1.0.0"}, - "paths": { - "/users": { - "get": { - "operationId": "listUsers", - "responses": {"200": {"description": "Success"}}, - } - } - }, -} - - class TestOpenAPIValidator: """Test cases for OpenAPIValidator.""" def test_validate_valid_spec(self): """Test validating a valid OpenAPI spec.""" - validator = OpenAPIValidator(VALID_SPEC) + spec = { + "openapi": "3.0.0", + "info": {"title": "Test", "version": "1.0.0"}, + "paths": {}, + } + validator = OpenAPIValidator(spec) errors = validator.validate() assert len(errors) == 0 def test_is_valid_returns_true_for_valid_spec(self): """Test is_valid returns True for valid spec.""" - validator = OpenAPIValidator(VALID_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 extracting paths from spec.""" - validator = OpenAPIValidator(VALID_SPEC) + """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 "/users" in paths + assert "/items" in paths def test_get_operations(self): - """Test extracting operations for a path.""" - validator = OpenAPIValidator(VALID_SPEC) - operations = validator.get_operations("/users") - assert "get" in operations + """Test getting operations for a path.""" + spec = { + "openapi": "3.0.0", + "info": {"title": "Test", "version": "1.0.0"}, + "paths": { + "/users": { + "get": {"operationId": "getUsers"}, + "post": {"operationId": "createUser"}, + }, + }, + } + validator = OpenAPIValidator(spec) + ops = validator.get_operations("/users") + assert "get" in ops + assert "post" in ops def test_get_operations_invalid_path(self): - """Test getting operations for non-existent path.""" - validator = OpenAPIValidator(VALID_SPEC) - operations = validator.get_operations("/nonexistent") - assert len(operations) == 0 + """Test getting operations for invalid path.""" + spec = { + "openapi": "3.0.0", + "info": {"title": "Test", "version": "1.0.0"}, + "paths": {}, + } + validator = OpenAPIValidator(spec) + ops = validator.get_operations("/nonexistent") + assert len(ops) == 0 def test_get_schema(self): - """Test extracting schema by name.""" - spec = VALID_SPEC.copy() - spec["components"] = { - "schemas": { - "User": { - "type": "object", - "properties": {"name": {"type": "string"}}, - } - } + """Test getting a schema by name.""" + spec = { + "openapi": "3.0.0", + "info": {"title": "Test", "version": "1.0.0"}, + "paths": {}, + "components": { + "schemas": { + "User": {"type": "object", "properties": {"name": {"type": "string"}}}, + }, + }, } validator = OpenAPIValidator(spec) schema = validator.get_schema("User") @@ -69,21 +91,29 @@ class TestOpenAPIValidator: def test_get_schema_not_found(self): """Test getting non-existent schema.""" - validator = OpenAPIValidator(VALID_SPEC) + spec = { + "openapi": "3.0.0", + "info": {"title": "Test", "version": "1.0.0"}, + "paths": {}, + } + validator = OpenAPIValidator(spec) schema = validator.get_schema("NonExistent") assert schema is None def test_get_all_schemas(self): - """Test extracting all schemas.""" - spec = VALID_SPEC.copy() - spec["components"] = { - "schemas": { - "User": {"type": "object"}, - "Product": {"type": "object"}, - } + """Test getting all schemas.""" + spec = { + "openapi": "3.0.0", + "info": {"title": "Test", "version": "1.0.0"}, + "paths": {}, + "components": { + "schemas": { + "User": {"type": "object"}, + "Item": {"type": "object"}, + }, + }, } validator = OpenAPIValidator(spec) schemas = validator.get_all_schemas() - assert len(schemas) == 2 assert "User" in schemas - assert "Product" in schemas + assert "Item" in schemas \ No newline at end of file