# -*- coding: utf-8 -*- ''' :codeauthor: :email:`Jayesh Kariya ` ''' # Import Python Libs from __future__ import absolute_import, unicode_literals, print_function # Import Salt Testing Libs from tests.support.mixins import LoaderModuleMockMixin from tests.support.unit import TestCase from tests.support.mock import ( MagicMock, patch ) # Import Salt Libs import salt.modules.win_shadow as win_shadow class WinShadowTestCase(TestCase, LoaderModuleMockMixin): ''' Test cases for salt.modules.win_shadow ''' def setup_loader_modules(self): return { win_shadow: { '__salt__': { # 'user.info': MagicMock(return_value=True), 'user.update': MagicMock(return_value=True) } } } # 'info' function tests: 1 def test_info(self): ''' Test if it return information for the specified user ''' mock_user_info = MagicMock(return_value={'name': 'SALT', 'password_changed': '', 'expiration_date': ''}) with patch.dict(win_shadow.__salt__, {'user.info': mock_user_info}): self.assertDictEqual(win_shadow.info('SALT'), {'name': 'SALT', 'passwd': 'Unavailable', 'lstchg': '', 'min': '', 'max': '', 'warn': '', 'inact': '', 'expire': ''}) # 'set_password' function tests: 1 def test_set_password(self): ''' Test if it set the password for a named user. ''' mock_cmd = MagicMock(return_value={'retcode': False}) mock_user_info = MagicMock(return_value={'name': 'SALT', 'password_changed': '', 'expiration_date': ''}) with patch.dict(win_shadow.__salt__, {'cmd.run_all': mock_cmd, 'user.info': mock_user_info}): self.assertTrue(win_shadow.set_password('root', 'mysecretpassword'))