[英]How to pass arguments to a pytest fixture?
I'd like to create a session with specific user email and password, for that I need to pass these two pieces of information to a pytest fixture as arguments.
我這樣做的嘗試:
from pytest import fixture
from api_methods import ApiMethods
@fixture(scope="session")
def user_session():
def _update_credentials(email, password):
user_credentials = {
"email": email,
"password": password
}
return user_credentials
session = ApiMethods()
session.get_authorized(_update_credentials)
return session
The problem is that _update_credentials returns a function object instead of JSON, which raises TypeError: Object of type function is not JSON serializable
我該怎么做才能正確地為這個夾具提供 email 和密碼? 請幫幫我:)
您似乎想要做的是將工廠用作固定模式,如下所示:
from pytest import fixture
from api_methods import ApiMethods
@fixture(scope="session")
def update_credentials():
def _update_credentials(email, password):
user_credentials = {
"email": email,
"password": password
}
return user_credentials
return _update_credentials
@fixture(scope="session")
def user_session(update_credentials):
user_credentials = update_credentials("email1", "password1")
session = ApiMethods()
session.get_authorized(user_credentials)
return session
但似乎你可以這樣做:
from pytest import fixture
from api_methods import ApiMethods
@fixture(scope="session")
def user_session():
user_credentials = {
"email": email,
"password": password
}
session = ApiMethods()
session.get_authorized(user_credentials)
return session
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.