salt/tests/integration/modules/test_disk.py
2018-01-22 14:38:24 +03:00

88 lines
2.8 KiB
Python

# -*- coding: utf-8 -*-
# Import Python libs
from __future__ import absolute_import, print_function, unicode_literals
import os
import shutil
# Import Salt Testing libs
from tests.support.case import ModuleCase
from tests.support.unit import skipIf
from tests.support.helpers import destructiveTest
# Import Salt libs
import salt.utils.platform
# Import 3rd-party libs
from salt.ext import six
@destructiveTest
@skipIf(salt.utils.platform.is_windows(), 'No mtab on Windows')
@skipIf(salt.utils.platform.is_darwin(), 'No mtab on Darwin')
class DiskModuleVirtualizationTest(ModuleCase):
'''
Test to make sure we return a clean result under Docker. Refs #8976
This is factored into its own class so that we can have some certainty that setUp() and tearDown() are run.
'''
def setUp(self):
# Make /etc/mtab unreadable
if os.path.isfile('/etc/mtab'):
shutil.move('/etc/mtab', '/tmp/mtab')
def test_no_mtab(self):
ret = self.run_function('disk.usage')
self.assertDictEqual(ret, {})
def tearDown(self):
if os.path.isfile('/tmp/mtab'):
shutil.move('/tmp/mtab', '/etc/mtab')
class DiskModuleTest(ModuleCase):
'''
Validate the disk module
'''
def test_usage(self):
'''
disk.usage
'''
ret = self.run_function('disk.usage')
self.assertTrue(isinstance(ret, dict))
if not isinstance(ret, dict):
return
if salt.utils.platform.is_darwin():
for key, val in six.iteritems(ret):
self.assertTrue('filesystem' in val)
self.assertTrue('512-blocks' in val)
self.assertTrue('used' in val)
self.assertTrue('available' in val)
self.assertTrue('capacity' in val)
self.assertTrue('iused' in val)
self.assertTrue('ifree' in val)
self.assertTrue('%iused' in val)
else:
for key, val in six.iteritems(ret):
self.assertTrue('filesystem' in val)
self.assertTrue('1K-blocks' in val)
self.assertTrue('used' in val)
self.assertTrue('available' in val)
self.assertTrue('capacity' in val)
@skipIf(salt.utils.platform.is_windows(), 'inode info not available on Windows')
def test_inodeusage(self):
'''
disk.inodeusage
'''
ret = self.run_function('disk.inodeusage')
self.assertTrue(isinstance(ret, dict))
if not isinstance(ret, dict):
return
for key, val in six.iteritems(ret):
self.assertTrue('inodes' in val)
self.assertTrue('used' in val)
self.assertTrue('free' in val)
self.assertTrue('use' in val)
self.assertTrue('filesystem' in val)