en cours - test model diffusion

This commit is contained in:
2023-05-11 23:30:09 +02:00
parent 2a034fc467
commit 7bf2989090
2 changed files with 182 additions and 120 deletions

View File

@@ -1,5 +1,9 @@
from datetime import time, timedelta
import itertools
import random
import datetime
from django.utils import timezone as tz
import pytz
import pytest
from model_bakery import baker
@@ -100,3 +104,92 @@ def podcasts(episodes):
sound.file = f"test_sound_{episode.pk}_{i}.mp3"
items += sounds
return items
@pytest.fixture
def diffusions_time_variation(episodes):
random_episode = random.choice([episodes[0], episodes[1], episodes[2]])
now_date = datetime.date.today()
now_datetime = tz.now()
tomorrow_datetime = now_datetime + timedelta(hours=25)
yesterday_datetime = now_datetime - timedelta(hours=25)
now_diffusion = baker.make(
models.Diffusion,
episode=random_episode,
start=now_datetime - timedelta(minutes=30),
end=now_datetime + timedelta(minutes=30),
)
after_diffusion = baker.make(
models.Diffusion,
episode=random_episode,
start=now_datetime + timedelta(minutes=30),
end=now_datetime + timedelta(minutes=60),
)
tomorrow_diffusion = baker.make(
models.Diffusion,
episode=random_episode,
start=tomorrow_datetime,
end=tomorrow_datetime + timedelta(minutes=30),
)
before_diffusion = baker.make(
models.Diffusion,
episode=random_episode,
start=now_datetime - timedelta(minutes=60),
end=now_datetime - timedelta(minutes=30),
)
yesterday_diffusion = baker.make(
models.Diffusion,
episode=random_episode,
start=yesterday_datetime,
end=yesterday_datetime + timedelta(minutes=30),
)
return (
now_date,
now_datetime,
yesterday_diffusion,
before_diffusion,
now_diffusion,
after_diffusion,
tomorrow_diffusion,
)
@pytest.fixture
def diffusions_episode_variation(episodes):
key_episode = episodes[1]
another_episode = episodes[2]
diffusions_with_the_key_episode = baker.make(
models.Diffusion, _quantity=3, episode=key_episode
)
diffusions_without_the_key_episode = baker.make(
models.Diffusion, _quantity=3, episode=another_episode
)
return (
key_episode,
another_episode,
diffusions_with_the_key_episode,
diffusions_without_the_key_episode,
)
@pytest.fixture
def diffusions_with_rerun(episodes, programs):
initial_diffusion = baker.make(
models.Diffusion,
program=programs[0],
episode=episodes[0],
start=datetime.datetime(2023, 5, 12, 13, 0, tzinfo=pytz.UTC),
end=datetime.datetime(2023, 5, 12, 13, 30, tzinfo=pytz.UTC),
)
rerun_diffusion = baker.make(
models.Diffusion,
program=programs[0],
episode=episodes[0],
initial=initial_diffusion,
)
return initial_diffusion, rerun_diffusion
@pytest.fixture
def diffusion(diffusions_with_rerun):
return diffusions_with_rerun[0]