##// END OF EJS Templates
Don't run time conversion if Intl not available in browser. Also convert...
Don't run time conversion if Intl not available in browser. Also convert thread death time in archived threads

File last commit:

r1015:c84f21f3 merge decentral
r1023:0040ea34 default
Show More
test_post.py
135 lines | 4.5 KiB | text/x-python | PythonLexer
neko259
Split tests module into separate modules
r821 from django.core.paginator import Paginator
from django.test import TestCase
from boards import settings
from boards.models import Tag, Post, Thread
class PostTests(TestCase):
def _create_post(self):
neko259
Fixed tests with tag uniqueness change
r985 tag, created = Tag.objects.get_or_create(name='test_tag')
neko259
Split tests module into separate modules
r821 return Post.objects.create_post(title='title', text='text',
tags=[tag])
def test_post_add(self):
"""Test adding post"""
post = self._create_post()
self.assertIsNotNone(post, 'No post was created.')
self.assertEqual('test_tag', post.get_thread().tags.all()[0].name,
'No tags were added to the post.')
def test_delete_post(self):
"""Test post deletion"""
post = self._create_post()
post_id = post.id
neko259
Delete thread when the OP is deleted. Removed old post deleter
r880 post.delete()
neko259
Split tests module into separate modules
r821
self.assertFalse(Post.objects.filter(id=post_id).exists())
def test_delete_thread(self):
"""Test thread deletion"""
opening_post = self._create_post()
thread = opening_post.get_thread()
reply = Post.objects.create_post("", "", thread=thread)
neko259
Delete replies properly when deleting a thread. Delete thread directly, not by...
r950 thread.delete()
neko259
Split tests module into separate modules
r821
neko259
Actually delete the opening post when deleting the thread
r884 self.assertFalse(Post.objects.filter(id=reply.id).exists(),
'Reply was not deleted with the thread.')
self.assertFalse(Post.objects.filter(id=opening_post.id).exists(),
'Opening post was not deleted with the thread.')
neko259
Split tests module into separate modules
r821
def test_post_to_thread(self):
"""Test adding post to a thread"""
op = self._create_post()
post = Post.objects.create_post("", "", thread=op.get_thread())
self.assertIsNotNone(post, 'Reply to thread wasn\'t created')
self.assertEqual(op.get_thread().last_edit_time, post.pub_time,
'Post\'s create time doesn\'t match thread last edit'
' time')
def test_delete_posts_by_ip(self):
"""Test deleting posts with the given ip"""
post = self._create_post()
post_id = post.id
Post.objects.delete_posts_by_ip('0.0.0.0')
self.assertFalse(Post.objects.filter(id=post_id).exists())
def test_get_thread(self):
"""Test getting all posts of a thread"""
opening_post = self._create_post()
for i in range(2):
Post.objects.create_post('title', 'text',
thread=opening_post.get_thread())
thread = opening_post.get_thread()
neko259
Fixed creating new thread that was broken after messing up dependencies in...
r959 self.assertEqual(3, thread.get_replies().count())
neko259
Split tests module into separate modules
r821
def test_create_post_with_tag(self):
"""Test adding tag to post"""
tag = Tag.objects.create(name='test_tag')
post = Post.objects.create_post(title='title', text='text', tags=[tag])
thread = post.get_thread()
self.assertIsNotNone(post, 'Post not created')
self.assertTrue(tag in thread.tags.all(), 'Tag not added to thread')
def test_thread_max_count(self):
"""Test deletion of old posts when the max thread count is reached"""
for i in range(settings.MAX_THREAD_COUNT + 1):
self._create_post()
self.assertEqual(settings.MAX_THREAD_COUNT,
len(Thread.objects.filter(archived=False)))
def test_pages(self):
"""Test that the thread list is properly split into pages"""
for i in range(settings.MAX_THREAD_COUNT):
self._create_post()
all_threads = Thread.objects.filter(archived=False)
paginator = Paginator(Thread.objects.filter(archived=False),
settings.THREADS_PER_PAGE)
posts_in_second_page = paginator.page(2).object_list
first_post = posts_in_second_page[0]
self.assertEqual(all_threads[settings.THREADS_PER_PAGE].id,
neko259
Fixed thread gallery view
r889 first_post.id)
def test_thread_replies(self):
"""
Tests that the replies can be queried from a thread in all possible
ways.
"""
tag = Tag.objects.create(name='test_tag')
opening_post = Post.objects.create_post(title='title', text='text',
tags=[tag])
thread = opening_post.get_thread()
reply1 = Post.objects.create_post(title='title', text='text', thread=thread)
reply2 = Post.objects.create_post(title='title', text='text', thread=thread)
replies = thread.get_replies()
self.assertTrue(len(replies) > 0, 'No replies found for thread.')
replies = thread.get_replies(view_fields_only=True)
self.assertTrue(len(replies) > 0,
'No replies found for thread with view fields only.')