UserSyncUI / tests /test_linkedin_integration.py
AUXteam's picture
Upload folder using huggingface_hub
c1d0c23 verified
import pytest
from unittest.mock import MagicMock, patch
from tinytroupe.integrations.linkedin_audience import LinkedInAudienceAnalyzer
from tinytroupe.integrations.linkedin_api import LinkedInAPI
from tinytroupe.agent import TinyPerson
def test_linkedin_audience_analysis():
mock_api = MagicMock(spec=LinkedInAPI)
mock_api.get_connections.return_value = [
{"id": "c1", "headline": "CEO", "industry": "Tech", "location": "SF", "career_level": "Senior"},
{"id": "c2", "headline": "Dev", "industry": "Tech", "location": "NY", "career_level": "Mid"}
]
analyzer = LinkedInAudienceAnalyzer(mock_api)
# Mock TinyPersonFactory.generate_person to avoid LLM calls
with patch("tinytroupe.factory.tiny_person_factory.TinyPersonFactory.generate_person") as mock_gen:
def side_effect(agent_particularities=None, **kwargs):
name = f"Persona_{mock_gen.call_count}"
p = TinyPerson(name)
return p
mock_gen.side_effect = side_effect
personas = analyzer.create_audience_personas(count=2)
assert len(personas) == 2
assert mock_api.get_connections.called
assert mock_gen.call_count == 2