""" Required environment variables: - CUA_API_KEY: API key for Cua cloud provider """ import os import pytest from pathlib import Path import sys # Load environment variables from .env file project_root = Path(__file__).parent.parent env_file = project_root / ".env" print(f"Loading environment from: {env_file}") from dotenv import load_dotenv load_dotenv(env_file) # Add paths to sys.path if needed pythonpath = os.environ.get("PYTHONPATH", "") for path in pythonpath.split(":"): if path and path not in sys.path: sys.path.insert(0, path) # Insert at beginning to prioritize print(f"Added to sys.path: {path}") from core.telemetry import record_event, is_telemetry_enabled, destroy_telemetry_client class TestTelemetry: def setup_method(self): """Reset environment variables before each test""" os.environ.pop('CUA_TELEMETRY', None) os.environ.pop('CUA_TELEMETRY_ENABLED', None) destroy_telemetry_client() def test_telemetry_disabled_when_cua_telemetry_is_off(self): """Should return false when CUA_TELEMETRY is off""" os.environ['CUA_TELEMETRY'] = 'off' assert is_telemetry_enabled() is False def test_telemetry_enabled_when_cua_telemetry_not_set(self): """Should return true when CUA_TELEMETRY is not set""" assert is_telemetry_enabled() is True def test_telemetry_disabled_when_cua_telemetry_enabled_is_0(self): """Should return false if CUA_TELEMETRY_ENABLED is 0""" os.environ['CUA_TELEMETRY_ENABLED'] = '0' assert is_telemetry_enabled() is False def test_send_test_event_to_posthog(self): """Should send a test event to PostHog""" # This should not raise an exception record_event('test_telemetry', {'message': 'Hello, world!'}) if __name__ == "__main__": # Run tests directly pytest.main([__file__, "-v"])