File size: 3,938 Bytes
09281fe
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
#!/usr/bin/env python3
"""
Test script for the Flask API server
Demonstrates how to use the various endpoints
"""

import requests
import json
import os

# API Configuration
BASE_URL = "http://127.0.0.1:5000"
HEADERS = {
    "Content-Type": "application/json"
}

def test_health_check():
    """Test the health check endpoint"""
    print("πŸ” Testing health check...")
    try:
        response = requests.get(f"{BASE_URL}/health")
        print(f"Status: {response.status_code}")
        print(f"Response: {response.json()}")
        return response.status_code == 200
    except Exception as e:
        print(f"❌ Health check failed: {e}")
        return False

def test_system_status():
    """Test the system status endpoint"""
    print("\nπŸ“Š Testing system status...")
    try:
        response = requests.get(f"{BASE_URL}/hackrx/status")
        print(f"Status: {response.status_code}")
        print(f"Response: {json.dumps(response.json(), indent=2)}")
        return response.status_code == 200
    except Exception as e:
        print(f"❌ System status failed: {e}")
        return False

def test_query_processing(questions):
    """Test query processing"""
    print(f"\nπŸ€” Testing query processing...")
    
    payload = {
        "questions": questions
    }
    
    try:
        response = requests.post(f"{BASE_URL}/hackrx/run", 
                               json=payload, 
                               headers=HEADERS)
        
        print(f"Status: {response.status_code}")
        print(f"Response: {json.dumps(response.json(), indent=2)}")
        return response.status_code == 200
    except Exception as e:
        print(f"❌ Query processing failed: {e}")
        return False

def test_upload_document(file_path):
    """Test document upload"""
    print(f"\nπŸ“„ Testing document upload: {file_path}")
    
    if not os.path.exists(file_path):
        print(f"❌ File not found: {file_path}")
        return False
    
    try:
        with open(file_path, 'rb') as f:
            files = {'file': f}
            
            response = requests.post(f"{BASE_URL}/hackrx/upload", 
                                  files=files)
        
        print(f"Status: {response.status_code}")
        print(f"Response: {json.dumps(response.json(), indent=2)}")
        return response.status_code == 200
    except Exception as e:
        print(f"❌ Upload failed: {e}")
        return False

def test_query_processing(questions):
    """Test query processing"""
    print(f"\nπŸ€” Testing query processing...")
    
    payload = {
        "questions": questions
    }
    
    try:
        response = requests.post(f"{BASE_URL}/hackrx/run", 
                               json=payload, 
                               headers=HEADERS)
        
        print(f"Status: {response.status_code}")
        print(f"Response: {json.dumps(response.json(), indent=2)}")
        return response.status_code == 200
    except Exception as e:
        print(f"❌ Query processing failed: {e}")
        return False



def main():
    """Main test function"""
    print("πŸš€ Starting API Tests")
    print("=" * 50)
    
    # Test 1: Health check
    if not test_health_check():
        print("❌ Health check failed. Make sure the server is running.")
        return
    
    # Test 2: System status
    test_system_status()
    

    
    # Test 4: Document upload (if file exists)
    test_files = ["doc2.pdf", "test_document.txt"]
    for test_file in test_files:
        if os.path.exists(test_file):
            test_upload_document(test_file)
            break
    
    # Test 3: Query processing
    test_questions = [
        "What is covered under this policy?",
        "What is the maximum coverage amount?",
        "What documents are required for claims?"
    ]
    test_query_processing(test_questions)
    
    print("\nβœ… API tests completed!")

if __name__ == "__main__":
    main()