salt/tests/unit/modules/win_dism_test.py
Daniel Hobley e8c3a154f0 Added DISM module and states
- Allows you to install features and capabilities on windows minions
2016-01-29 10:35:58 +01:00

98 lines
3.3 KiB
Python

# -*- coding: utf-8 -*-
# Import Python libs
from __future__ import absolute_import
# Import Salt Libs
from salt.modules import win_dism as dism
# Import Salt Testing Libs
from salttesting import TestCase
from salttesting.helpers import ensure_in_syspath
from salttesting.mock import (
MagicMock,
patch
)
ensure_in_syspath('../../')
dism.__salt__ = {}
class DISMTestCase(TestCase):
def test_install_capability(self):
'''
Test installing a capability with DISM
'''
mock = MagicMock()
with patch.dict(dism.__salt__, {'cmd.run_all': mock}):
dism.install_capability("test")
mock.assert_called_once_with('DISM /Online /Add-Capability /CapabilityName:test')
def test_install_capability_with_extras(self):
'''
Test installing a capability with DISM
'''
mock = MagicMock()
with patch.dict(dism.__salt__, {'cmd.run_all': mock}):
dism.install_capability("test", "life", True)
mock.assert_called_once_with('DISM /Online /Add-Capability /CapabilityName:test /Source:life /LimitAccess')
def test_uninstall_capability(self):
'''
Test uninstalling a capability with DISM
'''
mock = MagicMock()
with patch.dict(dism.__salt__, {'cmd.run_all': mock}):
dism.uninstall_capability("test")
mock.assert_called_once_with('DISM /Online /Remove-Capability /CapabilityName:test')
def test_installed_capabilities(self):
'''
Test getting all the installed capabilities
'''
capabilties = "Capability Identity : Capa1\r\n State : Installed\r\n" \
"Capability Identity : Capa2\r\n State : Disabled\r\n"
mock = MagicMock(return_value=capabilties)
with patch.dict(dism.__salt__, {'cmd.run': mock}):
out = dism.installed_capabilities()
mock.assert_called_once_with('DISM /Online /Get-Capabilities')
self.assertEqual(out, ["Capa1"])
def test_install_feature(self):
'''
Test installing a feature with DISM
'''
mock = MagicMock()
with patch.dict(dism.__salt__, {'cmd.run_all': mock}):
dism.install_feature("test")
mock.assert_called_once_with('DISM /Online /Enable-Feature /FeatureName:test')
def test_uninstall_feature(self):
'''
Test uninstalling a capability with DISM
'''
mock = MagicMock()
with patch.dict(dism.__salt__, {'cmd.run_all': mock}):
dism.uninstall_feature("test")
mock.assert_called_once_with('DISM /Online /Disable-Feature /FeatureName:test')
def test_installed_feature(self):
'''
Test getting all the installed capabilities
'''
capabilties = "Feature Name : Capa1\r\n State : Enabled\r\n" \
"Feature Name : Capa2\r\n State : Disabled\r\n"
mock = MagicMock(return_value=capabilties)
with patch.dict(dism.__salt__, {'cmd.run': mock}):
out = dism.installed_features()
mock.assert_called_once_with('DISM /Online /Get-Features')
self.assertEqual(out, ["Capa1"])
if __name__ == '__main__':
from integration import run_tests
run_tests(DISMTestCase, needs_daemon=False)