forked from rc/aircox
#93 Co-authored-by: bkfox <thomas bkfox net> Reviewed-on: rc/aircox#95
This commit is contained in:
72
aircox/tests/conftest.py
Normal file
72
aircox/tests/conftest.py
Normal file
@ -0,0 +1,72 @@
|
||||
from datetime import time, timedelta
|
||||
import itertools
|
||||
|
||||
import pytest
|
||||
from model_bakery import baker
|
||||
|
||||
from aircox import models
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def stations():
|
||||
return baker.make("aircox.station", _quantity=2)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def programs(stations):
|
||||
items = list(
|
||||
itertools.chain(
|
||||
*(
|
||||
baker.make("aircox.program", station=station, _quantity=3)
|
||||
for station in stations
|
||||
)
|
||||
)
|
||||
)
|
||||
for item in items:
|
||||
item.save()
|
||||
return items
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sched_initials(programs):
|
||||
# use concrete class; timezone is provided in order to ensure DST
|
||||
items = [
|
||||
baker.prepare(
|
||||
"aircox.schedule",
|
||||
program=program,
|
||||
time=time(16, 00),
|
||||
timezone="Europe/Brussels",
|
||||
)
|
||||
for program in programs
|
||||
]
|
||||
models.Schedule.objects.bulk_create(items)
|
||||
return items
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def sched_reruns(sched_initials):
|
||||
# use concrete class
|
||||
items = [
|
||||
baker.prepare(
|
||||
"aircox.schedule",
|
||||
initial=initial,
|
||||
program=initial.program,
|
||||
date=initial.date,
|
||||
time=(initial.start + timedelta(hours=1)).time(),
|
||||
)
|
||||
for initial in sched_initials
|
||||
]
|
||||
models.Schedule.objects.bulk_create(items)
|
||||
return items
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def schedules(sched_initials, sched_reruns):
|
||||
return sched_initials + sched_reruns
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def episodes(programs):
|
||||
return [
|
||||
baker.make("aircox.episode", parent=program) for program in programs
|
||||
]
|
Reference in New Issue
Block a user