Spaces:
Running
Running
| import sys | |
| from pathlib import Path | |
| sys.path.insert(0, str(Path(__file__).parent.parent)) | |
| from helpers.data_loader import load_all_documents | |
| from helpers.notification import PushoverNotifier | |
| from helpers.config import get_config | |
| def test_data_loader(): | |
| print("\n" + "="*60) | |
| print("TEST: Data Loader") | |
| print("="*60) | |
| try: | |
| documents = load_all_documents("me") | |
| assert isinstance(documents, dict), "Documents should be a dictionary" | |
| assert len(documents) > 0, "Should load at least one document" | |
| for name, content in documents.items(): | |
| assert isinstance(content, str), f"{name} should be a string" | |
| assert len(content) > 0, f"{name} should not be empty" | |
| print(f"β Loaded {name}: {len(content)} characters") | |
| print("β Data loader test PASSED") | |
| return True | |
| except Exception as e: | |
| print(f"β Data loader test FAILED: {e}") | |
| return False | |
| def test_pushover_notifier(): | |
| print("\n" + "="*60) | |
| print("TEST: Pushover Notifier") | |
| print("="*60) | |
| try: | |
| notifier = PushoverNotifier("test_user", "test_token") | |
| assert hasattr(notifier, 'send'), "Notifier should have send method" | |
| assert notifier.enabled == True, "Notifier should be enabled with credentials" | |
| notifier_disabled = PushoverNotifier("", "") | |
| assert notifier_disabled.enabled == False, "Notifier should be disabled without credentials" | |
| result = notifier_disabled.send("Test message") | |
| assert result == False, "Should return False when disabled" | |
| print("β Notifier initialization works") | |
| print("β Notifier handles missing credentials") | |
| print("β Pushover notifier test PASSED") | |
| return True | |
| except Exception as e: | |
| print(f"β Pushover notifier test FAILED: {e}") | |
| return False | |
| def test_config(): | |
| print("\n" + "="*60) | |
| print("TEST: Configuration") | |
| print("="*60) | |
| try: | |
| config = get_config() | |
| assert isinstance(config, dict), "Config should be a dictionary" | |
| required_keys = ["openai_api_key", "pushover_user", "pushover_token", "name", "rag_enabled", "rag_method", "top_k"] | |
| for key in required_keys: | |
| assert key in config, f"Config should contain '{key}'" | |
| assert config["openai_api_key"] is not None, "OpenAI API key should be set" | |
| assert isinstance(config["rag_enabled"], bool), "rag_enabled should be boolean" | |
| assert isinstance(config["top_k"], int), "top_k should be integer" | |
| print(f"β Config loaded with {len(config)} keys") | |
| print(f"β RAG enabled: {config['rag_enabled']}") | |
| print(f"β RAG method: {config['rag_method']}") | |
| print("β Configuration test PASSED") | |
| return True | |
| except Exception as e: | |
| print(f"β Configuration test FAILED: {e}") | |
| return False | |
| def run_all_tests(): | |
| print("\n" + "="*70) | |
| print("RUNNING HELPER TESTS") | |
| print("="*70) | |
| tests = [ | |
| test_data_loader, | |
| test_pushover_notifier, | |
| test_config | |
| ] | |
| results = [test() for test in tests] | |
| print("\n" + "="*70) | |
| print(f"RESULTS: {sum(results)}/{len(results)} tests passed") | |
| print("="*70) | |
| return all(results) | |
| if __name__ == "__main__": | |
| success = run_all_tests() | |
| sys.exit(0 if success else 1) | |