�
tF?h � �n � d Z ddlZddlZddlZddlmZ ddlmZmZ ej j d e ee� j j � � ddlmZ ddlmZ d� Zd� Z e� Zd � Zd
� Zd� Zedk( r6 ed
� e� ed� e� ed� e� ed� yy)z9
Test script for resume generation with template support
� N)�Path)�patch� MagicMock)�
MCPHandler)�
MCPRequestc � � t t � j dz }t || z dd�� 5 }t j
|� cddd� S # 1 sw Y yxY w)zLoad test data from JSON file� test_data�rzutf-8)�encodingN)r �__file__�parent�open�json�load)�filename�
test_data_dir�fs �MC:\Users\rayyan.a\Downloads\Repo\linkedin_mcp\tests\test_resume_generation.py�load_test_datar sI � ���N�)�)�K�7�M�
�m�h�&��g� >� �!��y�y��|�� � �s �A
�
Ac � � t � } t d� | j _ t � }t d� |j _ t � }ddddd�|j
_ dddd d�|j _ t � }dd
ddd�|j _ t � }| |_ ||_
||_ ||_ |S )z Set up mocks for the MCP handlerztest_profile.jsonz
test_job.jsonTz/path/to/generated/resume.pdf�pdfi )�success� file_path�format� file_sizez/path/to/tailored/resume.pdfi� z/path/to/cover_letter.pdfi )
r r �get_profile�return_value�get_job_details�generate_resume�
tailor_resume�generate_cover_letterr �profile_service�job_service�resume_generator�cover_letter_generator)�profile_mock�job_mock�resume_gen_mock�cover_letter_mock�handlers r �setup_mocksr+ s� � � �;�L�,:�;N�,O�L���)� �{�H�,:�?�,K�H���)� �k�O��4��� 4�O�#�#�0� �3��� 2�O�!�!�.� "����0��� <��+�+�8� �l�G�*�G��"�G��.�G��%6�G�"��N� c
� � d} dddd�dddd�ddd d�dd
dd�ddd
d�dddd�g}t |� D ]� \ }}t d|dz � d|d � d�� t d|d xs d� d|d � �� t d|dz � �d| |d |d d��� } t j |� }|j d� du rt d |j d!� � �� nNt d"|j d#� � �� t d$|j d� � d%|j d&d'� � d(�� �� y# t $ r"}t d)t |� � �� Y d}~��d}~ww xY w)*z;Test resume generation with different templates and formats�test_profile_123Nr �Default template��templater �description�modern�Modern template�docx�DOCX format�htmlzHTML format�mdzMarkdown format�txtzText formatz
--- Test Case � �: r2 � ---�
Template: r1 �default�
, Format: r �test_resume_zlinkedin.generateResume)� profileIdr1 r ��id�method�paramsr F� ❌ Error: �errorz[SUCCESS] Output file: r � Format: �, Size: r r � bytes�[ERROR] Exception: )� enumerate�printr r* �process_request�get� Exception�str)�
profile_id�
test_cases�i� test_case�request�response�es r �test_generate_resumerY F s� � � $�J� �U�;M�N���?P�Q���
�N���
�N���>O�P���}�M�
�J� "�*�-� 2���9�
� ��1���R� �-�(@�'A��F�G�
�
�9�Z�0�=�I�>�j��S[�I\�H]�^�_� ��a��c�U�#�,�'�%�j�1�#�H�-��
�� 2��.�.�w�7�H��|�|�I�&�%�/���H�L�L��$9�#:�;�<��/����[�0I�/J�K�L���H�L�L��$:�#;�8�H�L�L�Q\�^_�D`�Ca�ag�h�i��-2��. � 2��'��A��x�0�1�1�� 2�s �BD� E�&E�Ec
� � d} d}t d� t d| � d|� �� dddd �d
ddd �d
dd
d �g}t |� D ]� \ }}t d|dz � d|d � d�� t d|d xs d� d|d � �� t d|dz � �d| ||d |d d��� } t j |� }|j d� du rt d|j d� � �� nNt d |j d!� � �� t d"|j d� � d#|j d$d%� � d&�� �� y# t $ r"}t d't |� � �� Y d}~��d}~ww xY w)(z(Test resume tailoring for a specific jobr. �test_job_456z!
--- Testing Resume Tailoring ---� Profile: �, Job: Nr r/ r0 r3 r4 r5 r6 z
--- Tailor Test Case r: r; r2 r<