43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import pytest
|
|
from types import SimpleNamespace
|
|
from unittest.mock import AsyncMock
|
|
|
|
from disagreement.http import HTTPClient
|
|
from disagreement.client import Client
|
|
from disagreement.models import GuildTemplate
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_get_guild_templates_calls_request():
|
|
http = HTTPClient(token="t")
|
|
http.request = AsyncMock(return_value=[])
|
|
await http.get_guild_templates("1")
|
|
http.request.assert_called_once_with("GET", "/guilds/1/templates")
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_client_fetch_templates_returns_models():
|
|
http = SimpleNamespace(
|
|
get_guild_templates=AsyncMock(
|
|
return_value=[
|
|
{
|
|
"code": "c",
|
|
"name": "n",
|
|
"usage_count": 0,
|
|
"creator_id": "u",
|
|
"created_at": "t",
|
|
"updated_at": "t",
|
|
"source_guild_id": "g",
|
|
}
|
|
]
|
|
)
|
|
)
|
|
client = Client.__new__(Client)
|
|
client._http = http
|
|
client._closed = False
|
|
|
|
templates = await client.fetch_templates("g")
|
|
|
|
http.get_guild_templates.assert_awaited_once_with("g")
|
|
assert isinstance(templates[0], GuildTemplate)
|