vsp-demo / tests /vsp /app /scrapers /test_integration_linkedin_downloader.py
navkast
LLM test harness + prompt caching + prompt tuning (#8)
49b13c6 unverified
import asyncio
import pytest
from vsp.app.scrapers.linkedin_downloader import LinkedinDownloader
from vsp.shared import logger_factory
logger = logger_factory.get_logger(__name__)
@pytest.mark.asyncio
async def test_fetch_linkedin_data_integration():
"""
Integration test for LinkedinDownloader.
This test makes an actual network request to fetch the Linkedin profile of 'navkast'.
It requires a valid RapidAPI key to be set in the AWS Parameter Store.
Note: This test should be run sparingly to avoid unnecessary API calls and potential rate limiting.
"""
downloader = LinkedinDownloader()
linkedin_url = "https://www.linkedin.com/in/navkast/"
try:
profile = await downloader.fetch_linkedin_data(linkedin_url)
# Log the fetched profile data
logger.info("Fetched Linkedin profile", first_name=profile.first_name, last_name=profile.last_name)
# Assertions to verify the fetched data
assert profile.first_name == "Naveen"
assert profile.last_name == "K."
assert "University of Pennsylvania" in [edu.school_name for edu in profile.educations]
logger.info("Integration test passed successfully")
except Exception as e:
logger.error("Integration test failed", error=str(e))
raise
if __name__ == "__main__":
asyncio.run(test_fetch_linkedin_data_integration())