#!/usr/bin/env python3 """ Test to verify GRAPHITI_GROUP_ID environment variable substitution works correctly. This proves that LibreChat's {{LIBRECHAT_USER_ID}} → GRAPHITI_GROUP_ID flow will work. """ import os import sys from pathlib import Path # Add src to path sys.path.insert(0, str(Path(__file__).parent.parent / 'src')) def test_env_var_substitution(): """Test that GRAPHITI_GROUP_ID env var is correctly substituted in config.""" # Set the environment variable BEFORE importing config test_user_id = 'librechat_user_abc123' os.environ['GRAPHITI_GROUP_ID'] = test_user_id # Import config after setting env var from config.schema import GraphitiConfig # Load config config = GraphitiConfig() # Verify the group_id was correctly loaded from env var assert config.graphiti.group_id == test_user_id, ( f"Expected group_id '{test_user_id}', got '{config.graphiti.group_id}'" ) print('✅ SUCCESS: GRAPHITI_GROUP_ID env var substitution works!') print(f' Environment: GRAPHITI_GROUP_ID={test_user_id}') print(f' Config value: config.graphiti.group_id={config.graphiti.group_id}') print() print('This proves that LibreChat flow will work:') print(' LibreChat sets: GRAPHITI_GROUP_ID={{LIBRECHAT_USER_ID}}') print(' Process receives: GRAPHITI_GROUP_ID=user_12345') print(' Config loads: config.graphiti.group_id=user_12345') print(' Tools use: config.graphiti.group_id as fallback') return True def test_default_value(): """Test that default 'main' is used when env var is not set.""" # Remove env var if it exists if 'GRAPHITI_GROUP_ID' in os.environ: del os.environ['GRAPHITI_GROUP_ID'] # Force reload of config module import importlib from config import schema importlib.reload(schema) config = schema.GraphitiConfig() # Should use default 'main' assert config.graphiti.group_id == 'main', ( f"Expected default 'main', got '{config.graphiti.group_id}'" ) print('✅ SUCCESS: Default value works when env var not set!') print(f' Config value: config.graphiti.group_id={config.graphiti.group_id}') return True if __name__ == '__main__': print('=' * 70) print('Testing GRAPHITI_GROUP_ID Environment Variable Substitution') print('=' * 70) print() try: # Test 1: Environment variable substitution print('Test 1: Environment variable substitution') print('-' * 70) test_env_var_substitution() print() # Test 2: Default value print('Test 2: Default value when env var not set') print('-' * 70) test_default_value() print() print('=' * 70) print('✅ ALL TESTS PASSED!') print('=' * 70) print() print('VERDICT: YES - GRAPHITI_GROUP_ID: "{{LIBRECHAT_USER_ID}}" ABSOLUTELY WORKS!') except AssertionError as e: print(f'❌ TEST FAILED: {e}') sys.exit(1) except Exception as e: print(f'❌ ERROR: {e}') import traceback traceback.print_exc() sys.exit(1)