import requests from loguru import logger import time # Configure loguru logger.add( "api_tests_{time}.log", rotation="100 MB", level="DEBUG", format="{time} {level} {message}", ) BASE_URL = "http://localhost:8000/v1" def test_create_agent(): """Test creating a new agent.""" logger.info("Testing agent creation") payload = { "agent_name": "Test Agent", "system_prompt": "You are a helpful assistant", "model_name": "gpt-4", "description": "Test agent", "tags": ["test"], } response = requests.post(f"{BASE_URL}/agent", json=payload) logger.debug(f"Create response: {response.json()}") if response.status_code == 200: logger.success("Successfully created agent") return response.json()["agent_id"] else: logger.error(f"Failed to create agent: {response.text}") return None def test_list_agents(): """Test listing all agents.""" logger.info("Testing agent listing") response = requests.get(f"{BASE_URL}/agents") logger.debug(f"List response: {response.json()}") if response.status_code == 200: logger.success(f"Found {len(response.json())} agents") else: logger.error(f"Failed to list agents: {response.text}") def test_completion(agent_id): """Test running a completion.""" logger.info("Testing completion") payload = { "prompt": "What is the weather like today?", "agent_id": agent_id, } response = requests.post( f"{BASE_URL}/agent/completions", json=payload ) logger.debug(f"Completion response: {response.json()}") if response.status_code == 200: logger.success("Successfully got completion") else: logger.error(f"Failed to get completion: {response.text}") def test_delete_agent(agent_id): """Test deleting an agent.""" logger.info("Testing agent deletion") response = requests.delete(f"{BASE_URL}/agent/{agent_id}") logger.debug(f"Delete response: {response.json()}") if response.status_code == 200: logger.success("Successfully deleted agent") else: logger.error(f"Failed to delete agent: {response.text}") def run_tests(): """Run all tests in sequence.""" logger.info("Starting API tests") # Create agent and get ID agent_id = test_create_agent() if not agent_id: logger.error("Cannot continue tests without agent ID") return # Wait a bit for agent to be ready time.sleep(1) # Run other tests test_list_agents() test_completion(agent_id) test_delete_agent(agent_id) logger.info("Tests completed") if __name__ == "__main__": run_tests()