mirror of
https://github.com/TrentSPalmer/trentpalmerdotorg.git
synced 2024-11-27 11:41:30 -08:00
155 lines
7.3 KiB
Python
155 lines
7.3 KiB
Python
from django.test import TestCase
|
|
from django.contrib.auth.models import User
|
|
from audio.tests.test_views import set_up
|
|
from audio.models import Episode, Feed
|
|
from django.urls import reverse
|
|
from datetime import date
|
|
|
|
|
|
class TestNewEpisodeViewTestCase(TestCase):
|
|
|
|
def setUp(self):
|
|
set_up()
|
|
|
|
def test_new_episode_view_get(self):
|
|
feed_a = Feed.objects.get(title="Short Stories Mark Twain")
|
|
self.client.login(username='user_b', password='password_user_b')
|
|
kw_args = {'feed_pk': feed_a.pk, 'feed_title_slug': feed_a.slug}
|
|
response = self.client.get(reverse('audio:new_episode', kwargs=kw_args))
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'base_form.html')
|
|
self.assertFalse(Episode.objects.filter(
|
|
title="Mark Twain Taming The Bicycle",
|
|
).exists())
|
|
self.assertEquals(
|
|
response.request['PATH_INFO'],
|
|
f'/new-episode/{feed_a.pk}/{feed_a.slug}'
|
|
)
|
|
|
|
def test_new_episode_view_wrong_user(self):
|
|
feed_a = Feed.objects.get(title="Short Stories Mark Twain")
|
|
self.client.login(username='user_a', password='password_user_a')
|
|
kw_args = {'feed_pk': feed_a.pk, 'feed_title_slug': feed_a.slug}
|
|
pub_date = str(date.today())
|
|
with (
|
|
open('bicycle.jpg', 'rb') as image_f,
|
|
open('Mark Twain Taming The Bicycle.mp3', 'rb') as mp3_f
|
|
):
|
|
response = self.client.post(reverse('audio:new_episode', kwargs=kw_args), {
|
|
'title': "Mark Twain Taming The Bicycle",
|
|
'author': "Mark Twain",
|
|
'pub_date': pub_date,
|
|
'episode_number': 3,
|
|
'description': 'learn how to ride a bicycle',
|
|
'mp3': mp3_f,
|
|
'image_title': 'A Penny Farthing',
|
|
'image_attribution': 'Agnieszka Kwiecień',
|
|
'image_attribution_url': 'https://commons.wikimedia.org/wiki/User:Nova',
|
|
'original_image_url': 'https://commons.wikimedia.org/wiki/File:Ordinary_bicycle01.jpg',
|
|
'image_license': 1,
|
|
'image_license_jurisdiction': 'in the USA',
|
|
'image': image_f,
|
|
}, follow=True)
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertFalse(Episode.objects.filter(
|
|
title="Mark Twain Taming The Bicycle",
|
|
).exists())
|
|
self.assertEquals(response.request['PATH_INFO'], '/')
|
|
self.assertTemplateUsed(response, 'audio/index.html')
|
|
|
|
def test_new_episode_view_no_data(self):
|
|
feed_a = Feed.objects.get(title="Short Stories Mark Twain")
|
|
self.client.login(username='user_b', password='password_user_b')
|
|
kw_args = {'feed_pk': feed_a.pk, 'feed_title_slug': feed_a.slug}
|
|
response = self.client.post(reverse('audio:new_episode', kwargs=kw_args))
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'base_form.html')
|
|
qs = Episode.objects.filter(title="Mark Twain Taming The Bicycle")
|
|
self.assertEquals(len(qs), 0)
|
|
self.assertEquals(
|
|
response.request['PATH_INFO'],
|
|
f'/new-episode/{feed_a.pk}/{feed_a.slug}'
|
|
)
|
|
|
|
def test_new_episode_view_no_login(self):
|
|
feed_a = Feed.objects.get(title="Short Stories Mark Twain")
|
|
kw_args = {'feed_pk': feed_a.pk, 'feed_title_slug': feed_a.slug}
|
|
pub_date = str(date.today())
|
|
with (
|
|
open('bicycle.jpg', 'rb') as image_f,
|
|
open('Mark Twain Taming The Bicycle.mp3', 'rb') as mp3_f
|
|
):
|
|
response = self.client.post(reverse('audio:new_episode', kwargs=kw_args), {
|
|
'title': "Mark Twain Taming The Bicycle",
|
|
'author': "Mark Twain",
|
|
'pub_date': pub_date,
|
|
'episode_number': 3,
|
|
'description': 'learn how to ride a bicycle',
|
|
'mp3': mp3_f,
|
|
'image_title': 'A Penny Farthing',
|
|
'image_attribution': 'Agnieszka Kwiecień',
|
|
'image_attribution_url': 'https://commons.wikimedia.org/wiki/User:Nova',
|
|
'original_image_url': 'https://commons.wikimedia.org/wiki/File:Ordinary_bicycle01.jpg',
|
|
'image_license': 1,
|
|
'image_license_jurisdiction': 'in the USA',
|
|
'image': image_f,
|
|
}, follow=True)
|
|
self.assertEquals(response.status_code, 200)
|
|
self.assertTemplateUsed(response, 'audio/index.html')
|
|
qs = Episode.objects.filter(title="Mark Twain Taming The Bicycle")
|
|
self.assertEquals(len(qs), 0)
|
|
self.assertEquals(response.request['PATH_INFO'], '/')
|
|
|
|
def test_new_episode_view(self):
|
|
feed_a = Feed.objects.get(title="Short Stories Mark Twain")
|
|
user_b = User.objects.get(username='user_b')
|
|
self.client.login(username='user_b', password='password_user_b')
|
|
kw_args = {'feed_pk': feed_a.pk, 'feed_title_slug': feed_a.slug}
|
|
pub_date = str(date.today())
|
|
with (
|
|
open('bicycle.jpg', 'rb') as image_f,
|
|
open('Mark Twain Taming The Bicycle.mp3', 'rb') as mp3_f
|
|
):
|
|
response = self.client.post(reverse('audio:new_episode', kwargs=kw_args), {
|
|
'title': "Mark Twain Taming The Bicycle",
|
|
'author': "Mark Twain",
|
|
'pub_date': pub_date,
|
|
'episode_number': 3,
|
|
'description': 'learn how to ride a bicycle',
|
|
'mp3': mp3_f,
|
|
'image_title': 'A Penny Farthing',
|
|
'image_attribution': 'Agnieszka Kwiecień',
|
|
'image_attribution_url': 'https://commons.wikimedia.org/wiki/User:Nova',
|
|
'original_image_url': 'https://commons.wikimedia.org/wiki/File:Ordinary_bicycle01.jpg',
|
|
'image_license': 1,
|
|
'image_license_jurisdiction': 'in the USA',
|
|
'image': image_f,
|
|
})
|
|
self.assertEquals(response.status_code, 302)
|
|
episode_a = Episode.objects.get(title="Mark Twain Taming The Bicycle")
|
|
self.assertEquals(episode_a.author, "Mark Twain")
|
|
self.assertEquals(str(episode_a.pub_date), pub_date)
|
|
self.assertEquals(episode_a.episode_number, 3)
|
|
self.assertEquals(episode_a.description, 'learn how to ride a bicycle')
|
|
self.assertEquals(episode_a.image_title, 'A Penny Farthing')
|
|
self.assertEquals(episode_a.image_attribution, 'Agnieszka Kwiecień')
|
|
self.assertEquals(
|
|
episode_a.image_attribution_url, 'https://commons.wikimedia.org/wiki/User:Nova'
|
|
)
|
|
self.assertEquals(
|
|
episode_a.original_image_url,
|
|
'https://commons.wikimedia.org/wiki/File:Ordinary_bicycle01.jpg'
|
|
)
|
|
self.assertEquals(episode_a.image_license, 1)
|
|
self.assertEquals(episode_a.image_license_jurisdiction, 'in the USA')
|
|
self.assertEquals(episode_a.image_license_name, 'Public Domain')
|
|
self.assertEquals(
|
|
episode_a.image_license_url, 'https://en.wikipedia.org/wiki/Public_domain'
|
|
)
|
|
self.assertEquals(episode_a.user, user_b)
|
|
self.assertEquals(episode_a.feed, feed_a)
|
|
self.assertEquals(
|
|
response.request['PATH_INFO'],
|
|
f'/new-episode/{feed_a.pk}/{feed_a.slug}'
|
|
)
|