ai-tutor-chatbot / tests /test_agent_tracing.py
omarsol's picture
Renamed 'scripts' folder to 'app', removed mongo and instructor libraries
bd180ae
Raw History Blame
1.92 kB
from __future__ import annotations
import os
import unittest
from unittest.mock import patch
from app.agent_tracing import (
DEFAULT_LANGSMITH_PROJECT,
configure_langsmith_environment,
langsmith_tracing_enabled,
parse_env_bool,
)
class AgentTracingTestCase(unittest.TestCase):
def test_parse_env_bool(self) -> None:
self.assertIs(parse_env_bool(None), None)
self.assertTrue(parse_env_bool("true"))
self.assertTrue(parse_env_bool("1"))
self.assertFalse(parse_env_bool("false"))
self.assertFalse(parse_env_bool("0"))
self.assertIs(parse_env_bool("maybe"), None)
def test_api_key_enables_langsmith_by_default(self) -> None:
with patch.dict(os.environ, {"LANGSMITH_API_KEY": "ls_test"}, clear=True):
configure_langsmith_environment()
self.assertTrue(langsmith_tracing_enabled())
self.assertEqual(os.environ["LANGSMITH_TRACING"], "true")
self.assertEqual(os.environ["LANGSMITH_PROJECT"], DEFAULT_LANGSMITH_PROJECT)
def test_explicit_disable_wins_over_api_key(self) -> None:
with patch.dict(
os.environ,
{"LANGSMITH_API_KEY": "ls_test", "LANGSMITH_TRACING": "false"},
clear=True,
):
configure_langsmith_environment()
self.assertFalse(langsmith_tracing_enabled())
self.assertNotIn("LANGSMITH_PROJECT", os.environ)
def test_project_is_preserved(self) -> None:
with patch.dict(
os.environ,
{
"LANGSMITH_API_KEY": "ls_test",
"LANGSMITH_TRACING": "true",
"LANGSMITH_PROJECT": "custom-project",
},
clear=True,
):
configure_langsmith_environment()
self.assertEqual(os.environ["LANGSMITH_PROJECT"], "custom-project")
if __name__ == "__main__":
unittest.main()