def test_Controller_completed_api_call_with_current_object( homedir, config, mocker): """ Ensure that cleanup is performed if an API call returns in the expected time. Using the `config` fixture to ensure the config is written to disk. """ mock_gui = mocker.MagicMock() mock_session = mocker.MagicMock() co = Controller('http://localhost', mock_gui, mock_session, homedir) mock_thread = mocker.MagicMock() mock_runner = mocker.MagicMock() mock_runner.result = 'result' mock_runner.current_object = 'current_object' co.api_threads = { 'thread_uuid': { 'thread': mock_thread, 'runner': mock_runner, } } mock_user_callback = mocker.MagicMock() mock_arg_spec = mocker.MagicMock(args=['foo', 'current_object']) mocker.patch('securedrop_client.logic.inspect.getfullargspec', return_value=mock_arg_spec) co.completed_api_call('thread_uuid', mock_user_callback) mock_user_callback.assert_called_once_with('result', current_object='current_object')
def test_Controller_completed_api_call_without_current_object( homedir, config, mocker): """ Ensure that cleanup is performed if an API call returns in the expected time. Using the `config` fixture to ensure the config is written to disk. """ mock_gui = mocker.MagicMock() mock_session = mocker.MagicMock() co = Controller('http://localhost', mock_gui, mock_session, homedir) mock_thread = mocker.MagicMock() mock_runner = mocker.MagicMock() mock_runner.result = 'result' mock_runner.current_object = None co.api_threads = { 'thread_uuid': { 'thread': mock_thread, 'runner': mock_runner, } } mock_user_callback = mocker.MagicMock() co.completed_api_call('thread_uuid', mock_user_callback) mock_user_callback.assert_called_once_with('result')