salt/tests/unit/states/mac_defaults_test.py

148 lines
5.7 KiB
Python
Raw Normal View History

# -*- coding: utf-8 -*-
# Import Python libs
from __future__ import absolute_import
# Import Salt Libs
from salt.states import mac_defaults as macdefaults
# Import Salt Testing Libs
from salttesting import TestCase
from salttesting.helpers import ensure_in_syspath
from salttesting.mock import (
MagicMock,
patch
)
ensure_in_syspath('../../')
macdefaults.__salt__ = {}
class MacDefaultsTestCase(TestCase):
def test_write(self):
'''
Test writing a default setting
'''
expected = {
'changes': {'written': 'com.apple.CrashReporter DialogType is set to Server'},
'comment': '',
'name': 'DialogType',
'result': True
}
read_mock = MagicMock(return_value='Local')
write_mock = MagicMock(return_value={'retcode': 0})
with patch.dict(macdefaults.__salt__, {'macdefaults.read': read_mock,
'macdefaults.write': write_mock}):
out = macdefaults.write('DialogType', 'com.apple.CrashReporter', 'Server')
read_mock.assert_called_once_with('com.apple.CrashReporter', 'DialogType', None)
write_mock.assert_called_once_with('com.apple.CrashReporter', 'DialogType', 'Server', 'string', None)
self.assertEqual(out, expected)
def test_write_set(self):
'''
Test writing a default setting that is already set
'''
expected = {
'changes': {},
'comment': 'com.apple.CrashReporter DialogType is already set to Server',
'name': 'DialogType',
'result': True
}
read_mock = MagicMock(return_value='Server')
write_mock = MagicMock(return_value={'retcode': 0})
with patch.dict(macdefaults.__salt__, {'macdefaults.read': read_mock,
'macdefaults.write': write_mock}):
out = macdefaults.write('DialogType', 'com.apple.CrashReporter', 'Server')
read_mock.assert_called_once_with('com.apple.CrashReporter', 'DialogType', None)
assert not write_mock.called
self.assertEqual(out, expected)
def test_write_boolean(self):
'''
Test writing a default setting with a boolean
'''
expected = {
'changes': {'written': 'com.apple.something Key is set to True'},
'comment': '',
'name': 'Key',
'result': True
}
read_mock = MagicMock(return_value='0')
write_mock = MagicMock(return_value={'retcode': 0})
with patch.dict(macdefaults.__salt__, {'macdefaults.read': read_mock,
'macdefaults.write': write_mock}):
out = macdefaults.write('Key', 'com.apple.something', True, type='boolean')
read_mock.assert_called_once_with('com.apple.something', 'Key', None)
write_mock.assert_called_once_with('com.apple.something', 'Key', True, 'boolean', None)
self.assertEqual(out, expected)
def test_write_boolean_match(self):
'''
Test writing a default setting with a boolean that is already set to the same value
'''
expected = {
'changes': {},
'comment': 'com.apple.something Key is already set to True',
'name': 'Key',
'result': True
}
read_mock = MagicMock(return_value='1')
write_mock = MagicMock(return_value={'retcode': 0})
with patch.dict(macdefaults.__salt__, {'macdefaults.read': read_mock,
'macdefaults.write': write_mock}):
out = macdefaults.write('Key', 'com.apple.something', True, type='boolean')
read_mock.assert_called_once_with('com.apple.something', 'Key', None)
assert not write_mock.called
self.assertEqual(out, expected)
def test_write_integer(self):
'''
Test writing a default setting with a integer
'''
expected = {
'changes': {'written': 'com.apple.something Key is set to 1337'},
'comment': '',
'name': 'Key',
'result': True
}
read_mock = MagicMock(return_value='99')
write_mock = MagicMock(return_value={'retcode': 0})
with patch.dict(macdefaults.__salt__, {'macdefaults.read': read_mock,
'macdefaults.write': write_mock}):
out = macdefaults.write('Key', 'com.apple.something', 1337, type='integer')
read_mock.assert_called_once_with('com.apple.something', 'Key', None)
write_mock.assert_called_once_with('com.apple.something', 'Key', 1337, 'integer', None)
self.assertEqual(out, expected)
def test_write_integer_match(self):
'''
Test writing a default setting with a integer that is already set to the same value
'''
expected = {
'changes': {},
'comment': 'com.apple.something Key is already set to 1337',
'name': 'Key',
'result': True
}
read_mock = MagicMock(return_value='1337')
write_mock = MagicMock(return_value={'retcode': 0})
with patch.dict(macdefaults.__salt__, {'macdefaults.read': read_mock,
'macdefaults.write': write_mock}):
out = macdefaults.write('Key', 'com.apple.something', 1337, type='integer')
read_mock.assert_called_once_with('com.apple.something', 'Key', None)
assert not write_mock.called
self.assertEqual(out, expected)
if __name__ == '__main__':
from integration import run_tests
run_tests(MacDefaultsTestCase, needs_daemon=False)