Как в pytest лучше всего проверять uuid?
Подскажите, пожалуйста, как лучше всего передавать значения переменных в pytest?
В коде, представленном ниже, мне потребовалось загнать значения uuid в переменные MENU_ID и SUBMENU_ID для дальнейшего использования.
Для этого я использовал global, но это считается плохой практикой.
Какие лучшие практики для этого существуют в pytest?
# conftest.py
import pytest
from fastapi.testclient import TestClient
from src.main import app
from src.session import Base, engine
@pytest.fixture(scope="module", autouse=True)
def test_db():
Base.metadata.create_all(engine)
yield
Base.metadata.drop_all(engine)
@pytest.fixture(scope="module")
def client():
yield TestClient(app)
#test.py
import uuid
import pytest
class TestSubmenus:
@pytest.fixture(scope='class', autouse=True)
def make_menu(self, client):
response = client.post(
"/api/v1/menus",
json={"title": "My menu 1",
"description": "My menu description 1"}
)
global MENU_ID
MENU_ID = response.json()["id"]
def test_create_submenu(self, client):
response = client.post(
f"/api/v1/menus/{MENU_ID}/submenus",
json={
"title": "My submenu 1",
"description": "My submenu description 1"
}
)
global SUBMENU_ID
SUBMENU_ID = response.json()["id"]
assert response.status_code == 201
assert response.json() == {
"id": SUBMENU_ID,
"title": "My submenu 1",
"description": "My submenu description 1",
"dishes_count": 0
}
Источник: Stack Overflow на русском