mirror of
https://github.com/khoaliber/LetterFeed.git
synced 2026-03-02 21:19:13 +00:00
48 lines
1.7 KiB
Python
48 lines
1.7 KiB
Python
from fastapi.testclient import TestClient
|
|
|
|
|
|
def test_create_newsletter_with_invalid_email(client: TestClient):
|
|
"""Test creating a newsletter with an invalid sender email."""
|
|
newsletter_data = {
|
|
"name": "Invalid Email Test",
|
|
"sender_emails": ["not-an-email"],
|
|
}
|
|
response = client.post("/newsletters", json=newsletter_data)
|
|
assert response.status_code == 422 # Unprocessable Entity
|
|
data = response.json()
|
|
assert "value is not a valid email address" in data["detail"][0]["msg"]
|
|
|
|
|
|
def test_create_newsletter_with_valid_and_invalid_emails(client: TestClient):
|
|
"""Test creating a newsletter with a mix of valid and invalid emails."""
|
|
newsletter_data = {
|
|
"name": "Mixed Emails Test",
|
|
"sender_emails": ["valid@example.com", "invalid-email"],
|
|
}
|
|
response = client.post("/newsletters", json=newsletter_data)
|
|
assert response.status_code == 422
|
|
data = response.json()
|
|
assert data["detail"][0]["loc"] == ["body", "sender_emails", 1]
|
|
|
|
|
|
def test_update_newsletter_with_invalid_email(client: TestClient):
|
|
"""Test updating a newsletter with an invalid sender email."""
|
|
# First, create a valid newsletter
|
|
create_response = client.post(
|
|
"/newsletters",
|
|
json={
|
|
"name": "Update Test",
|
|
"sender_emails": ["initial@example.com"],
|
|
},
|
|
)
|
|
assert create_response.status_code == 200
|
|
newsletter_id = create_response.json()["id"]
|
|
|
|
# Now, try to update it with an invalid email
|
|
update_data = {
|
|
"name": "Updated Name",
|
|
"sender_emails": ["not-a-valid-email"],
|
|
}
|
|
response = client.put(f"/newsletters/{newsletter_id}", json=update_data)
|
|
assert response.status_code == 422
|