MCP Email Server
by ai-zerolab
- mcp-email-server
- tests
from datetime import datetime
from mcp_email_server.emails.models import EmailData, EmailPageResponse
class TestEmailData:
def test_init(self):
"""Test initialization with valid data."""
email_data = EmailData(
subject="Test Subject",
sender="test@example.com",
body="Test Body",
date=datetime.now(),
attachments=["file1.txt", "file2.pdf"],
)
assert email_data.subject == "Test Subject"
assert email_data.sender == "test@example.com"
assert email_data.body == "Test Body"
assert isinstance(email_data.date, datetime)
assert email_data.attachments == ["file1.txt", "file2.pdf"]
def test_from_email(self):
"""Test from_email class method."""
now = datetime.now()
email_dict = {
"subject": "Test Subject",
"from": "test@example.com",
"body": "Test Body",
"date": now,
"attachments": ["file1.txt", "file2.pdf"],
}
email_data = EmailData.from_email(email_dict)
assert email_data.subject == "Test Subject"
assert email_data.sender == "test@example.com"
assert email_data.body == "Test Body"
assert email_data.date == now
assert email_data.attachments == ["file1.txt", "file2.pdf"]
class TestEmailPageResponse:
def test_init(self):
"""Test initialization with valid data."""
now = datetime.now()
email_data = EmailData(
subject="Test Subject",
sender="test@example.com",
body="Test Body",
date=now,
attachments=[],
)
response = EmailPageResponse(
page=1,
page_size=10,
before=now,
since=None,
subject="Test",
body=None,
text=None,
emails=[email_data],
total=1,
)
assert response.page == 1
assert response.page_size == 10
assert response.before == now
assert response.since is None
assert response.subject == "Test"
assert response.body is None
assert response.text is None
assert len(response.emails) == 1
assert response.emails[0] == email_data
assert response.total == 1
def test_empty_emails(self):
"""Test with empty email list."""
response = EmailPageResponse(
page=1,
page_size=10,
before=None,
since=None,
subject=None,
body=None,
text=None,
emails=[],
total=0,
)
assert response.page == 1
assert response.page_size == 10
assert len(response.emails) == 0
assert response.total == 0