51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
import pytest
|
|
from types import SimpleNamespace
|
|
from unittest.mock import AsyncMock
|
|
|
|
from disagreement.http import HTTPClient
|
|
from disagreement.client import Client
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_get_guild_widget_calls_request():
|
|
http = HTTPClient(token="t")
|
|
http.request = AsyncMock(return_value={})
|
|
await http.get_guild_widget("1")
|
|
http.request.assert_called_once_with("GET", "/guilds/1/widget")
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_edit_guild_widget_calls_request():
|
|
http = HTTPClient(token="t")
|
|
http.request = AsyncMock(return_value={})
|
|
payload = {"enabled": True}
|
|
await http.edit_guild_widget("1", payload)
|
|
http.request.assert_called_once_with("PATCH", "/guilds/1/widget", payload=payload)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_client_fetch_widget_returns_data():
|
|
http = SimpleNamespace(get_guild_widget=AsyncMock(return_value={"enabled": True}))
|
|
client = Client.__new__(Client)
|
|
client._http = http
|
|
client._closed = False
|
|
|
|
data = await client.fetch_widget("1")
|
|
|
|
http.get_guild_widget.assert_awaited_once_with("1")
|
|
assert data == {"enabled": True}
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_client_edit_widget_returns_data():
|
|
http = SimpleNamespace(edit_guild_widget=AsyncMock(return_value={"enabled": False}))
|
|
client = Client.__new__(Client)
|
|
client._http = http
|
|
client._closed = False
|
|
|
|
payload = {"enabled": False}
|
|
data = await client.edit_widget("1", payload)
|
|
|
|
http.edit_guild_widget.assert_awaited_once_with("1", payload)
|
|
assert data == {"enabled": False}
|