joelgilbert/NL2SQL
0
1"""2Basic test to verify project setup and imports.3Run with: python -m pytest tests/test_setup.py -v4"""5 6import pytest7 8 9def test_imports():10 """Test that all main modules can be imported."""11 12 # Config13 from config import settings, prompts14 assert settings is not None15 assert prompts is not None16 17 # Database18 from database import connection, schema_manager, query_executor19 assert connection is not None20 assert schema_manager is not None21 assert query_executor is not None22 23 # Vector store24 from vector_store import upstash_client, embeddings25 assert upstash_client is not None26 assert embeddings is not None27 28 # Agents29 from agents import gatekeeper, sql_generator, explainer30 assert gatekeeper is not None31 assert sql_generator is not None32 assert explainer is not None33 34 # Security35 from security import validator, auth, audit_logger36 assert validator is not None37 assert auth is not None38 assert audit_logger is not None39 40 # Utils41 from utils import error_handler, sql_parser, helpers42 assert error_handler is not None43 assert sql_parser is not None44 assert helpers is not None45 46 47def test_config_loading():48 """Test that configuration loads properly."""49 from config.settings import settings50 51 # These might be empty in test but should be accessible52 assert hasattr(settings, 'database')53 assert hasattr(settings, 'api')54 assert hasattr(settings, 'upstash')55 assert hasattr(settings, 'security')56 57 58def test_prompt_templates():59 """Test that prompt templates are defined."""60 from config.prompts import PromptTemplates, EXAMPLE_QUERIES61 62 assert PromptTemplates.GATEKEEPER_SYSTEM is not None63 assert PromptTemplates.SQL_GENERATION_SYSTEM is not None64 assert PromptTemplates.RESULTS_EXPLANATION_SYSTEM is not None65 assert EXAMPLE_QUERIES is not None66 67 68def test_helper_functions():69 """Test basic helper functions."""70 from utils.helpers import (71 truncate_long_text,72 format_execution_time,73 pluralize74 )75 76 # Test truncate77 assert truncate_long_text("short", 10) == "short"78 assert len(truncate_long_text("very long text here", 10)) <= 1079 80 # Test time formatting81 assert "ms" in format_execution_time(0.5)82 assert "s" in format_execution_time(2.5)83 84 # Test pluralize85 assert "1 row" in pluralize(1, "row")86 assert "2 rows" in pluralize(2, "row")87 88 89if __name__ == "__main__":90 pytest.main([__file__, "-v"])91 