Пример #1
0
def test_LoginDialog_validate_no_input():
    """
    If the user doesn't provide input, tell them and give guidance.
    """
    mock_controller = mock.MagicMock()
    ld = LoginDialog(None)
    ld.setup(mock_controller)
    ld.username_field.text = mock.MagicMock(return_value='')
    ld.password_field.text = mock.MagicMock(return_value='')
    ld.tfa_field.text = mock.MagicMock(return_value='')
    ld.setDisabled = mock.MagicMock()
    ld.error = mock.MagicMock()
    ld.validate()
    assert ld.setDisabled.call_count == 2
    assert ld.error.call_count == 1
Пример #2
0
def test_LoginDialog_validate_input_ok():
    """
    Valid input from the user causes a call to the controller's login method.
    """
    mock_controller = mock.MagicMock()
    ld = LoginDialog(None)
    ld.setup(mock_controller)
    ld.username_field.text = mock.MagicMock(return_value='foo')
    ld.password_field.text = mock.MagicMock(return_value='bar')
    ld.tfa_field.text = mock.MagicMock(return_value='123456')
    ld.setDisabled = mock.MagicMock()
    ld.error = mock.MagicMock()
    ld.validate()
    assert ld.setDisabled.call_count == 1
    assert ld.error.call_count == 0
    mock_controller.login.assert_called_once_with('foo', 'bar', '123456')
Пример #3
0
def test_LoginDialog_validate_too_short_password(mocker):
    """
    If the password is too small, we show an informative error message.
    """
    mock_controller = mocker.MagicMock()

    ld = LoginDialog(None)
    ld.setup(mock_controller)
    ld.username_field.text = mocker.MagicMock(return_value='foo')
    ld.password_field.text = mocker.MagicMock(return_value='bar')
    ld.tfa_field.text = mocker.MagicMock(return_value='123456')
    ld.setDisabled = mocker.MagicMock()
    ld.error = mocker.MagicMock()

    ld.validate()

    assert ld.setDisabled.call_count == 2
    assert ld.error.call_count == 1
    assert mock_controller.login.call_count == 0
Пример #4
0
def test_LoginDialog_validate_input_non_numeric_2fa(mocker):
    """
    If the user doesn't provide numeric 2fa input, tell them and give
    guidance.
    """
    mock_controller = mocker.MagicMock()

    ld = LoginDialog(None)
    ld.setup(mock_controller)
    ld.username_field.text = mocker.MagicMock(return_value='foo')
    ld.password_field.text = mocker.MagicMock(return_value='nicelongpassword')
    ld.tfa_field.text = mocker.MagicMock(return_value='baz')
    ld.setDisabled = mocker.MagicMock()
    ld.error = mocker.MagicMock()

    ld.validate()

    assert ld.setDisabled.call_count == 2
    assert ld.error.call_count == 1
    assert mock_controller.login.call_count == 0