from boto import auth from unittest.mock import MagicMock from unittest.mock import patch import boto.swf.layer2 as swf import pytest from octopus.tasks import mysql import subprocess @patch('subprocess.Popen') def pipe_mysql_from_stdin_to_stdout(monkeypatch, mocker): with pytest.raises(Exception): mysql.pipe_mysql_from_stdin_to_stdout(pipe=None) mocker.return_value = MagicMock() mock_pipe = MagicMock(stdout=subprocess.PIPE) monkeypatch.setattr(auth, 'get_auth_handler', MagicMock()) monkeypatch.setattr(swf, 'ActivityWorker', MagicMock()) resp = mysql.pipe_mysql_from_stdin_to_stdout(MagicMock(), mock_pipe) assert (mocker.called) assert isinstance(resp, dict) assert isinstance(resp.get('pipe'), subprocess.Popen)