示例#1
0
    def post(self, user_id):

        post_data = request.get_json()
        reset_user_id = post_data.get('user_id')

        if reset_user_id is not None:
            user = User.query.get(reset_user_id)

            if user is None:
                return make_response(
                    jsonify({
                        'message':
                        'No user found for ID: {}'.format(reset_user_id)
                    })), 404

            UserUtils.admin_reset_user_pin(user)

            response_object = {
                'status': 'success',
                'message': 'Successfully reset pin for user.',
                'data': {
                    'user': user_schema.dump(user).data
                }
            }
            return make_response(jsonify(response_object)), 200
        else:
            response_object = {
                'message': 'No user to reset pin for',
            }
            return make_response(jsonify(response_object)), 400
示例#2
0
def test_admin_reset_user_pin(mocker, test_client, init_database, create_transfer_account_user, mock_sms_apis):
    user = create_transfer_account_user
    admin_reset_user_pin(user)

    assert user.failed_pin_attempts == 0
    assert isinstance(user.pin_reset_tokens, list)
    assert len(user.pin_reset_tokens) == 1
示例#3
0
def test_admin_reset_user_pin(mocker, test_client, init_database, create_transfer_account_user):
    send_message = mocker.MagicMock()
    mocker.patch('server.message_processor.send_message', send_message)

    user = create_transfer_account_user
    admin_reset_user_pin(user)

    assert user.failed_pin_attempts == 0
    assert isinstance(user.pin_reset_tokens, list)
    assert len(user.pin_reset_tokens) == 1

    send_message.assert_has_calls([mocker.call(user.phone, 'Dial *384*96# Safaricom or *483*46# Airtel to change your PIN')])
def test_admin_reset_user_pin(mocker, test_client, init_database,
                              create_transfer_account_user, mock_sms_apis):
    user = create_transfer_account_user
    admin_reset_user_pin(user)

    assert user.failed_pin_attempts == 0
    assert isinstance(user.pin_reset_tokens, list)
    assert len(user.pin_reset_tokens) == 1
    messages = mock_sms_apis
    assert messages == [{
        'phone':
        user.phone,
        'message':
        'Dial *384*96# Safaricom or *483*46# Airtel to change your PIN'
    }]