import pytest from fastapi.testclient import TestClient import sys import os sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) from app import app # tests/test_generate.py client = TestClient(app) sample_payload = { "product_name": "EcoBottle", "features": ["BPA-free", "Insulated", "Leak-proof"], "brand": "EcoFlow", "audience": "Eco-conscious travelers", "tone": "enthusiastic", "goal": "Drive conversions for the summer collection", } # def test_generate_campaign(): # Adjust path below to the exact module & class where .invoke() is called # @patch("src.marketingCampaignGen.components.model.generator.Ollama.invoke") #Skip unit testing @pytest.mark.skip(reason="Skipping test temporarily until generate method is stable.") def test_generate_campaign(mock_invoke): response = client.post("/generate", json=sample_payload) print("\n[DEBUG] Status Code:", response.status_code) try: print("[DEBUG] Response JSON:", response.json()) except Exception as e: print("[DEBUG] Response could not be parsed:", e) print("[DEBUG] Raw Response Text:", response.text) assert response.status_code == 200 assert "campaign" in response.json() assert isinstance(response.json()["campaign"], str) assert len(response.json()["campaign"]) > 10