简体   繁体   English

使用@pytest.fixtures(函数)作为参数编写测试?

[英]Writing a test with @pytest.fixtures (functions) as parameters?

@pytest.fixture(scope="session")
def create_user_access_token():
    """ Used to test: refresh and revoke endpoints"""
    response_data = oauth_requests.create_user_access_token()
    return response_data["token"]


@pytest.fixture(scope="session")
def create_client_access_token():
    """ Used to test: refresh and revoke endpoints"""
    response_data = oauth_requests.create_client_access_token()
    return response_data["token"]


@pytest.mark.parameterize('token', [create_client_access_token, create_user_access_token]
def test(token):
    return_data = check(token)
    assert return_data.status_code == 200

I understand it's not possible to do the above but how can I replicate this feature?我知道无法执行上述操作,但如何复制此功能? The tests I am writing are identical for both tokens.我正在编写的测试对于两个令牌都是相同的。

the fixtures are functions and request the API to create said token.固定装置是功能并请求 API 创建所述令牌。

@mrBeanBremen Already started refactoring my code with the singleton pattern:). @mrBeanBremen 已经开始使用 singleton 模式重构我的代码:)。 am leaving the function calls separate for flexibility.为了灵活性,我将 function 呼叫分开。 Thanks!谢谢!

class Tokens:
    __instance = None

    def __new__(cls, user_token, client_token):
        if cls.__instance is None:
            cls.__instance = object.__new__(cls)
        cls.__instance.user_token = user_token
        cls.__instance.client_token = client_token
        return cls.__instance

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM