##// END OF EJS Templates
Added next id list, previous id list and thread to the post XML output
Added next id list, previous id list and thread to the post XML output

File last commit:

r829:5301b1d8 decentral
r829:5301b1d8 decentral
Show More
test_keys.py
97 lines | 3.7 KiB | text/x-python | PythonLexer
import logging
from django.test import TestCase
from boards.models import KeyPair, GlobalId, Post
logger = logging.getLogger(__name__)
class KeyTest(TestCase):
def test_create_key(self):
key = KeyPair.objects.generate_key('ecdsa')
self.assertIsNotNone(key, 'The key was not created.')
def test_validation(self):
key = KeyPair.objects.generate_key(key_type='ecdsa')
message = 'msg'
signature = key.sign(message)
valid = KeyPair.objects.verify(key.public_key, message, signature,
key_type='ecdsa')
self.assertTrue(valid, 'Message verification failed.')
def test_primary_constraint(self):
KeyPair.objects.generate_key(key_type='ecdsa', primary=True)
try:
KeyPair.objects.generate_key(key_type='ecdsa', primary=True)
self.fail('Exception should be thrown indicating there can be only'
' one primary key.')
except Exception:
pass
def test_model_id_save(self):
model_id = GlobalId(key_type='test', key='test key', local_id='1')
model_id.save()
def test_request_get(self):
post = self._create_post_with_key()
request = Post.objects.generate_request_get([post])
logger.debug(request)
self.assertTrue('<request type="get" version="1.0">'
'<model name="post" version="1.0">'
'<id key="pubkey" local-id="1" type="test_key_type" />'
'</model>'
'</request>' in request,
'Wrong XML generated for the GET request.')
def test_response_get(self):
post = self._create_post_with_key()
reply_post = Post.objects.create_post(title='test_title',
text='[post]%d[/post]' % post.id, thread=post.get_thread())
reply_reply_post = Post.objects.create_post(title='',
text='[post]%d[/post]' % reply_post.id,
thread=post.get_thread())
response = Post.objects.generate_response_get([reply_post])
logger.debug(response)
self.assertTrue('<response>'
'<status>success</status>'
'<models>'
'<model name="post" ref-id="1">'
'<id key="pubkey" local-id="%d" type="test_key_type" />'
'<title>test_title</title>'
'<text>[post]%d[/post]</text>'
'<thread>%d</thread>'
'<pub-time>%s</pub-time>'
'<edit-time>%s</edit-time>'
'<previous>'
'<id key="pubkey" local-id="%d" type="test_key_type" />'
'</previous>'
'<next>'
'<id key="pubkey" local-id="%d" type="test_key_type" />'
'</next>'
'</model>'
'</models>'
'</response>' % (
reply_post.id,
post.id,
post.id,
str(reply_post.get_edit_time_epoch()),
str(reply_post.get_pub_time_epoch()),
post.id,
reply_reply_post.id,
) in response,
'Wrong XML generated for the GET response.')
def _create_post_with_key(self):
key = KeyPair(public_key='pubkey', private_key='privkey',
key_type='test_key_type', primary=True)
key.save()
return Post.objects.create_post(title='test_title', text='test_text')