|
|
import simplejson
|
|
|
|
|
|
from django.test import TestCase
|
|
|
|
|
|
from boards.models import Tag, Post
|
|
|
from boards.tests.mocks import MockRequest
|
|
|
from boards.utils import datetime_to_epoch
|
|
|
from boards.views.api import api_get_threaddiff
|
|
|
|
|
|
|
|
|
class ApiTest(TestCase):
|
|
|
def test_thread_diff(self):
|
|
|
tag = Tag.objects.create(name='test_tag')
|
|
|
opening_post = Post.objects.create_post(title='title', text='text',
|
|
|
tags=[tag])
|
|
|
|
|
|
last_edit_time = datetime_to_epoch(opening_post.last_edit_time)
|
|
|
|
|
|
# Check the exact timestamp post was added
|
|
|
empty_response = api_get_threaddiff(MockRequest(),
|
|
|
str(opening_post.thread_new.id),
|
|
|
str(last_edit_time))
|
|
|
diff = simplejson.loads(empty_response.content)
|
|
|
self.assertEqual(0, len(diff['added']),
|
|
|
'There must be no added posts in the diff.')
|
|
|
self.assertEqual(0, len(diff['updated']),
|
|
|
'There must be no updated posts in the diff.')
|
|
|
|
|
|
reply = Post.objects.create_post(title='',
|
|
|
text='[post]%d[/post]\ntext' % opening_post.id,
|
|
|
thread=opening_post.thread_new)
|
|
|
|
|
|
# Check the timestamp before post was added
|
|
|
response = api_get_threaddiff(MockRequest(),
|
|
|
str(opening_post.thread_new.id),
|
|
|
str(last_edit_time))
|
|
|
diff = simplejson.loads(response.content)
|
|
|
self.assertEqual(1, len(diff['added']),
|
|
|
'There must be 1 added posts in the diff.')
|
|
|
self.assertEqual(1, len(diff['updated']),
|
|
|
'There must be 1 updated posts in the diff.')
|
|
|
|
|
|
empty_response = api_get_threaddiff(MockRequest(),
|
|
|
str(opening_post.thread_new.id),
|
|
|
str(datetime_to_epoch(reply.last_edit_time)))
|
|
|
diff = simplejson.loads(empty_response.content)
|
|
|
self.assertEqual(0, len(diff['added']),
|
|
|
'There must be no added posts in the diff.')
|
|
|
self.assertEqual(0, len(diff['updated']),
|
|
|
'There must be no updated posts in the diff.')
|