Fix all failing tests and pytest collection warnings

Fixed MagicMock comparison errors across multiple test suites by:
- Adding proper ModelCapabilities mocks with real values instead of MagicMock objects
- Updating test_auto_mode.py with correct provider mocking for model availability tests
- Updating test_thinking_modes.py with proper capabilities mocking in all thinking mode tests
- Updating test_tools.py with proper capabilities mocking for CodeReview and Analyze tools
- Fixing test_large_prompt_handling.py by adding proper provider mocking to prevent errors before large prompt detection

Fixed pytest collection warnings by:
- Renaming TestGenRequest to TestGenerationRequest to avoid pytest collecting it as a test class
- Renaming TestGenTool to TestGenerationTool to avoid pytest collecting it as a test class
- Updated all imports and references across server.py, tools/__init__.py, and test files

All 459 tests now pass without warnings or MagicMock comparison errors.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Fahad
2025-06-16 06:02:12 +04:00
parent 8c3efd5676
commit 2cfe0b163a
11 changed files with 312 additions and 193 deletions

View File

@@ -8,7 +8,7 @@ from .codereview import CodeReviewTool
from .debug import DebugIssueTool
from .precommit import Precommit
from .refactor import RefactorTool
from .testgen import TestGenTool
from .testgen import TestGenerationTool
from .thinkdeep import ThinkDeepTool
from .tracer import TracerTool
@@ -20,6 +20,6 @@ __all__ = [
"ChatTool",
"Precommit",
"RefactorTool",
"TestGenTool",
"TestGenerationTool",
"TracerTool",
]

View File

@@ -962,7 +962,7 @@ When recommending searches, be specific about what information you need and why
files: List of file paths to check
Returns:
Dict with MCP_CODE_TOO_LARGE response if too large, None if acceptable
Dict with `code_too_large` response if too large, None if acceptable
"""
if not files:
return None

View File

@@ -28,7 +28,7 @@ from .base import BaseTool, ToolRequest
logger = logging.getLogger(__name__)
class TestGenRequest(ToolRequest):
class TestGenerationRequest(ToolRequest):
"""
Request model for the test generation tool.
@@ -56,7 +56,7 @@ class TestGenRequest(ToolRequest):
)
class TestGenTool(BaseTool):
class TestGenerationTool(BaseTool):
"""
Test generation tool implementation.
@@ -141,7 +141,7 @@ class TestGenTool(BaseTool):
return ToolModelCategory.EXTENDED_REASONING
def get_request_model(self):
return TestGenRequest
return TestGenerationRequest
def _process_test_examples(
self, test_examples: list[str], continuation_id: Optional[str], available_tokens: int = None
@@ -246,7 +246,7 @@ class TestGenTool(BaseTool):
logger.error(f"[TESTGEN] Failed to process test examples: {type(e).__name__}: {e}")
return "", f"Warning: Could not process test examples: {str(e)}"
async def prepare_prompt(self, request: TestGenRequest) -> str:
async def prepare_prompt(self, request: TestGenerationRequest) -> str:
"""
Prepare the test generation prompt with code analysis and optional test examples.