我想创建一个具有特定用户电子邮件和密码的会话,因为我需要将这两条信息作为参数传递给pytest治具。
我试图这样做:
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问题是_update_credentials返回一个函数对象而不是JSON,这会引发TypeError:函数类型的对象不能被JSON序列化
怎样才能正确地提供电子邮件和密码?请帮帮我:)
发布于 2022-08-09 01:05:42
您所要做的似乎是像这样使用工厂化夹具图案:
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 sessionhttps://stackoverflow.com/questions/73280548
复制相似问题