def test_call_success(self): ''' test module calling inside containers ''' ret = None docker_run_all_mock = MagicMock( return_value={ 'retcode': 0, 'stdout': '{"retcode": 0, "comment": "container cmd"}', 'stderr': 'err', }) docker_copy_to_mock = MagicMock(return_value={'retcode': 0}) docker_config_mock = MagicMock(return_value='') client = Mock() client.put_archive = Mock() get_client_mock = MagicMock(return_value=client) context = {'docker.exec_driver': 'docker-exec'} salt_dunder = {'config.option': docker_config_mock} with patch.object(docker_mod, 'run_all', docker_run_all_mock): with patch.object(docker_mod, 'copy_to', docker_copy_to_mock): with patch.object(docker_mod, '_get_client', get_client_mock): with patch.dict(docker_mod.__opts__, {'cachedir': '/tmp'}): with patch.dict(docker_mod.__salt__, salt_dunder): with patch.dict(docker_mod.__context__, context): # call twice to verify tmp path later for i in range(2): ret = docker_mod.call('ID', 'test.arg', 1, 2, arg1='val1') # Check that the directory is different each time # [ call(name, [args]), ... self.maxDiff = None self.assertIn('mkdir', docker_run_all_mock.mock_calls[0][1][1]) self.assertIn('mkdir', docker_run_all_mock.mock_calls[4][1][1]) self.assertNotEqual(docker_run_all_mock.mock_calls[0][1][1], docker_run_all_mock.mock_calls[4][1][1]) self.assertIn('salt-call', docker_run_all_mock.mock_calls[2][1][1]) self.assertIn('salt-call', docker_run_all_mock.mock_calls[6][1][1]) self.assertNotEqual(docker_run_all_mock.mock_calls[2][1][1], docker_run_all_mock.mock_calls[6][1][1]) # check thin untar self.assertIn('tarfile', docker_run_all_mock.mock_calls[1][1][1]) self.assertIn('tarfile', docker_run_all_mock.mock_calls[5][1][1]) self.assertNotEqual(docker_run_all_mock.mock_calls[1][1][1], docker_run_all_mock.mock_calls[5][1][1]) # check directory cleanup self.assertIn('rm -rf', docker_run_all_mock.mock_calls[3][1][1]) self.assertIn('rm -rf', docker_run_all_mock.mock_calls[7][1][1]) self.assertNotEqual(docker_run_all_mock.mock_calls[3][1][1], docker_run_all_mock.mock_calls[7][1][1]) self.assertEqual({"retcode": 0, "comment": "container cmd"}, ret)
def test_call_success(): """ test module calling inside containers """ ret = None docker_run_all_mock = MagicMock( return_value={ "retcode": 0, "stdout": '{"retcode": 0, "comment": "container cmd"}', "stderr": "err", }) docker_copy_to_mock = MagicMock(return_value={"retcode": 0}) docker_config_mock = MagicMock(return_value="") client = Mock() client.put_archive = Mock() get_client_mock = MagicMock(return_value=client) context = {"docker.exec_driver": "docker-exec"} salt_dunder = {"config.option": docker_config_mock} with patch.object( docker_mod, "run_all", docker_run_all_mock), patch.object( docker_mod, "copy_to", docker_copy_to_mock), patch.object( docker_mod, "_get_client", get_client_mock), patch.dict( docker_mod.__opts__, {"cachedir": "/tmp"}), patch.dict( docker_mod.__salt__, salt_dunder), patch.dict(docker_mod.__context__, context): # call twice to verify tmp path later for i in range(2): ret = docker_mod.call("ID", "test.arg", 1, 2, arg1="val1") # Check that the directory is different each time # [ call(name, [args]), ... assert "mkdir" in docker_run_all_mock.mock_calls[0][1][1] assert "mkdir" in docker_run_all_mock.mock_calls[5][1][1] assert (docker_run_all_mock.mock_calls[0][1][1] != docker_run_all_mock.mock_calls[5][1][1]) assert "python3 --version" == docker_run_all_mock.mock_calls[1][1][1] assert "salt-call" in docker_run_all_mock.mock_calls[3][1][1] assert "salt-call" in docker_run_all_mock.mock_calls[8][1][1] assert (docker_run_all_mock.mock_calls[3][1][1] != docker_run_all_mock.mock_calls[8][1][1]) # check thin untar assert "tarfile" in docker_run_all_mock.mock_calls[2][1][1] assert "tarfile" in docker_run_all_mock.mock_calls[7][1][1] assert (docker_run_all_mock.mock_calls[2][1][1] != docker_run_all_mock.mock_calls[7][1][1]) # check directory cleanup assert "rm -rf" in docker_run_all_mock.mock_calls[4][1][1] assert "rm -rf" in docker_run_all_mock.mock_calls[9][1][1] assert (docker_run_all_mock.mock_calls[4][1][1] != docker_run_all_mock.mock_calls[9][1][1]) assert {"retcode": 0, "comment": "container cmd"} == ret