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