mirror of
https://github.com/valitydev/salt.git
synced 2024-11-08 09:23:56 +00:00
a4bbd5e3d7
The blockdev module is being slowly deprecated and its functions moved to to the disk module instead. There is a test for resize2fs in the blockdev_test file in the 2015.8 branch (which matches the resize2fs function in the blockdev module), but this function was moved to the disk file in 2016.3. The test was never moved over. I discovered this during a merge forward in #36344. This PR adds the test from 2015.8 blockdev_test to the 2016.3 disk_test.py, and is adjusted to work with the disk module accordingly.
149 lines
6.5 KiB
Python
149 lines
6.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
'''
|
|
:codeauthor: :email:`Jayesh Kariya <jayeshk@saltstack.com>`
|
|
'''
|
|
|
|
# Import Python libs
|
|
from __future__ import absolute_import
|
|
|
|
# Import Salt Testing libs
|
|
from salttesting import skipIf, TestCase
|
|
from salttesting.helpers import ensure_in_syspath
|
|
from salttesting.mock import MagicMock, patch
|
|
ensure_in_syspath('../../')
|
|
|
|
# Import Salt libs
|
|
from salt.modules import disk
|
|
import salt.utils
|
|
|
|
STUB_DISK_USAGE = {
|
|
'/': {'filesystem': None, '1K-blocks': 10000, 'used': 10000, 'available': 10000, 'capacity': 10000},
|
|
'/dev': {'filesystem': None, '1K-blocks': 10000, 'used': 10000, 'available': 10000, 'capacity': 10000},
|
|
'/run': {'filesystem': None, '1K-blocks': 10000, 'used': 10000, 'available': 10000, 'capacity': 10000},
|
|
'/run/lock': {'filesystem': None, '1K-blocks': 10000, 'used': 10000, 'available': 10000, 'capacity': 10000},
|
|
'/run/shm': {'filesystem': None, '1K-blocks': 10000, 'used': 10000, 'available': 10000, 'capacity': 10000},
|
|
'/run/user': {'filesystem': None, '1K-blocks': 10000, 'used': 10000, 'available': 10000, 'capacity': 10000},
|
|
'/sys/fs/cgroup': {'filesystem': None, '1K-blocks': 10000, 'used': 10000, 'available': 10000, 'capacity': 10000}
|
|
}
|
|
|
|
|
|
STUB_DISK_INODEUSAGE = {
|
|
'/': {'inodes': 10000, 'used': 10000, 'free': 10000, 'use': 10000, 'filesystem': None},
|
|
'/dev': {'inodes': 10000, 'used': 10000, 'free': 10000, 'use': 10000, 'filesystem': None},
|
|
'/run': {'inodes': 10000, 'used': 10000, 'free': 10000, 'use': 10000, 'filesystem': None},
|
|
'/run/lock': {'inodes': 10000, 'used': 10000, 'free': 10000, 'use': 10000, 'filesystem': None},
|
|
'/run/shm': {'inodes': 10000, 'used': 10000, 'free': 10000, 'use': 10000, 'filesystem': None},
|
|
'/run/user': {'inodes': 10000, 'used': 10000, 'free': 10000, 'use': 10000, 'filesystem': None},
|
|
'/sys/fs/cgroup': {'inodes': 10000, 'used': 10000, 'free': 10000, 'use': 10000, 'filesystem': None}
|
|
}
|
|
|
|
STUB_DISK_PERCENT = {
|
|
'/': 50,
|
|
'/dev': 10,
|
|
'/run': 10,
|
|
'/run/lock': 10,
|
|
'/run/shm': 10,
|
|
'/run/user': 10,
|
|
'/sys/fs/cgroup': 10
|
|
}
|
|
|
|
STUB_DISK_BLKID = {'/dev/sda': {'TYPE': 'ext4', 'UUID': None}}
|
|
|
|
disk.__grains__ = {}
|
|
|
|
disk.__salt__ = {} # {'cmd.run': salt.modules.cmdmod._run_quiet}
|
|
|
|
|
|
class DiskTestCase(TestCase):
|
|
'''
|
|
TestCase for salt.modules.disk module
|
|
'''
|
|
|
|
@patch('salt.modules.disk.usage', MagicMock(return_value=STUB_DISK_USAGE))
|
|
def test_usage_dict(self):
|
|
with patch.dict(disk.__grains__, {'kernel': 'Linux'}):
|
|
mock_cmd = MagicMock(return_value=1)
|
|
with patch.dict(disk.__salt__, {'cmd.run': mock_cmd}):
|
|
self.assertDictEqual(STUB_DISK_USAGE, disk.usage(args=None))
|
|
|
|
@patch('salt.modules.disk.usage', MagicMock(return_value=''))
|
|
def test_usage_none(self):
|
|
with patch.dict(disk.__grains__, {'kernel': 'Linux'}):
|
|
mock_cmd = MagicMock(return_value=1)
|
|
with patch.dict(disk.__salt__, {'cmd.run': mock_cmd}):
|
|
self.assertEqual('', disk.usage(args=None))
|
|
|
|
@patch('salt.modules.disk.inodeusage', MagicMock(return_value=STUB_DISK_INODEUSAGE))
|
|
def test_inodeusage(self):
|
|
with patch.dict(disk.__grains__, {'kernel': 'OpenBSD'}):
|
|
mock = MagicMock()
|
|
with patch.dict(disk.__salt__, {'cmd.run': mock}):
|
|
self.assertDictEqual(STUB_DISK_INODEUSAGE, disk.inodeusage(args=None))
|
|
|
|
@patch('salt.modules.disk.percent', MagicMock(return_value=STUB_DISK_PERCENT))
|
|
def test_percent(self):
|
|
with patch.dict(disk.__grains__, {'kernel': 'Linux'}):
|
|
mock = MagicMock()
|
|
with patch.dict(disk.__salt__, {'cmd.run': mock}):
|
|
self.assertDictEqual(STUB_DISK_PERCENT, disk.percent(args=None))
|
|
|
|
@patch('salt.modules.disk.percent', MagicMock(return_value='/'))
|
|
def test_percent_args(self):
|
|
with patch.dict(disk.__grains__, {'kernel': 'Linux'}):
|
|
mock = MagicMock()
|
|
with patch.dict(disk.__salt__, {'cmd.run': mock}):
|
|
self.assertEqual('/', disk.percent('/'))
|
|
|
|
@patch('salt.modules.disk.blkid', MagicMock(return_value=STUB_DISK_BLKID))
|
|
def test_blkid(self):
|
|
with patch.dict(disk.__salt__, {'cmd.run_stdout': MagicMock(return_value=1)}):
|
|
self.assertDictEqual(STUB_DISK_BLKID, disk.blkid())
|
|
|
|
def test_dump(self):
|
|
mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
|
|
with patch.dict(disk.__salt__, {'cmd.run_all': mock}):
|
|
disk.dump('/dev/sda')
|
|
mock.assert_called_once_with(
|
|
'blockdev --getro --getsz --getss --getpbsz --getiomin '
|
|
'--getioopt --getalignoff --getmaxsect --getsize '
|
|
'--getsize64 --getra --getfra /dev/sda',
|
|
python_shell=False
|
|
)
|
|
|
|
def test_wipe(self):
|
|
mock = MagicMock(return_value={'retcode': 0, 'stdout': ''})
|
|
with patch.dict(disk.__salt__, {'cmd.run_all': mock}):
|
|
disk.wipe('/dev/sda')
|
|
mock.assert_called_once_with(
|
|
'wipefs -a /dev/sda',
|
|
python_shell=False
|
|
)
|
|
|
|
def test_tune(self):
|
|
mock = MagicMock(return_value='712971264\n512\n512\n512\n0\n0\n88\n712971264\n365041287168\n512\n512')
|
|
with patch.dict(disk.__salt__, {'cmd.run': mock}):
|
|
mock_dump = MagicMock(return_value={'retcode': 0, 'stdout': ''})
|
|
with patch('salt.modules.disk.dump', mock_dump):
|
|
kwargs = {'read-ahead': 512, 'filesystem-read-ahead': 512}
|
|
disk.tune('/dev/sda', **kwargs)
|
|
mock.assert_called_once_with(
|
|
'blockdev --setra 512 --setfra 512 /dev/sda',
|
|
python_shell=False
|
|
)
|
|
|
|
@skipIf(not salt.utils.which('resize2fs'), 'resize2fs not found')
|
|
def test_resize2fs(self):
|
|
'''
|
|
unit tests for disk.resize2fs
|
|
'''
|
|
device = '/dev/sdX1'
|
|
mock = MagicMock()
|
|
with patch.dict(disk.__salt__, {'cmd.run_all': mock}):
|
|
disk.resize2fs(device)
|
|
mock.assert_called_once_with('resize2fs {0}'.format(device), python_shell=False)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
from integration import run_tests
|
|
run_tests(DiskTestCase, needs_daemon=False)
|