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
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')
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
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