mirror of
https://github.com/valitydev/salt.git
synced 2024-11-06 16:45:27 +00:00
51 lines
1.4 KiB
Python
51 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
# Import python libs
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
import logging
|
|
import re
|
|
|
|
# Import Salt Libs
|
|
import salt.utils.pycrypto
|
|
import salt.utils.platform
|
|
|
|
# Import Salt Testing Libs
|
|
from tests.support.unit import TestCase, skipIf
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
class PycryptoTestCase(TestCase):
|
|
'''
|
|
TestCase for salt.utils.pycrypto module
|
|
'''
|
|
|
|
# The crypt module is only available on Unix systems
|
|
# https://docs.python.org/dev/library/crypt.html
|
|
@skipIf(not salt.utils.pycrypto.HAS_CRYPT, 'crypt module not available')
|
|
def test_gen_hash(self):
|
|
'''
|
|
Test gen_hash
|
|
'''
|
|
passwd = 'test_password'
|
|
id = '$'
|
|
if salt.utils.platform.is_darwin():
|
|
id = ''
|
|
ret = salt.utils.pycrypto.gen_hash(password=passwd)
|
|
self.assertTrue(ret.startswith('$6{0}'.format(id)))
|
|
|
|
ret = salt.utils.pycrypto.gen_hash(password=passwd, algorithm='md5')
|
|
self.assertTrue(ret.startswith('$1{0}'.format(id)))
|
|
|
|
ret = salt.utils.pycrypto.gen_hash(password=passwd, algorithm='sha256')
|
|
self.assertTrue(ret.startswith('$5{0}'.format(id)))
|
|
|
|
def test_secure_password(self):
|
|
'''
|
|
test secure_password
|
|
'''
|
|
ret = salt.utils.pycrypto.secure_password()
|
|
check = re.compile(r'[!@#$%^&*()_=+]')
|
|
assert check.search(ret) is None
|
|
assert ret
|