API-Docker-API-test / test_main.py
mohsinabbas1984's picture
Upload 8 files
53e06ba verified
raw
history blame
2.66 kB
from fastapi.testclient import TestClient
from main import app
from main import TextInput
from fastapi.encoders import jsonable_encoder
client = TestClient(app)
# Test the welcome endpoint
def test_welcome():
# Test the welcome endpoint
response = client.get("/")
assert response.status_code == 200
assert response.json() == "Welcome to our Text Classification API"
# Test the sentiment analysis endpoint for positive sentiment
def test_positive_sentiment():
with client:
# Define the request payload
# Initialize payload as a TextInput object
payload = TextInput(text="I love this product! It's amazing!")
# Convert TextInput object to JSON-serializable dictionary
payload_dict = jsonable_encoder(payload)
# Send a POST request to the sentiment analysis endpoint
response = client.post("/analyze/{text}", json=payload_dict)
# Assert that the response status code is 200 OK
assert response.status_code == 200
# Assert that the sentiment returned is positive
assert response.json()[0]['label'] == "positive"
# Test the sentiment analysis endpoint for negative sentiment
def test_negative_sentiment():
with client:
# Define the request payload
# Initialize payload as a TextInput object
payload = TextInput(text="I'm really disappointed with this service. It's terrible.")
# Convert TextInput object to JSON-serializable dictionary
payload_dict = jsonable_encoder(payload)
# Send a POST request to the sentiment analysis endpoint
response = client.post("/analyze/{text}", json=payload_dict)
# Assert that the response status code is 200 OK
assert response.status_code == 200
# Assert that the sentiment returned is positive
assert response.json()[0]['label'] == "negative"
# Test the sentiment analysis endpoint for neutral sentiment
def test_neutral_sentiment():
with client:
# Define the request payload
# Initialize payload as a TextInput object
payload = TextInput(text="This is a neutral statement.")
# Convert TextInput object to JSON-serializable dictionary
payload_dict = jsonable_encoder(payload)
# Send a POST request to the sentiment analysis endpoint
response = client.post("/analyze/{text}", json=payload_dict)
# Assert that the response status code is 200 OK
assert response.status_code == 200
# Assert that the sentiment returned is positive
assert response.json()[0]['label'] == "neutral"