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