mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Update crypt unit tests to reflect changes in mock_open
This commit is contained in:
parent
67c036dc2d
commit
84ce18d956
1 changed files with 41 additions and 23 deletions
|
@ -8,7 +8,15 @@ import shutil
|
|||
|
||||
# salt testing libs
|
||||
from tests.support.unit import TestCase, skipIf
|
||||
from tests.support.mock import patch, call, mock_open, NO_MOCK, NO_MOCK_REASON, MagicMock
|
||||
from tests.support.mock import(
|
||||
patch,
|
||||
call,
|
||||
mock_open,
|
||||
NO_MOCK,
|
||||
NO_MOCK_REASON,
|
||||
MagicMock,
|
||||
MockCall,
|
||||
)
|
||||
|
||||
# salt libs
|
||||
from salt.ext import six
|
||||
|
@ -96,19 +104,23 @@ SIG = (
|
|||
@skipIf(HAS_M2, 'm2crypto is used by salt.crypt if installed')
|
||||
class CryptTestCase(TestCase):
|
||||
def test_gen_keys(self):
|
||||
open_priv_wb = MockCall('/keydir{0}keyname.pem'.format(os.sep), 'wb+')
|
||||
open_pub_wb = MockCall('/keydir{0}keyname.pub'.format(os.sep), 'wb+')
|
||||
|
||||
with patch.multiple(os, umask=MagicMock(), chmod=MagicMock(),
|
||||
access=MagicMock(return_value=True)):
|
||||
with patch('salt.utils.files.fopen', mock_open()):
|
||||
open_priv_wb = call('/keydir{0}keyname.pem'.format(os.sep), 'wb+')
|
||||
open_pub_wb = call('/keydir{0}keyname.pub'.format(os.sep), 'wb+')
|
||||
with patch('os.path.isfile', return_value=True):
|
||||
self.assertEqual(crypt.gen_keys('/keydir', 'keyname', 2048), '/keydir{0}keyname.pem'.format(os.sep))
|
||||
self.assertNotIn(open_priv_wb, salt.utils.files.fopen.mock_calls)
|
||||
self.assertNotIn(open_pub_wb, salt.utils.files.fopen.mock_calls)
|
||||
with patch('os.path.isfile', return_value=False):
|
||||
with patch('salt.utils.files.fopen', mock_open()):
|
||||
crypt.gen_keys('/keydir', 'keyname', 2048)
|
||||
salt.utils.files.fopen.assert_has_calls([open_priv_wb, open_pub_wb], any_order=True)
|
||||
with patch('salt.utils.files.fopen', mock_open()) as m_open, \
|
||||
patch('os.path.isfile', return_value=True):
|
||||
result = crypt.gen_keys('/keydir', 'keyname', 2048)
|
||||
assert result == '/keydir{0}keyname.pem'.format(os.sep), result
|
||||
assert open_priv_wb not in m_open.calls
|
||||
assert open_pub_wb not in m_open.calls
|
||||
|
||||
with patch('salt.utils.files.fopen', mock_open()) as m_open, \
|
||||
patch('os.path.isfile', return_value=False):
|
||||
crypt.gen_keys('/keydir', 'keyname', 2048)
|
||||
assert open_priv_wb in m_open.calls
|
||||
assert open_pub_wb in m_open.calls
|
||||
|
||||
@patch('os.umask', MagicMock())
|
||||
@patch('os.chmod', MagicMock())
|
||||
|
@ -116,17 +128,23 @@ class CryptTestCase(TestCase):
|
|||
@patch('os.access', MagicMock(return_value=True))
|
||||
def test_gen_keys_with_passphrase(self):
|
||||
key_path = os.path.join(os.sep, 'keydir')
|
||||
with patch('salt.utils.files.fopen', mock_open()):
|
||||
open_priv_wb = call(os.path.join(key_path, 'keyname.pem'), 'wb+')
|
||||
open_pub_wb = call(os.path.join(key_path, 'keyname.pub'), 'wb+')
|
||||
with patch('os.path.isfile', return_value=True):
|
||||
self.assertEqual(crypt.gen_keys(key_path, 'keyname', 2048, passphrase='password'), os.path.join(key_path, 'keyname.pem'))
|
||||
self.assertNotIn(open_priv_wb, salt.utils.files.fopen.mock_calls)
|
||||
self.assertNotIn(open_pub_wb, salt.utils.files.fopen.mock_calls)
|
||||
with patch('os.path.isfile', return_value=False):
|
||||
with patch('salt.utils.files.fopen', mock_open()):
|
||||
crypt.gen_keys(key_path, 'keyname', 2048)
|
||||
salt.utils.files.fopen.assert_has_calls([open_priv_wb, open_pub_wb], any_order=True)
|
||||
open_priv_wb = MockCall(os.path.join(key_path, 'keyname.pem'), 'wb+')
|
||||
open_pub_wb = MockCall(os.path.join(key_path, 'keyname.pub'), 'wb+')
|
||||
|
||||
with patch('salt.utils.files.fopen', mock_open()) as m_open, \
|
||||
patch('os.path.isfile', return_value=True):
|
||||
self.assertEqual(crypt.gen_keys(key_path, 'keyname', 2048, passphrase='password'), os.path.join(key_path, 'keyname.pem'))
|
||||
result = crypt.gen_keys(key_path, 'keyname', 2048,
|
||||
passphrase='password')
|
||||
assert result == os.path.join(key_path, 'keyname.pem'), result
|
||||
assert open_priv_wb not in m_open.calls
|
||||
assert open_pub_wb not in m_open.calls
|
||||
|
||||
with patch('salt.utils.files.fopen', mock_open()) as m_open, \
|
||||
patch('os.path.isfile', return_value=False):
|
||||
crypt.gen_keys(key_path, 'keyname', 2048)
|
||||
assert open_priv_wb in m_open.calls
|
||||
assert open_pub_wb in m_open.calls
|
||||
|
||||
def test_sign_message(self):
|
||||
key = RSA.importKey(PRIVKEY_DATA)
|
||||
|
|
Loading…
Add table
Reference in a new issue