File size: 2,909 Bytes
ab599b4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#!/usr/bin/env python3
"""
Test script for the PDF processor API
"""
import requests
import argparse
import os
import json
from pathlib import Path

def test_api(api_url, pdf_path):
    """
    Test the PDF processor API by sending a PDF file and checking the response
    """
    print(f"Testing API at {api_url} with PDF file: {pdf_path}")
    
    if not os.path.exists(pdf_path):
        print(f"Error: PDF file not found at {pdf_path}")
        return
    
    # Send the PDF file to the API
    with open(pdf_path, 'rb') as pdf_file:
        files = {'file': (os.path.basename(pdf_path), pdf_file, 'application/pdf')}
        
        try:
            print("Sending request to API...")
            response = requests.post(f"{api_url}/convert", files=files)
            
            if response.status_code == 200:
                print("Request successful!")
                result = response.json()
                
                # Print response summary
                print("\nResponse summary:")
                print(f"Filename: {result.get('filename', 'N/A')}")
                print(f"Status: {result.get('status', 'N/A')}")
                
                # Check output files
                output_files = result.get('output_files', {})
                print("\nOutput files:")
                for file_type, file_path in output_files.items():
                    print(f"- {file_type}: {file_path}")
                
                # Save the markdown content to a file
                md_content = result.get('markdown_content', '')
                output_dir = Path('test_output')
                output_dir.mkdir(exist_ok=True)
                
                output_file = output_dir / f"{Path(pdf_path).stem}_output.md"
                with open(output_file, 'w') as f:
                    f.write(md_content)
                
                print(f"\nMarkdown content saved to: {output_file}")
                
                # Save the full response as JSON
                response_file = output_dir / f"{Path(pdf_path).stem}_response.json"
                with open(response_file, 'w') as f:
                    json.dump(result, f, indent=2)
                
                print(f"Full response saved to: {response_file}")
                
            else:
                print(f"Request failed with status code: {response.status_code}")
                print(f"Response content: {response.text}")
        
        except Exception as e:
            print(f"Error during API test: {str(e)}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Test the PDF processor API")
    parser.add_argument("--api", default="http://localhost:7860", help="API URL (default: http://localhost:7860)")
    parser.add_argument("--pdf", required=True, help="Path to the PDF file to test")
    
    args = parser.parse_args()
    test_api(args.api, args.pdf)