pytest 夹具返回“函数”对象而不是字典

问题描述 投票:0回答:1

我正在尝试在我的一个 pytest 脚本上使用下面的装置。

如果我添加

back_up_account
作为参数,它可以正常工作并返回字典:

def tests_123(self, default_user):

    self.startup(default_user(back_up_account="test_account123"))

但是如果我不添加

back_up_account
作为参数,它就不起作用并返回“函数”对象。

def tests_123(self, default_user):

    self.startup(default_user)

有人知道为什么吗?

@pytest.fixture(scope='function')
def default_user(self) -> Dict:

        user = None

        def return_account(back_up_account: str = None):
            try:
                #self.user_util.get_account() returns a Dictionary
                user = self.user_util.get_account()
            except Exception:
                return back_up_account
            return user
        yield return_account
python pytest fixtures
1个回答
0
投票

看起来你的装置default_user正在产生一个函数,而不是一个字典。您应该尝试在测试中调用 default_user 来获取字典。

我认为这应该有效:

def tests_123(self, default_user):
    user_account = default_user()
    self.startup(user_account)
© www.soinside.com 2019 - 2024. All rights reserved.