Files @ 158ef33603b8
Branch filter:

Location: kallithea/rhodecode/tests/models/test_license.py

Bradley M. Kuhn
Add mousetrap.js file from Mousetrap 1.4.5, under the Apache license.

The file was download and verified via these commands:
$ git clone https://github.com/ccampbell/mousetrap.git
$ cd mousetrap; git checkout 1.4.5

The file in that repository named mousetrap.js is exactly the same one that
appeared in RhodeCode 2.2.5 in changeset c8d3c0d61d95.

The mousetrap.js states clearly that it is licensed under Apache-2.0.
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')