##// END OF EJS Templates
Sync fixes
Sync fixes

File last commit:

r1244:0f0731ca decentral
r1386:1a1d9a43 decentral
Show More
test_sync.py
72 lines | 2.4 KiB | text/x-python | PythonLexer
from boards.models import KeyPair, Post, Tag
from boards.models.post.sync import SyncManager
from boards.tests.mocks import MockRequest
from boards.views.sync import response_get
__author__ = 'neko259'
from django.test import TestCase
class SyncTest(TestCase):
def test_get(self):
"""
Forms a GET request of a post and checks the response.
"""
KeyPair.objects.generate_key(primary=True)
tag = Tag.objects.create(name='tag1')
post = Post.objects.create_post(title='test_title', text='test_text',
tags=[tag])
request = MockRequest()
request.body = (
'<request type="get" version="1.0">'
'<model name="post" version="1.0">'
'<id key="%s" local-id="%d" type="%s" />'
'</model>'
'</request>' % (post.global_id.key,
post.id,
post.global_id.key_type)
)
response = response_get(request).content.decode()
self.assertTrue(
'<status>success</status>'
'<models>'
'<model name="post">'
'<content>'
'<id key="%s" local-id="%d" type="%s" />'
'<title>%s</title>'
'<text>%s</text>'
'<tags><tag>%s</tag></tags>'
'<pub-time>%s</pub-time>'
'</content>' % (
post.global_id.key,
post.id,
post.global_id.key_type,
post.title,
post.get_raw_text(),
post.get_thread().get_tags().first().name,
post.get_pub_time_str(),
) in response_get(request).content.decode(),
'Wrong response generated for the GET request.')
post.delete()
SyncManager.parse_response_get(response)
self.assertEqual(1, Post.objects.count(),
'Post was not created from XML response.')
parsed_post = Post.objects.first()
self.assertEqual('tag1',
parsed_post.get_thread().get_tags().first().name,
'Invalid tag was parsed.')
SyncManager.parse_response_get(response)
self.assertEqual(1, Post.objects.count(),
'The same post was imported twice.')
self.assertEqual(1, parsed_post.global_id.signature_set.count(),
'Signature was not saved.')