Initial commit: add Gitea PyPI publish workflow
This commit is contained in:
112
tests/test_sms.py
Normal file
112
tests/test_sms.py
Normal file
@@ -0,0 +1,112 @@
|
||||
"""Tests for the SMS/MMS client."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
|
||||
import pytest
|
||||
import respx
|
||||
from httpx import Response
|
||||
|
||||
from conduit_client import AsyncConduitClient, ConduitClient
|
||||
from conduit_client.models.sms import (
|
||||
SendMmsRequest,
|
||||
SendSmsDefaultRequest,
|
||||
SendSmsRequest,
|
||||
)
|
||||
|
||||
|
||||
@respx.mock
|
||||
def test_list_sms(api_key: str) -> None:
|
||||
respx.get("https://api.example.com/sms").mock(
|
||||
return_value=Response(200, json=[{"id": 1, "did": "5550100", "dst": "5550200", "message": "hi"}])
|
||||
)
|
||||
with ConduitClient(api_key, base_url="https://api.example.com") as client:
|
||||
result = client.sms.list_sms()
|
||||
assert len(result) == 1
|
||||
assert result[0].id == 1
|
||||
|
||||
|
||||
@respx.mock
|
||||
def test_send_sms(api_key: str) -> None:
|
||||
route = respx.post("https://api.example.com/sms/send").mock(
|
||||
return_value=Response(200, json={"id": 123456})
|
||||
)
|
||||
with ConduitClient(api_key, base_url="https://api.example.com") as client:
|
||||
result = client.sms.send_sms(SendSmsRequest(did="5550100", dst="5550200", message="hello"))
|
||||
assert result.id == 123456
|
||||
assert json.loads(route.calls[0].request.content) == {
|
||||
"did": "5550100",
|
||||
"dst": "5550200",
|
||||
"message": "hello",
|
||||
}
|
||||
|
||||
|
||||
@respx.mock
|
||||
def test_send_sms_default(api_key: str) -> None:
|
||||
route = respx.post("https://api.example.com/sms/send/default").mock(
|
||||
return_value=Response(200, json={"id": 123457})
|
||||
)
|
||||
with ConduitClient(api_key, base_url="https://api.example.com") as client:
|
||||
result = client.sms.send_sms_default(SendSmsDefaultRequest(dst="5550200", message="hello"))
|
||||
assert result.id == 123457
|
||||
assert json.loads(route.calls[0].request.content) == {
|
||||
"dst": "5550200",
|
||||
"message": "hello",
|
||||
}
|
||||
|
||||
|
||||
@respx.mock
|
||||
def test_send_mms(api_key: str) -> None:
|
||||
route = respx.post("https://api.example.com/mms/send").mock(
|
||||
return_value=Response(200, json={"id": 123458})
|
||||
)
|
||||
with ConduitClient(api_key, base_url="https://api.example.com") as client:
|
||||
result = client.sms.send_mms(
|
||||
SendMmsRequest(
|
||||
did="5550100",
|
||||
dst="5550200",
|
||||
message="pic",
|
||||
media1="https://example.com/img.jpg",
|
||||
)
|
||||
)
|
||||
assert result.id == 123458
|
||||
assert json.loads(route.calls[0].request.content)["media1"] == "https://example.com/img.jpg"
|
||||
|
||||
|
||||
@respx.mock
|
||||
def test_get_mms_media(api_key: str) -> None:
|
||||
route = respx.get("https://api.example.com/mms/123/media").mock(
|
||||
return_value=Response(
|
||||
200,
|
||||
json={"id": 123, "date": "2024-01-01", "media": [{"url": "https://x.com/a.jpg"}]},
|
||||
)
|
||||
)
|
||||
with ConduitClient(api_key, base_url="https://api.example.com") as client:
|
||||
result = client.sms.get_mms_media(123, media_as_array=True)
|
||||
assert result.media is not None
|
||||
assert len(result.media) == 1
|
||||
assert route.calls[0].request.url.params["media_as_array"] == "true"
|
||||
|
||||
|
||||
@respx.mock
|
||||
def test_delete_sms(api_key: str) -> None:
|
||||
respx.delete("https://api.example.com/sms/123").mock(
|
||||
return_value=Response(200, json={"status": "success"})
|
||||
)
|
||||
with ConduitClient(api_key, base_url="https://api.example.com") as client:
|
||||
result = client.sms.delete_sms(123)
|
||||
assert result.status == "success"
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
@respx.mock
|
||||
async def test_async_send_sms(api_key: str) -> None:
|
||||
respx.post("https://api.example.com/sms/send").mock(
|
||||
return_value=Response(200, json={"id": 123456})
|
||||
)
|
||||
async with AsyncConduitClient(api_key, base_url="https://api.example.com") as client:
|
||||
result = await client.sms.send_sms(
|
||||
SendSmsRequest(did="5550100", dst="5550200", message="hello")
|
||||
)
|
||||
assert result.id == 123456
|
||||
Reference in New Issue
Block a user