forked from rc/aircox
!111 Co-authored-by: bkfox <thomas bkfox net> Reviewed-on: rc/aircox#114
This commit is contained in:
64
aircox/tests/models/test_episode.py
Normal file
64
aircox/tests/models/test_episode.py
Normal file
@ -0,0 +1,64 @@
|
||||
import datetime
|
||||
import pytest
|
||||
|
||||
from aircox.conf import settings
|
||||
from aircox import models
|
||||
|
||||
|
||||
class TestEpisode:
|
||||
@pytest.mark.django_db
|
||||
def test_program(self, episode):
|
||||
assert episode.program == episode.parent.program
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_podcasts(self, episode, podcasts):
|
||||
podcasts = {
|
||||
podcast.pk: podcast
|
||||
for podcast in podcasts
|
||||
if podcast.episode == episode
|
||||
}
|
||||
for data in episode.podcasts:
|
||||
podcast = podcasts[data["pk"]]
|
||||
assert data["name"] == podcast.name
|
||||
assert data["page_url"] == episode.get_absolute_url()
|
||||
assert data["page_title"] == episode.title
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_get_absolute_url_is_published(self, episode):
|
||||
episode.status = models.Episode.STATUS_PUBLISHED
|
||||
assert episode.get_absolute_url() != episode.parent.get_absolute_url()
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_get_absolute_url_not_published(self, episode):
|
||||
episode.status = models.Episode.STATUS_DRAFT
|
||||
assert episode.get_absolute_url() == episode.parent.get_absolute_url()
|
||||
|
||||
@pytest.mark.django_db(transaction=False)
|
||||
def test_save_raises_parent_is_none(self, episode):
|
||||
with pytest.raises(ValueError):
|
||||
episode.parent = None
|
||||
episode.save()
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_get_default_title(self, programs):
|
||||
program = programs[0]
|
||||
date = datetime.date(2023, 5, 17)
|
||||
result = models.Episode.get_default_title(program, date)
|
||||
assert program.title in result
|
||||
assert date.strftime(settings.EPISODE_TITLE_DATE_FORMAT) in result
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_get_init_kwargs_from(self, program):
|
||||
date = datetime.date(2023, 3, 14)
|
||||
date_str = date.strftime(settings.EPISODE_TITLE_DATE_FORMAT)
|
||||
|
||||
kwargs = models.Episode.get_init_kwargs_from(program, date)
|
||||
title = kwargs["title"]
|
||||
assert program.title in title
|
||||
assert date_str in title
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_get_init_kwargs_from_with_title(self, program):
|
||||
title = "test title"
|
||||
kwargs = models.Episode.get_init_kwargs_from(program, title=title)
|
||||
assert title == kwargs["title"]
|
Reference in New Issue
Block a user