salt/tests/unit/renderers/test_nacl.py
2017-06-22 01:02:04 +05:30

56 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# Import Python Libs
from __future__ import absolute_import
# Import Salt Testing libs
from tests.support.mixins import LoaderModuleMockMixin
from tests.support.unit import skipIf, TestCase
from tests.support.mock import (
NO_MOCK,
NO_MOCK_REASON,
MagicMock,
patch
)
# Import Salt libs
import salt.renderers.nacl as nacl
@skipIf(NO_MOCK, NO_MOCK_REASON)
class NaclTestCase(TestCase, LoaderModuleMockMixin):
'''
unit test NaCl renderer
'''
def setup_loader_modules(self):
return {nacl: {}}
def test__decrypt_object(self):
'''
test _decrypt_object
'''
secret = 'Use more salt.'
crypted = 'NACL[MRN3cc+fmdxyQbz6WMF+jq1hKdU5X5BBI7OjK+atvHo1ll+w1gZ7XyWtZVfq9gK9rQaMfkDxmidJKwE0Mw==]'
secret_map = {'secret': secret}
crypted_map = {'secret': crypted}
secret_list = [secret]
crypted_list = [crypted]
with patch.dict(nacl.__salt__, {'nacl.dec_pub': MagicMock(return_value=secret)}):
self.assertEqual(nacl._decrypt_object(secret), secret)
self.assertEqual(nacl._decrypt_object(crypted), secret)
self.assertEqual(nacl._decrypt_object(crypted_map), secret_map)
self.assertEqual(nacl._decrypt_object(crypted_list), secret_list)
self.assertEqual(nacl._decrypt_object(None), None)
def test_render(self):
'''
test render
'''
secret = 'Use more salt.'
crypted = 'NACL[MRN3cc+fmdxyQbz6WMF+jq1hKdU5X5BBI7OjK+atvHo1ll+w1gZ7XyWtZVfq9gK9rQaMfkDxmidJKwE0Mw==]'
with patch.dict(nacl.__salt__, {'nacl.dec_pub': MagicMock(return_value=secret)}):
self.assertEqual(nacl.render(crypted), secret)