43 lines
1.3 KiB
Python
43 lines
1.3 KiB
Python
import pytest
|
|
from datetime import datetime, timedelta, timezone
|
|
from types import SimpleNamespace
|
|
from unittest.mock import AsyncMock
|
|
|
|
from disagreement.client import Client
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_client_records_start_time(monkeypatch):
|
|
start = datetime(2020, 1, 1, tzinfo=timezone.utc)
|
|
|
|
monkeypatch.setattr("disagreement.client.utcnow", lambda: start)
|
|
|
|
client = Client(token="t")
|
|
monkeypatch.setattr(client, "_initialize_gateway", AsyncMock())
|
|
client._gateway = SimpleNamespace(connect=AsyncMock())
|
|
monkeypatch.setattr(client, "wait_until_ready", AsyncMock())
|
|
|
|
assert client.start_time is None
|
|
await client.connect()
|
|
assert client.start_time == start
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_client_uptime(monkeypatch):
|
|
start = datetime(2020, 1, 1, tzinfo=timezone.utc)
|
|
end = start + timedelta(seconds=5)
|
|
times = [start, end]
|
|
|
|
def fake_now():
|
|
return times.pop(0)
|
|
|
|
monkeypatch.setattr("disagreement.client.utcnow", fake_now)
|
|
|
|
client = Client(token="t")
|
|
monkeypatch.setattr(client, "_initialize_gateway", AsyncMock())
|
|
client._gateway = SimpleNamespace(connect=AsyncMock())
|
|
monkeypatch.setattr(client, "wait_until_ready", AsyncMock())
|
|
|
|
await client.connect()
|
|
assert client.uptime() == timedelta(seconds=5)
|