Fix tests and previous commit
This commit is contained in:
61
brain/.gitignore
vendored
61
brain/.gitignore
vendored
@@ -1,61 +0,0 @@
|
||||
# Python
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
*.so
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
|
||||
# Virtual environments
|
||||
venv/
|
||||
ENV/
|
||||
env/
|
||||
|
||||
# IDE
|
||||
.vscode/
|
||||
.idea/
|
||||
.ruff_cache
|
||||
*.swp
|
||||
*.swo
|
||||
*~
|
||||
|
||||
# Qodo
|
||||
.qodo/
|
||||
|
||||
# Memory and state files
|
||||
memory.json
|
||||
memory_data/
|
||||
|
||||
# Coverage reports
|
||||
.coverage
|
||||
.coverage.*
|
||||
htmlcov/
|
||||
coverage.xml
|
||||
*.cover
|
||||
|
||||
# Pytest cache
|
||||
.pytest_cache/
|
||||
|
||||
# OS
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
# Secrets
|
||||
.env
|
||||
|
||||
# Backup files
|
||||
*.backup
|
||||
@@ -496,7 +496,7 @@ class Memory:
|
||||
storage_dir: Directory for persistent storage
|
||||
"""
|
||||
self.storage_dir = Path(storage_dir)
|
||||
self.storage_dir.mkdir(exist_ok=True)
|
||||
self.storage_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
self.ltm_file = self.storage_dir / "ltm.json"
|
||||
|
||||
|
||||
@@ -1,5 +1,11 @@
|
||||
"""Pytest configuration and shared fixtures."""
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
# Ajouter le dossier parent (brain) au PYTHONPATH
|
||||
sys.path.insert(0, str(Path(__file__).parent.parent))
|
||||
|
||||
import shutil
|
||||
import tempfile
|
||||
from pathlib import Path
|
||||
|
||||
@@ -226,7 +226,7 @@ class TestFormatEpisodicContext:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_episodic_context()
|
||||
context = builder._format_episodic_context(memory)
|
||||
|
||||
assert context == ""
|
||||
|
||||
@@ -235,7 +235,7 @@ class TestFormatEpisodicContext:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_episodic_context()
|
||||
context = builder._format_episodic_context(memory_with_search_results)
|
||||
|
||||
assert "LAST SEARCH" in context
|
||||
assert "Inception 1080p" in context
|
||||
@@ -249,7 +249,7 @@ class TestFormatEpisodicContext:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_episodic_context()
|
||||
context = builder._format_episodic_context(memory)
|
||||
|
||||
assert "LAST SEARCH" in context
|
||||
assert "ACTIVE DOWNLOADS" in context
|
||||
@@ -264,7 +264,7 @@ class TestFormatStmContext:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_stm_context()
|
||||
context = builder._format_stm_context(memory)
|
||||
|
||||
# Should at least show language
|
||||
assert "CONVERSATION LANGUAGE" in context or context == ""
|
||||
@@ -276,7 +276,7 @@ class TestFormatStmContext:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_stm_context()
|
||||
context = builder._format_stm_context(memory)
|
||||
|
||||
assert "CURRENT WORKFLOW" in context
|
||||
assert "download" in context
|
||||
@@ -290,7 +290,7 @@ class TestFormatStmContext:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_stm_context()
|
||||
context = builder._format_stm_context(memory)
|
||||
|
||||
assert "CURRENT WORKFLOW" in context
|
||||
assert "CURRENT TOPIC" in context
|
||||
|
||||
@@ -7,7 +7,7 @@ from agent.registry import make_tools
|
||||
class TestPromptBuilderToolsInjection:
|
||||
"""Critical tests for tools injection in prompts."""
|
||||
|
||||
def test_system_prompt_includes_all_tools(self):
|
||||
def test_system_prompt_includes_all_tools(self, memory):
|
||||
"""CRITICAL: Verify all tools are mentioned in system prompt."""
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
@@ -19,7 +19,7 @@ class TestPromptBuilderToolsInjection:
|
||||
tool_name in prompt
|
||||
), f"Tool {tool_name} not mentioned in system prompt"
|
||||
|
||||
def test_tools_spec_contains_all_registered_tools(self):
|
||||
def test_tools_spec_contains_all_registered_tools(self, memory):
|
||||
"""CRITICAL: Verify build_tools_spec() returns all tools."""
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
@@ -30,7 +30,7 @@ class TestPromptBuilderToolsInjection:
|
||||
|
||||
assert spec_names == tool_names, f"Missing tools: {tool_names - spec_names}"
|
||||
|
||||
def test_tools_spec_is_not_empty(self):
|
||||
def test_tools_spec_is_not_empty(self, memory):
|
||||
"""CRITICAL: Verify tools spec is never empty."""
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
@@ -38,7 +38,7 @@ class TestPromptBuilderToolsInjection:
|
||||
|
||||
assert len(specs) > 0, "Tools spec is empty!"
|
||||
|
||||
def test_tools_spec_format_matches_openai(self):
|
||||
def test_tools_spec_format_matches_openai(self, memory):
|
||||
"""CRITICAL: Verify tools spec format is OpenAI-compatible."""
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
@@ -137,7 +137,7 @@ class TestPromptBuilderMemoryContext:
|
||||
class TestPromptBuilderStructure:
|
||||
"""Tests for prompt structure and completeness."""
|
||||
|
||||
def test_system_prompt_is_not_empty(self):
|
||||
def test_system_prompt_is_not_empty(self, memory):
|
||||
"""Verify system prompt is never empty."""
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
@@ -146,7 +146,7 @@ class TestPromptBuilderStructure:
|
||||
assert len(prompt) > 0
|
||||
assert prompt.strip() != ""
|
||||
|
||||
def test_system_prompt_includes_base_instruction(self):
|
||||
def test_system_prompt_includes_base_instruction(self, memory):
|
||||
"""Verify system prompt includes base instruction."""
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
@@ -154,7 +154,7 @@ class TestPromptBuilderStructure:
|
||||
|
||||
assert "assistant" in prompt.lower() or "help" in prompt.lower()
|
||||
|
||||
def test_system_prompt_includes_rules(self):
|
||||
def test_system_prompt_includes_rules(self, memory):
|
||||
"""Verify system prompt includes important rules."""
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
@@ -162,7 +162,7 @@ class TestPromptBuilderStructure:
|
||||
|
||||
assert "RULES" in prompt or "IMPORTANT" in prompt
|
||||
|
||||
def test_system_prompt_includes_examples(self):
|
||||
def test_system_prompt_includes_examples(self, memory):
|
||||
"""Verify system prompt includes examples."""
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
@@ -170,7 +170,7 @@ class TestPromptBuilderStructure:
|
||||
|
||||
assert "EXAMPLES" in prompt or "example" in prompt.lower()
|
||||
|
||||
def test_tools_description_format(self):
|
||||
def test_tools_description_format(self, memory):
|
||||
"""Verify tools are properly formatted in description."""
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
@@ -188,7 +188,7 @@ class TestPromptBuilderStructure:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_episodic_context()
|
||||
context = builder._format_episodic_context(memory_with_search_results)
|
||||
|
||||
assert "LAST SEARCH" in context
|
||||
assert "Inception" in context
|
||||
@@ -201,7 +201,7 @@ class TestPromptBuilderStructure:
|
||||
memory.stm.set_topic("test_topic")
|
||||
memory.stm.set_entity("key", "value")
|
||||
|
||||
context = builder._format_stm_context()
|
||||
context = builder._format_stm_context(memory)
|
||||
|
||||
assert "TOPIC" in context or "test_topic" in context
|
||||
assert "ENTITIES" in context or "key" in context
|
||||
@@ -213,7 +213,7 @@ class TestPromptBuilderStructure:
|
||||
|
||||
memory.ltm.set_config("test_key", "test_value")
|
||||
|
||||
context = builder._format_config_context()
|
||||
context = builder._format_config_context(memory)
|
||||
|
||||
assert "CONFIGURATION" in context
|
||||
assert "test_key" in context
|
||||
|
||||
@@ -309,7 +309,7 @@ class TestFormatEpisodicContextEdgeCases:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_episodic_context()
|
||||
context = builder._format_episodic_context(memory)
|
||||
|
||||
assert "LAST SEARCH" in context
|
||||
|
||||
@@ -327,7 +327,7 @@ class TestFormatEpisodicContextEdgeCases:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_episodic_context()
|
||||
context = builder._format_episodic_context(memory)
|
||||
|
||||
# Should not crash
|
||||
assert "LAST SEARCH" in context
|
||||
@@ -339,7 +339,7 @@ class TestFormatEpisodicContextEdgeCases:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_episodic_context()
|
||||
context = builder._format_episodic_context(memory)
|
||||
|
||||
assert "ACTIVE DOWNLOADS" in context
|
||||
assert "0%" in context # Default progress
|
||||
@@ -358,7 +358,7 @@ class TestFormatStmContextEdgeCases:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_stm_context()
|
||||
context = builder._format_stm_context(memory)
|
||||
|
||||
assert "CURRENT WORKFLOW" in context
|
||||
|
||||
@@ -370,7 +370,7 @@ class TestFormatStmContextEdgeCases:
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
try:
|
||||
context = builder._format_stm_context()
|
||||
context = builder._format_stm_context(memory)
|
||||
assert "CURRENT WORKFLOW" in context or True
|
||||
except (AttributeError, TypeError):
|
||||
# Expected if None target causes issues
|
||||
@@ -383,7 +383,7 @@ class TestFormatStmContextEdgeCases:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_stm_context()
|
||||
context = builder._format_stm_context(memory)
|
||||
|
||||
# Empty topic might not be shown
|
||||
assert isinstance(context, str)
|
||||
@@ -395,6 +395,6 @@ class TestFormatStmContextEdgeCases:
|
||||
tools = make_tools()
|
||||
builder = PromptBuilder(tools)
|
||||
|
||||
context = builder._format_stm_context()
|
||||
context = builder._format_stm_context(memory)
|
||||
|
||||
assert "EXTRACTED ENTITIES" in context
|
||||
|
||||
Reference in New Issue
Block a user