36 lines
1.0 KiB
Python
36 lines
1.0 KiB
Python
from datetime import timedelta
|
|
|
|
from django.utils import timezone as tz
|
|
import pytest
|
|
|
|
|
|
class TestStreamers:
|
|
@pytest.fixture
|
|
def test___init__(self, streamers):
|
|
assert isinstance(streamers.timeout, timedelta)
|
|
|
|
@pytest.fixture
|
|
def test_reset(self, streamers, stations):
|
|
streamers.reset()
|
|
assert all(streamers.streamers[station.pk] == station for station in stations)
|
|
|
|
@pytest.fixture
|
|
def test_fetch(self, streamers):
|
|
streamers.next_date = tz.now() - tz.timedelta(seconds=30)
|
|
streamers.streamers = None
|
|
|
|
now = tz.now()
|
|
streamers.fetch()
|
|
|
|
assert all(streamer.calls.get("fetch") for streamer in streamers)
|
|
assert streamers.next_date > now
|
|
|
|
@pytest.fixture
|
|
def test_fetch_timeout_not_reached(self, streamers):
|
|
next_date = tz.now() + tz.timedelta(seconds=30)
|
|
streamers.next_date = next_date
|
|
|
|
streamers.fetch()
|
|
assert all(not streamer.calls.get("fetch") for streamer in streamers)
|
|
assert streamers.next_date == next_date
|