##// END OF EJS Templates
Moved signatures block to the model block. All the signed content is in the 'content' block now. Removed edit time, previous and next posts links from the XML sync output because they can be computed from the post itself and can be changed locally for foreign posts (which breaks the signature)
Moved signatures block to the model block. All the signed content is in the 'content' block now. Removed edit time, previous and next posts links from the XML sync output because they can be computed from the post itself and can be changed locally for foreign posts (which breaks the signature)

File last commit:

r838:2b96b9e7 decentral
r838:2b96b9e7 decentral
Show More
test_sync.py
47 lines | 1.5 KiB | text/x-python | PythonLexer
neko259
Added GET request handler, command for key generation. Changed KeyPair format for ecdsa (use to_string instead of to_pem because it's shorter)
r836 from boards.models import KeyPair, Post
from boards.tests.mocks import MockRequest
from boards.views.sync import respond_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.
"""
neko259
Added signatures to the GET response. Added a view to get a full post response for one post. Don't show post key as it is present in the XML post view. Changed key display format
r837 KeyPair.objects.generate_key(primary=True)
neko259
Added GET request handler, command for key generation. Changed KeyPair format for ecdsa (use to_string instead of to_pem because it's shorter)
r836 post = Post.objects.create_post(title='test_title', text='test_text')
request = MockRequest()
request.POST['xml'] = (
'<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)
)
self.assertTrue(
'<status>success</status>'
'<models>'
neko259
Moved signatures block to the model block. All the signed content is in the 'content' block now. Removed edit time, previous and next posts links from the XML sync output because they can be computed from the post itself and can be changed locally for foreign posts (which breaks the signature)
r838 '<model name="post">'
'<content>'
neko259
Added GET request handler, command for key generation. Changed KeyPair format for ecdsa (use to_string instead of to_pem because it's shorter)
r836 '<id key="%s" local-id="%d" type="%s" />'
'<title>%s</title>'
'<text>%s</text>'
'<pub-time>%d</pub-time>'
neko259
Moved signatures block to the model block. All the signed content is in the 'content' block now. Removed edit time, previous and next posts links from the XML sync output because they can be computed from the post itself and can be changed locally for foreign posts (which breaks the signature)
r838 '</content>' % (
neko259
Added GET request handler, command for key generation. Changed KeyPair format for ecdsa (use to_string instead of to_pem because it's shorter)
r836 post.global_id.key,
post.id,
post.global_id.key_type,
post.title,
post.text.raw,
post.get_pub_time_epoch(),
) in respond_get(request).content.decode(),
'Wrong response generated for the GET request.')