Skip to content

Commit 7a853a9

Browse files
committed
DEVX-10043: Updating implementaton and tests for MMS caption max length
1 parent f760a58 commit 7a853a9

File tree

2 files changed

+52
-1
lines changed

2 files changed

+52
-1
lines changed

messages/src/vonage_messages/models/mms.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class MmsResource(BaseModel):
1616
"""
1717

1818
url: str
19-
caption: Optional[str] = Field(None, min_length=1, max_length=2000)
19+
caption: Optional[str] = Field(None, min_length=1, max_length=3000)
2020

2121

2222
class BaseMms(BaseMessage):

messages/tests/test_mms_models.py

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,58 @@
1+
import pytest
2+
from pydantic import ValidationError
13
from vonage_messages.models import MmsAudio, MmsImage, MmsResource, MmsVcard, MmsVideo
24
from vonage_messages.models.enums import WebhookVersion
35

46

7+
def test_create_mms_resource():
8+
mms_resource = MmsResource(
9+
url='https://example.com/resource',
10+
)
11+
mms_resource_dict = {
12+
'url': 'https://example.com/resource',
13+
}
14+
15+
assert mms_resource.model_dump(exclude_none=True) == mms_resource_dict
16+
17+
18+
def test_create_mms_resource_with_caption():
19+
mms_resource = MmsResource(
20+
url='https://example.com/resource',
21+
caption='Resource caption',
22+
)
23+
mms_resource_dict = {
24+
'url': 'https://example.com/resource',
25+
'caption': 'Resource caption',
26+
}
27+
28+
assert mms_resource.model_dump(exclude_none=True) == mms_resource_dict
29+
30+
31+
def test_create_mms_resource_without_url():
32+
with pytest.raises(ValidationError) as err:
33+
mms_resource = MmsResource(
34+
caption='Resource caption',
35+
)
36+
assert "Field required" in str(err.value)
37+
38+
39+
def test_create_mms_resource_with_caption_too_short():
40+
with pytest.raises(ValidationError) as err:
41+
mms_resource = MmsResource(
42+
url='https://example.com/resource',
43+
caption='',
44+
)
45+
assert "String should have at least 1 character" in str(err.value)
46+
47+
48+
def test_create_mms_resource_with_caption_too_long():
49+
with pytest.raises(ValidationError) as err:
50+
mms_resource = MmsResource(
51+
url='https://example.com/resource',
52+
caption='a' * 3001,
53+
)
54+
assert "String should have at most 3000 characters" in str(err.value)
55+
556
def test_create_mms_image():
657
mms_model = MmsImage(
758
to='1234567890',

0 commit comments

Comments
 (0)