Mr-Haseeb786
Clean deployment build
88da18c
Raw
History Blame Contribute Delete
3.19 kB
"""
Test script for the document updater module.
This is a mock test since we don't want to make actual API calls during testing.
"""
import os
import sys
import docx
from unittest import mock
# Add the project root to the path
sys.path.append('/home/ubuntu/cv_tailoring_project')
from src.updaters.document_updater import DocumentUpdater
from src.utils.openai_integration import OpenAIIntegration
def test_document_updater():
"""Test the document updater module with mock responses."""
print("Testing document updater module...")
# Paths to test documents
cv_path = '/home/ubuntu/cv_tailoring_project/data/Imon Hosen - Resume_Template_ATS.docx'
cover_letter_path = '/home/ubuntu/cv_tailoring_project/data/Cover Letter_Imon .docx'
# Create a mock OpenAI integration
mock_openai = mock.MagicMock(spec=OpenAIIntegration)
# Set up mock responses
mock_openai.analyze_job_description.return_value = {
"raw_response": """
{
"profile_summary": "Information Engineering student at HAW Hamburg with experience in data analysis and project coordination, seeking a part-time working student role in IT Project Management.",
"skills": ["Project coordination", "MS Office", "Data analysis", "Documentation"],
"experience_highlights": ["Assisted in project tracking", "Created documentation", "Analyzed data"],
"keywords_to_emphasize": ["project management", "coordination", "documentation"]
}
"""
}
mock_openai.tailor_cover_letter.return_value = "This is a tailored cover letter body text for testing purposes."
# Initialize document updater with mock OpenAI integration
document_updater = DocumentUpdater(cv_path, cover_letter_path, mock_openai)
# Test analyze_job_description method
job_description = "This is a test job description for an IT Project Management position."
analysis = document_updater.analyze_job_description(job_description)
assert "raw_response" in analysis
print("✓ analyze_job_description method works correctly")
# Test output paths
output_cv_path = '/home/ubuntu/cv_tailoring_project/output/test_cv.docx'
output_cl_path = '/home/ubuntu/cv_tailoring_project/output/test_cover_letter.docx'
# Create output directory if it doesn't exist
os.makedirs(os.path.dirname(output_cv_path), exist_ok=True)
# Test update_cv method
cv_result = document_updater.update_cv(job_description, output_cv_path)
assert os.path.exists(cv_result)
print(f"✓ update_cv method works correctly, file created at {cv_result}")
# Test update_cover_letter method
cl_result = document_updater.update_cover_letter(job_description, output_cl_path)
assert os.path.exists(cl_result)
print(f"✓ update_cover_letter method works correctly, file created at {cl_result}")
print("\nDocument updater module tests completed successfully!")
return True
if __name__ == "__main__":
# Use patch to mock the OpenAI integration
with mock.patch('src.utils.openai_integration.OpenAIIntegration') as MockOpenAI:
test_document_updater()