Add unit tests for SnapUtils
Change-Id: I0e0bcf1edf37aa0214bc28ad5602cb830477a34d
This commit is contained in:
parent
995054e370
commit
f9ae8f4813
@ -28,6 +28,7 @@ from mock import patch
|
|||||||
|
|
||||||
from snap_openstack import base
|
from snap_openstack import base
|
||||||
from snap_openstack.tests import base as test_base
|
from snap_openstack.tests import base as test_base
|
||||||
|
from snap_openstack import utils
|
||||||
|
|
||||||
TEST_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)),
|
TEST_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)),
|
||||||
'data')
|
'data')
|
||||||
@ -310,3 +311,73 @@ class TestOpenStackSnapSetup(test_base.TestCase):
|
|||||||
is_file=True)
|
is_file=True)
|
||||||
]
|
]
|
||||||
mock_utils_obj.ensure_dir.assert_has_calls(expected, any_order=True)
|
mock_utils_obj.ensure_dir.assert_has_calls(expected, any_order=True)
|
||||||
|
|
||||||
|
|
||||||
|
class TestSnapUtils(test_base.TestCase):
|
||||||
|
|
||||||
|
@patch.object(utils, 'os')
|
||||||
|
def test_init(self, mock_os):
|
||||||
|
'''Ensure __init__() and _collect_snap_env() behave as expected'''
|
||||||
|
utils.SnapUtils()
|
||||||
|
expected = [
|
||||||
|
call('SNAP_NAME'),
|
||||||
|
call('SNAP_VERSION'),
|
||||||
|
call('SNAP_REVISION'),
|
||||||
|
call('SNAP_ARCH'),
|
||||||
|
call('SNAP_LIBRARY_PATH'),
|
||||||
|
call('SNAP'),
|
||||||
|
call('SNAP_DATA'),
|
||||||
|
call('SNAP_COMMON'),
|
||||||
|
call('SNAP_USER_DATA'),
|
||||||
|
call('SNAP_USER_COMMON'),
|
||||||
|
call('TMPDIR'),
|
||||||
|
]
|
||||||
|
mock_os.environ.get.assert_has_calls(expected, any_order=True)
|
||||||
|
|
||||||
|
@patch.object(utils, 'os')
|
||||||
|
def test_ensure_dir(self, mock_os):
|
||||||
|
'''Ensure ensure_dir behaves as expected for a directory'''
|
||||||
|
snap_utils = utils.SnapUtils()
|
||||||
|
mock_os.path.exists.return_value = False
|
||||||
|
mock_os.path.dirname.return_value = '/var/snap/keystone/common/lib'
|
||||||
|
snap_utils.ensure_dir('/var/snap/keystone/common/lib/file',
|
||||||
|
is_file=True, perms=0o755)
|
||||||
|
mock_os.path.dirname.assert_called_with('/var/snap/keystone/common/'
|
||||||
|
'lib/file')
|
||||||
|
mock_os.path.exists.assert_called_with('/var/snap/keystone/common/lib')
|
||||||
|
mock_os.makedirs.assert_called_with('/var/snap/keystone/common/lib',
|
||||||
|
0o755)
|
||||||
|
|
||||||
|
@patch.object(utils, 'os')
|
||||||
|
def test_ensure_dir_is_file(self, mock_os):
|
||||||
|
'''Ensure ensure_dir behaves as expected for a file'''
|
||||||
|
snap_utils = utils.SnapUtils()
|
||||||
|
mock_os.path.exists.return_value = False
|
||||||
|
snap_utils.ensure_dir('/var/snap/keystone/common/lib', perms=0o755)
|
||||||
|
mock_os.path.exists.assert_called_with('/var/snap/keystone/common/lib')
|
||||||
|
mock_os.makedirs.assert_called_with('/var/snap/keystone/common/lib',
|
||||||
|
0o755)
|
||||||
|
|
||||||
|
@patch.object(utils, 'pwd')
|
||||||
|
@patch.object(utils, 'grp')
|
||||||
|
@patch.object(utils, 'os')
|
||||||
|
def test_chown(self, mock_os, mock_grp, mock_pwd):
|
||||||
|
'''Ensure chown behaves as expected'''
|
||||||
|
class Ids(object):
|
||||||
|
pw_uid = 0
|
||||||
|
gr_gid = 0
|
||||||
|
snap_utils = utils.SnapUtils()
|
||||||
|
mock_pwd.getpwnam.return_value = Ids()
|
||||||
|
mock_grp.getgrnam.return_value = Ids()
|
||||||
|
snap_utils.chown('/var/snap/keystone/common/lib', 'root', 'root')
|
||||||
|
mock_pwd.getpwnam.assert_called_with('root')
|
||||||
|
mock_grp.getgrnam.assert_called_with('root')
|
||||||
|
mock_os.chown.assert_called_with('/var/snap/keystone/common/lib', 0, 0)
|
||||||
|
|
||||||
|
@patch.object(utils, 'os')
|
||||||
|
def test_chmod(self, mock_os):
|
||||||
|
'''Ensure chmod behaves as expected'''
|
||||||
|
snap_utils = utils.SnapUtils()
|
||||||
|
snap_utils.chmod('/var/snap/keystone/common/lib', 0o750)
|
||||||
|
mock_os.chmod.assert_called_with('/var/snap/keystone/common/lib',
|
||||||
|
0o750)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user