artech-med-bot / test_app.py
shamim237's picture
initial commit
8ff45d7 verified
import unittest
from fastapi.testclient import TestClient
from app import app
class TestAnswerEndpoint(unittest.TestCase):
def setUp(self):
self.client = TestClient(app)
def test_valid_question(self):
response = self.client.post("/answer", json={"question": "What is an overactive bladder?"})
self.assertEqual(response.status_code, 200)
self.assertIn("answer", response.json())
def test_empty_question(self):
# Empty string fails Pydantic validation (constr(min_length=1))
response = self.client.post("/answer", json={"question": ""})
self.assertEqual(response.status_code, 422) # Pydantic validation error
self.assertIn("should have at least 1 character", response.json()["detail"][0]["msg"])
def test_whitespace_question(self):
# Whitespace-only string passes Pydantic but fails our custom validation
response = self.client.post("/answer", json={"question": " "})
self.assertEqual(response.status_code, 500) # Internal server error from our validation
self.assertEqual(response.json()["detail"], "Error processing request")
def test_missing_question_field(self):
response = self.client.post("/answer", json={})
self.assertEqual(response.status_code, 422) # FastAPI validation error
def test_invalid_json(self):
response = self.client.post("/answer", data="invalid json")
self.assertEqual(response.status_code, 422) # FastAPI validation error
if __name__ == '__main__':
unittest.main()