예제 #1
0
def test_ConversationView_add_not_downloaded_file(mocker, homedir):
    """
    Adding a file results in a new FileWidget added to the layout with the
    proper QLabel.
    """
    mocked_source = mocker.MagicMock()
    mocked_controller = mocker.MagicMock()

    cv = ConversationView(mocked_source, homedir, mocked_controller)
    cv.conversation_layout = mocker.MagicMock()

    mock_source = mocker.MagicMock()
    mock_file = mocker.MagicMock()
    mock_file.is_downloaded = False
    mock_file.size = 123
    mock_label = mocker.patch('securedrop_client.gui.widgets.QLabel')
    mocker.patch('securedrop_client.gui.widgets.QHBoxLayout.addWidget')
    mocker.patch('securedrop_client.gui.widgets.FileWidget.setLayout')

    cv.add_file(mock_source, mock_file)
    mock_label.assert_called_with("Download (123 bytes)")
    assert cv.conversation_layout.addWidget.call_count == 1

    cal = cv.conversation_layout.addWidget.call_args_list
    assert isinstance(cal[0][0][0], FileWidget)
예제 #2
0
def test_ConversationView_add_reply():
    """
    Adding a reply results in a new ReplyWidget added to the layout.
    """
    cv = ConversationView(None)
    cv.controller = mock.MagicMock()
    cv.conversation_layout = mock.MagicMock()
    cv.add_reply('hello')
    assert cv.conversation_layout.addWidget.call_count == 1
    cal = cv.conversation_layout.addWidget.call_args_list
    assert isinstance(cal[0][0][0], ReplyWidget)
예제 #3
0
def test_ConversationView_add_reply():
    """
    Adding a reply results in a new ReplyWidget added to the layout. Any
    associated files are added as FileWidgets.
    """
    cv = ConversationView(None)
    cv.conversation_layout = mock.MagicMock()
    cv.add_reply('hello', [
        'file1.pdf',
    ])
    assert cv.conversation_layout.addWidget.call_count == 2
    cal = cv.conversation_layout.addWidget.call_args_list
    assert isinstance(cal[0][0][0], ReplyWidget)
    assert isinstance(cal[1][0][0], FileWidget)
예제 #4
0
def test_ConversationView_add_reply(mocker, homedir):
    """
    Adding a reply results in a new ReplyWidget added to the layout.
    """
    mocked_source = mocker.MagicMock()
    mocked_controller = mocker.MagicMock()

    cv = ConversationView(mocked_source, homedir, mocked_controller)
    cv.conversation_layout = mocker.MagicMock()

    cv.add_reply('mock id', 'hello')
    assert cv.conversation_layout.addWidget.call_count == 1

    cal = cv.conversation_layout.addWidget.call_args_list
    assert isinstance(cal[0][0][0], ReplyWidget)
예제 #5
0
def test_ConversationView_add_downloaded_file():
    """
    Adding a file results in a new FileWidget added to the layout with the
    proper QLabel.
    """
    cv = ConversationView(None)
    cv.controller = mock.MagicMock()
    cv.conversation_layout = mock.MagicMock()
    mock_source = mock.MagicMock()
    mock_file = mock.MagicMock()
    mock_file.is_downloaded = True
    with mock.patch('securedrop_client.gui.widgets.QLabel') as mock_label, \
            mock.patch('securedrop_client.gui.widgets.QHBoxLayout.addWidget'),\
            mock.patch('securedrop_client.gui.widgets.FileWidget.setLayout'):
        cv.add_file(mock_source, mock_file)
    mock_label.assert_called_with("Open")
    assert cv.conversation_layout.addWidget.call_count == 1
    cal = cv.conversation_layout.addWidget.call_args_list
    assert isinstance(cal[0][0][0], FileWidget)