##// END OF EJS Templates
Add MIT-Permissive-License.txt
Add MIT-Permissive-License.txt

File last commit:

r4116:ffd45b18 rhodecode-2.2.5-gpl
r4119:08baa849 rhodecode-2.2.5-gpl
Show More
test_license.py
68 lines | 2.1 KiB | text/x-python | PythonLexer
from __future__ import with_statement
from rhodecode.tests import *
from rhodecode.tests.fixture import Fixture
from rhodecode.lib.compat import json
from rhodecode.model.license import LicenseModel
fixture = Fixture()
TEST_KEY = ''
class LicenseTest(BaseTestCase):
def setUp(self):
global TEST_KEY
token = LicenseModel.generate_license_token()
TEST_KEY = token
def test_encryption_decryption(self):
test_license = {
'foo': 'baar',
'signature': 'test'
}
enc = LicenseModel(key=TEST_KEY).encrypt(json.dumps(test_license))
dec = json.loads(LicenseModel(key=TEST_KEY).decrypt(enc))
self.assertEqual(test_license, dec)
def test_signature(self):
enc_with_key = '1234567890123456'
test_license = {
'foo': 'baar',
'signature': None
}
test_license['signature'] = LicenseModel(key=TEST_KEY)\
.generate_signature(test_license, enc_with_key)
enc = LicenseModel(key=TEST_KEY).encrypt(json.dumps(test_license))
signature = LicenseModel(key=TEST_KEY).verify(enc, enc_with_key)
del test_license['signature']
self.assertEqual(test_license, signature)
def test_signature_mismatch(self):
enc_with_key = '1234567890123456'
test_license = {
'foo': 'baar',
'signature': 'cnashs62tdsbcsaaisuda6215sagc'
}
enc = LicenseModel(key=TEST_KEY).encrypt(json.dumps(test_license))
self.assertRaises(TypeError,
lambda: LicenseModel(key=TEST_KEY).verify(enc, enc_with_key))
def test_generate_license_token(self):
token = LicenseModel.generate_license_token()
self.assertEqual(4, len(token.split('-')))
def test_get_license_info(self):
info = LicenseModel.get_license_info('', '')
self.assertEqual(info, {})
def test_get_license_info_default(self):
info = LicenseModel.get_license_info('', '', fill_defaults=True)
self.assertEqual(info['users'], 20)
self.assertEqual(info['valid_till'], 1421884937.512214)
self.assertEqual(info['email'], 'support@rhodecode.com')