from __future__ import annotations from ergo_agentic import server def test_langsmith_project_defaults_to_default(monkeypatch): monkeypatch.delenv("LANGSMITH_PROJECT", raising=False) monkeypatch.delenv("LANGCHAIN_PROJECT", raising=False) assert server._langsmith_project_name() == "default" def test_langsmith_project_prefers_langsmith_project(monkeypatch): monkeypatch.setenv("LANGCHAIN_PROJECT", "legacy-project") monkeypatch.setenv("LANGSMITH_PROJECT", "ergo-agentic") assert server._langsmith_project_name() == "ergo-agentic" def test_langsmith_trace_url_is_none_when_tracing_disabled(monkeypatch): monkeypatch.setenv("LANGSMITH_TRACING", "false") monkeypatch.delenv("LANGSMITH_API_KEY", raising=False) run_id = "00000000-0000-0000-0000-000000000000" assert server._langsmith_trace_url(run_id) is None def test_assess_response_includes_optional_langsmith_url(): response = server.AssessResponse( run_id="00000000-0000-0000-0000-000000000000", langsmith_trace_url=( "https://smith.langchain.com/o/test/projects/p/test/r/test" ), outcome_matrix={ "scene_config": { "screen_count": 0, "screen_types": [], "has_standing_desk": False, "person_detected": False, }, "setup_summary": "", "assessments": [], "skipped_parameters": [], }, ) assert response.langsmith_trace_url is not None def test_langsmith_run_info_uses_project_metadata(): response = server.LangSmithRunInfo( run_id="00000000-0000-0000-0000-000000000000", langsmith_tracing=True, langsmith_project="ergo-agentic", langsmith_trace_url=None, ) assert response.langsmith_project == "ergo-agentic"