예제 #1
0
def test_initialize_finalize(mock_interactivesession,
                             mock_shell):
    finalize = mock.Mock()

    terminal = AutoRecoveringTerminal()
    terminal.initialize(shells=mock_shell, finalize=finalize)
    terminal.initialize_terminal()

    terminal.close()

    finalize.assert_called_once_with()
예제 #2
0
def test_finalize_raises(mock_interactivesession,
                         mock_shell,
                         intcaplog):
    def raise_exception():
        raise Exception('message')
    mock_finalize = mock.Mock(side_effect=raise_exception)

    terminal = AutoRecoveringTerminal()
    terminal.initialize(shells=mock_shell,
                        finalize=mock_finalize)
    terminal.initialize_terminal()
    terminal.close()

    assert 'Failed to finalize the terminal: message' in intcaplog.text
    mock_close_terminal = mock_interactivesession.return_value.close_terminal
    mock_close_terminal.assert_called_once_with()