trentpalmerdotorg/audio/tests/test_new_feed_view.py

124 lines
6.7 KiB
Python
Raw Normal View History

2021-04-11 23:34:37 -07:00
from django.test import TestCase
from django.conf import settings
from django.contrib.auth.models import User
from audio.models import Feed, Episode
from datetime import datetime, timedelta
from django.urls import reverse
class TestNewFeedViewTestCase(TestCase):
def setUp(self):
user_a = User.objects.create(username='user_a')
user_a.set_password('password_user_a')
user_a.save()
user_b = User.objects.create(username='user_b')
user_b.set_password('password_user_b')
user_b.save()
feed_a = Feed.objects.create(user=user_a, title='Caesar-Pompey Civil War')
Episode.objects.create(
user=user_a, feed=feed_a, title="Caesar-Pompey Civil War Book I",
pub_date=datetime.today() - timedelta(days=8)
)
Episode.objects.create(
user=user_a, feed=feed_a, title="Caesar-Pompey Civil War Book II",
pub_date=datetime.today() - timedelta(days=7)
)
def test_new_feed_view_get(self):
self.client.login(username='user_b', password='password_user_b')
response = self.client.get(reverse('audio:new_feed'))
self.assertEquals(response.status_code, 200)
self.assertTemplateUsed(response, 'base_form.html')
self.assertEquals(response.request['PATH_INFO'], '/new-feed/')
2021-04-11 23:34:37 -07:00
def test_new_feed_view_no_data(self):
self.client.login(username='user_b', password='password_user_b')
response = self.client.post(reverse('audio:new_feed'))
self.assertEquals(response.status_code, 200)
self.assertTemplateUsed(response, 'base_form.html')
qs = Feed.objects.filter(title="Short Stories Mark Twain")
self.assertEquals(len(qs), 0)
2021-04-18 15:13:58 -07:00
self.assertEquals(response.request['PATH_INFO'], '/new-feed/')
2021-04-11 23:34:37 -07:00
def test_new_feed_view_no_login(self):
with open('bicycle.jpg', 'rb') as image_f:
response = self.client.post(reverse('audio:new_feed'), {
'title': "Short Stories Mark Twain",
'author': "Mark Twain",
'ebook_title': "What Is Man? and Other Essays",
'ebook_url': "https://gutenberg.org/ebooks/70",
'author_url': "http://gutenberg.org/ebooks/author/53",
'translator': 'McDevitte, W. A. (William Alexander)',
'translator_url': 'https://gutenberg.org/ebooks/author/37952',
'intro_author': 'De Quincey, Thomas',
'intro_author_url': 'https://gutenberg.org/ebooks/author/797',
'license': 1,
'license_jurisdiction': 'in the USA',
'description': 'Short stories by Mark Twain.',
'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 = Feed.objects.filter(title="Short Stories Mark Twain")
self.assertEquals(len(qs), 0)
2021-04-18 15:13:58 -07:00
self.assertEquals(response.request['PATH_INFO'], '/')
2021-04-11 23:34:37 -07:00
def test_new_feed_view(self):
self.client.login(username='user_b', password='password_user_b')
with open('bicycle.jpg', 'rb') as image_f:
response = self.client.post(reverse('audio:new_feed'), {
'title': "Short Stories Mark Twain",
'author': "Mark Twain",
'ebook_title': "What Is Man? and Other Essays",
'ebook_url': "https://gutenberg.org/ebooks/70",
'author_url': "http://gutenberg.org/ebooks/author/53",
'translator': 'McDevitte, W. A. (William Alexander)',
'translator_url': 'https://gutenberg.org/ebooks/author/37952',
'intro_author': 'De Quincey, Thomas',
'intro_author_url': 'https://gutenberg.org/ebooks/author/797',
'license': 1,
'license_jurisdiction': 'in the USA',
'description': 'Short stories by Mark Twain.',
'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)
feed_a = Feed.objects.get(title="Short Stories Mark Twain")
user_b = User.objects.get(username='user_b')
self.assertEquals(feed_a.user, user_b)
self.assertEquals(feed_a.author, "Mark Twain")
self.assertEquals(feed_a.ebook_title, "What Is Man? and Other Essays")
self.assertEquals(feed_a.ebook_url, "https://gutenberg.org/ebooks/70")
self.assertEquals(feed_a.author_url, "http://gutenberg.org/ebooks/author/53")
self.assertEquals(feed_a.translator, "McDevitte, W. A. (William Alexander)")
self.assertEquals(feed_a.translator_url, "https://gutenberg.org/ebooks/author/37952")
self.assertEquals(feed_a.intro_author, "De Quincey, Thomas")
self.assertEquals(feed_a.intro_author_url, "https://gutenberg.org/ebooks/author/797")
self.assertEquals(feed_a.license, 1)
self.assertEquals(feed_a.license_jurisdiction, "in the USA")
self.assertEquals(feed_a.description, "Short stories by Mark Twain.")
self.assertEquals(feed_a.image_title, "A Penny Farthing")
self.assertEquals(feed_a.image_attribution, "Agnieszka Kwiecień")
self.assertEquals(feed_a.image_attribution_url, "https://commons.wikimedia.org/wiki/User:Nova")
self.assertEquals(feed_a.original_image_url, "https://commons.wikimedia.org/wiki/File:Ordinary_bicycle01.jpg")
self.assertEquals(feed_a.image_license, 1)
self.assertEquals(feed_a.image_license_jurisdiction, "in the USA")
self.assertEquals(feed_a.image_license_url, "https://en.wikipedia.org/wiki/Public_domain")
self.assertEquals(feed_a.image_license_name, 'Public Domain')
self.assertEquals(feed_a.license_url, "https://en.wikipedia.org/wiki/Public_domain")
self.assertEquals(feed_a.license_name, 'Public Domain')
self.assertEquals(feed_a.get_itpc_rss, f'itpc://{settings.DOMAIN_NAME}/rss/{feed_a.slug}.xml')
2021-04-18 15:13:58 -07:00
self.assertEquals(response.request['PATH_INFO'], '/new-feed/')