У меня есть модуль базы данных data.py с классом Database, например:
from someDatabase import theClient
class DatabaseClient:
def __init__(self):
self.connection = None
def __enter__(self):
self.connection = self.database_connection()
return self
def __exit__(self, exc_type, exc_value, traceback):
if self.connection:
self.connection.close()
def database_connection(self):
client = theClient()
return client
def database_query(self, table: str, query: str):
response = self.connection.search(
body = query,
table = table
)
return response
Затем в моем приложении Flask у меня есть маршрут:
from app.utils.Database import Database
from app.queries import thequery
from flask import Blueprint, jsonify
api = Blueprint('the_api', __name__)
@api.route("/api/this/route", methods=["GET"])
def get_some_stuff(**kwargs):
try:
# get input params from request
with Database() as db:
response = db.database_query("some_table", thequery)
# transform the response object
return jsonify(response), 200
except Exception as e:
raise e
Я пытаюсь понять, как я могу исправить DatabaseClient или, точнее, как мне исправить метод data_query() для возврата у меня есть некоторые sample_data.
Я хотел бы установить возвращаемое значение метода как-то, а затем вызвать маршрут в тесте, как показано ниже. Я пытаюсь использовать только pytest, а не смешивать его с unittest, если это возможно?
import pytest
from app import app
from tests.sample_data.api_responses.get_some_stuff import (
get_some_stuff_api_response
)
from tests.sample_data.query_responses.get_some_stuff import (
get_some_stuff_query_response
)
@pytest.fixture
def client():
with app.test_client() as client:
yield client
def test_get_some_stuff(client):
# What is the correct patch here to set the return value of Database.database_query?
# patch so it's equal to +get_some_stuff_query_response+
# Call the route
response = client.get(
f"/api/this/route",
)
assert response.status_code == 200
data = response.json
assert data == get_some_stuff_api_response
Подробнее здесь: https://stackoverflow.com/questions/783 ... ntext-mana
Как я могу имитировать возвращаемое значение для метода в классе, который использует диспетчер контекста ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ошибка «RuntimeError: диспетчер контекста тайм-аута должен использоваться внутри задачи»
Anonymous » » в форуме Python - 0 Ответы
- 27 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как присвоить возвращаемое значение функции @Composable свойству в классе?
Anonymous » » в форуме Android - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-