Example #1
0
 def test_call_success(self, mkdtemp, exist):
     '''
     Test execution of Salt functions in chroot.
     '''
     # Success test
     exist.return_value = True
     mkdtemp.return_value = '/chroot/tmp01'
     utils_mock = {
         'thin.gen_thin': MagicMock(return_value='/salt-thin.tgz'),
         'files.rm_rf': MagicMock(),
         'json.find_json': MagicMock(return_value={'return': 'result'})
     }
     salt_mock = {
         'archive.tar':
         MagicMock(return_value=''),
         'config.option':
         MagicMock(),
         'cmd.run_chroot':
         MagicMock(return_value={
             'retcode': 0,
             'stdout': '',
         }),
     }
     with patch.dict(chroot.__utils__, utils_mock), \
             patch.dict(chroot.__salt__, salt_mock):
         self.assertEqual(chroot.call('/chroot', 'test.ping'), 'result')
         utils_mock['thin.gen_thin'].assert_called_once()
         salt_mock['config.option'].assert_called()
         salt_mock['archive.tar'].assert_called_once()
         salt_mock['cmd.run_chroot'].assert_called_once()
         utils_mock['files.rm_rf'].assert_called_once()
Example #2
0
 def test_call_fails_untar(self, mkdtemp, exist):
     '''
     Test execution of Salt functions in chroot.
     '''
     # Fail the tar command
     exist.return_value = True
     mkdtemp.return_value = '/chroot/tmp01'
     utils_mock = {
         'thin.gen_thin': MagicMock(return_value='/salt-thin.tgz'),
         'files.rm_rf': MagicMock(),
     }
     salt_mock = {
         'cmd.run': MagicMock(return_value='Error'),
         'config.option': MagicMock(),
     }
     with patch.dict(chroot.__utils__, utils_mock), \
             patch.dict(chroot.__salt__, salt_mock):
         self.assertEqual(chroot.call('/chroot', 'test.ping'), {
             'result': False,
             'comment': 'Error'
         })
         utils_mock['thin.gen_thin'].assert_called_once()
         salt_mock['config.option'].assert_called()
         salt_mock['cmd.run'].assert_called_once()
         utils_mock['files.rm_rf'].assert_called_once()
Example #3
0
 def test_call_fails_salt_thin(self, mkdtemp, exist):
     """
     Test execution of Salt functions in chroot.
     """
     # Fail the inner command
     exist.return_value = True
     mkdtemp.return_value = "/chroot/tmp01"
     utils_mock = {
         "thin.gen_thin": MagicMock(return_value="/salt-thin.tgz"),
         "files.rm_rf": MagicMock(),
         "json.find_json": MagicMock(side_effect=ValueError()),
     }
     salt_mock = {
         "cmd.run":
         MagicMock(return_value=""),
         "config.option":
         MagicMock(),
         "cmd.run_chroot":
         MagicMock(return_value={
             "retcode": 1,
             "stdout": "",
             "stderr": "Error"
         }),
     }
     with patch.dict(chroot.__utils__,
                     utils_mock), patch.dict(chroot.__salt__, salt_mock):
         self.assertEqual(
             chroot.call("/chroot", "test.ping"),
             {
                 "result": False,
                 "retcode": 1,
                 "comment": {
                     "stdout": "",
                     "stderr": "Error"
                 },
             },
         )
         utils_mock["thin.gen_thin"].assert_called_once()
         salt_mock["config.option"].assert_called()
         salt_mock["cmd.run"].assert_called_once()
         salt_mock["cmd.run_chroot"].assert_called_with(
             "/chroot",
             [
                 "python{}".format(sys.version_info[0]),
                 "/tmp01/salt-call",
                 "--metadata",
                 "--local",
                 "--log-file",
                 "/tmp01/log",
                 "--cachedir",
                 "/tmp01/cache",
                 "--out",
                 "json",
                 "-l",
                 "quiet",
                 "--",
                 "test.ping",
             ],
         )
         utils_mock["files.rm_rf"].assert_called_once()
Example #4
0
 def test_call_fails_untar(self, mkdtemp, exist):
     """
     Test execution of Salt functions in chroot.
     """
     # Fail the tar command
     exist.return_value = True
     mkdtemp.return_value = "/chroot/tmp01"
     utils_mock = {
         "thin.gen_thin": MagicMock(return_value="/salt-thin.tgz"),
         "files.rm_rf": MagicMock(),
     }
     salt_mock = {
         "cmd.run": MagicMock(return_value="Error"),
         "config.option": MagicMock(),
     }
     with patch.dict(chroot.__utils__,
                     utils_mock), patch.dict(chroot.__salt__, salt_mock):
         self.assertEqual(
             chroot.call("/chroot", "test.ping"),
             {
                 "result": False,
                 "comment": "Error"
             },
         )
         utils_mock["thin.gen_thin"].assert_called_once()
         salt_mock["config.option"].assert_called()
         salt_mock["cmd.run"].assert_called_once()
         utils_mock["files.rm_rf"].assert_called_once()
Example #5
0
 def test_call_success_parameters(self, mkdtemp, exist):
     '''
     Test execution of Salt functions in chroot with parameters.
     '''
     # Success test
     exist.return_value = True
     mkdtemp.return_value = '/chroot/tmp01'
     utils_mock = {
         'thin.gen_thin': MagicMock(return_value='/salt-thin.tgz'),
         'files.rm_rf': MagicMock(),
         'json.find_json': MagicMock(return_value={'return': 'result'})
     }
     salt_mock = {
         'cmd.run': MagicMock(return_value=''),
         'config.option': MagicMock(),
         'cmd.run_chroot': MagicMock(return_value={
             'retcode': 0,
             'stdout': '',
         }),
     }
     with patch.dict(chroot.__utils__, utils_mock), \
             patch.dict(chroot.__salt__, salt_mock):
         self.assertEqual(chroot.call('/chroot', 'module.function',
                                      key='value'), 'result')
         utils_mock['thin.gen_thin'].assert_called_once()
         salt_mock['config.option'].assert_called()
         salt_mock['cmd.run'].assert_called_once()
         salt_mock['cmd.run_chroot'].assert_called_with(
             '/chroot',
             ['python{}'.format(sys.version_info[0]), '/tmp01/salt-call',
              '--metadata', '--local',
              '--log-file', '/tmp01/log', '--cachedir', '/tmp01/cache',
              '--out', 'json', '-l', 'quiet',
              '--', 'module.function', 'key=value'])
         utils_mock['files.rm_rf'].assert_called_once()
Example #6
0
 def test_call_success_parameters(self, mkdtemp, exist):
     """
     Test execution of Salt functions in chroot with parameters.
     """
     # Success test
     exist.return_value = True
     mkdtemp.return_value = "/chroot/tmp01"
     utils_mock = {
         "thin.gen_thin": MagicMock(return_value="/salt-thin.tgz"),
         "files.rm_rf": MagicMock(),
         "json.find_json": MagicMock(return_value={"return": "result"}),
     }
     salt_mock = {
         "cmd.run": MagicMock(return_value=""),
         "config.option": MagicMock(),
         "cmd.run_chroot": MagicMock(return_value={
             "retcode": 0,
             "stdout": ""
         }),
     }
     with patch.dict(chroot.__utils__,
                     utils_mock), patch.dict(chroot.__salt__, salt_mock):
         self.assertEqual(
             chroot.call("/chroot", "module.function", key="value"),
             "result")
         utils_mock["thin.gen_thin"].assert_called_once()
         salt_mock["config.option"].assert_called()
         salt_mock["cmd.run"].assert_called_once()
         salt_mock["cmd.run_chroot"].assert_called_with(
             "/chroot",
             [
                 "python{}".format(sys.version_info[0]),
                 "/tmp01/salt-call",
                 "--metadata",
                 "--local",
                 "--log-file",
                 "/tmp01/log",
                 "--cachedir",
                 "/tmp01/cache",
                 "--out",
                 "json",
                 "-l",
                 "quiet",
                 "--",
                 "module.function",
                 "key=value",
             ],
         )
         utils_mock["files.rm_rf"].assert_called_once()
Example #7
0
 def test_call_fails_salt_thin(self, mkdtemp, exist):
     '''
     Test execution of Salt functions in chroot.
     '''
     # Fail the inner command
     exist.return_value = True
     mkdtemp.return_value = '/chroot/tmp01'
     utils_mock = {
         'thin.gen_thin': MagicMock(return_value='/salt-thin.tgz'),
         'files.rm_rf': MagicMock(),
         'json.find_json': MagicMock(return_value={'return': {}})
     }
     salt_mock = {
         'cmd.run':
         MagicMock(return_value=''),
         'config.option':
         MagicMock(),
         'cmd.run_chroot':
         MagicMock(return_value={
             'retcode': 1,
             'stderr': 'Error',
         }),
     }
     with patch.dict(chroot.__utils__, utils_mock), \
             patch.dict(chroot.__salt__, salt_mock):
         self.assertEqual(chroot.call('/chroot', 'test.ping'), {
             'result': False,
             'comment': "Can't parse container command output"
         })
         utils_mock['thin.gen_thin'].assert_called_once()
         salt_mock['config.option'].assert_called()
         salt_mock['cmd.run'].assert_called_once()
         salt_mock['cmd.run_chroot'].assert_called_with(
             '/chroot', [
                 'python{}'.format(sys.version_info[0]), '/tmp01/salt-call',
                 '--metadata', '--local', '--log-file', '/tmp01/log',
                 '--cachedir', '/tmp01/cache', '--out', 'json', '-l',
                 'quiet', '--', 'test.ping'
             ])
         utils_mock['files.rm_rf'].assert_called_once()