123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- # -*- coding: utf-8 -*-
- from __future__ import absolute_import, print_function, unicode_literals
- import os
- import shutil
- import pytest
- import salt.utils.platform
- from salt.ext import six
- from tests.support.case import ModuleCase
- from tests.support.unit import skipIf
- @pytest.mark.destructive_test
- @pytest.mark.windows_whitelisted
- @skipIf(salt.utils.platform.is_darwin(), "No mtab on Darwin")
- @skipIf(salt.utils.platform.is_freebsd(), "No mtab on FreeBSD")
- @skipIf(salt.utils.platform.is_windows(), "No mtab on Windows")
- 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")
- @pytest.mark.slow_test(seconds=1) # Test takes >0.1 and <=1 seconds
- 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")
- @pytest.mark.windows_whitelisted
- class DiskModuleTest(ModuleCase):
- """
- Validate the disk module
- """
- @pytest.mark.slow_test(seconds=30) # Test takes >10 and <=30 seconds
- 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")
- @pytest.mark.slow_test(seconds=1) # Test takes >0.1 and <=1 seconds
- 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)
|