Ejemplo n.º 1
0
def test_get_client_cached(m_requests, m_db, client):
    table = mock.Mock()
    table.find_one.return_value = client
    db = {"clients": table}
    m_db.__getitem__.side_effect = db.__getitem__
    m_db.__iter__.side_effect = db.__iter__

    cli = services.get_client("70624771687")

    assert table.find_one.called_once
    assert not table.upsert.called
    assert not m_requests.get.called
    assert cli == client
Ejemplo n.º 2
0
def test_get_client_fail(m_logger, m_requests, m_db):
    response = mock.Mock()
    response.status_code = 500
    m_requests.get.return_value = response

    table = mock.Mock()
    table.find_one.return_value = None
    db = {"clients": table}
    m_db.__getitem__.side_effect = db.__getitem__
    m_db.__iter__.side_effect = db.__iter__

    cli = services.get_client("70624771687")

    assert table.find_one.called_once
    assert not table.upsert.called
    assert m_requests.get.called_once
    assert not response.json.called
    assert m_logger.warning.called_once
    assert not cli
Ejemplo n.º 3
0
def test_get_client_success(m_requests, m_db, client):
    data = [client]
    response = mock.Mock()
    response.status_code = 200
    response.json.return_value = data
    m_requests.get.return_value = response

    table = mock.Mock()
    table.find_one.return_value = None
    db = {"clients": table}
    m_db.__getitem__.side_effect = db.__getitem__
    m_db.__iter__.side_effect = db.__iter__

    cli = services.get_client("70624771687")

    assert table.find_one.called_once
    assert table.upsert.called_once
    assert m_requests.get.called_once
    assert response.json.called_once
    assert cli == client
Ejemplo n.º 4
0
def get_client(update, context):
    cpf = re.sub("[^0-9]", "", update.message.text)
    client = services.get_client(cpf)

    if client:
        context.user_data["client"] = client
        text = ("CLIENT DETAILS\n\n"
                f"Name: {client.get('name', '')} {client.get('surname', '')}\n"
                f"Email: {client.get('email', '')}\n"
                f"Phone: {client.get('telephone', '')}\n"
                f"CPF: {client.get('cpf', '')}")
        update.message.reply_markdown(f"```\n{text}\n```")
        update.message.reply_text(
            "This is what I got. Is it the right client?",
            reply_markup=ReplyKeyboardMarkup([["Yes", "No"]],
                                             one_time_keyboard=True),
        )
        return ConversationState.ACTION
    else:
        update.message.reply_text("Sorry, I couldn't find the client.")
        return ConversationHandler.END