test_litellm_visualization.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. """
  2. Integration test ensuring LiteLLM visualization redacts sensitive fields.
  3. """
  4. import importlib
  5. import os
  6. import pytest
  7. from agents import ModelSettings
  8. from agency_swarm import Agency, Agent
  9. pytest.importorskip("litellm")
  10. LitellmModel = importlib.import_module("agents.extensions.models.litellm_model").LitellmModel
  11. def test_visualize_redacts_litellm_credentials(tmp_path):
  12. """Agency.visualize should not expose LiteLLM secrets in the generated HTML."""
  13. api_key = os.environ["OPENAI_API_KEY"]
  14. agent = Agent(
  15. name="Visualizer",
  16. instructions="Visualize the agency safely.",
  17. model_settings=ModelSettings(temperature=0.0),
  18. model=LitellmModel(model="openai/gpt-5.4-mini", api_key=api_key),
  19. )
  20. agency = Agency(agent)
  21. output_file = tmp_path / "visualization.html"
  22. result = agency.visualize(output_file=str(output_file), include_tools=False, open_browser=False)
  23. assert output_file.exists()
  24. assert result == str(output_file.resolve())
  25. html = output_file.read_text()
  26. assert "api_key" not in html
  27. assert api_key not in html