我正在编写涉及HTTP请求的测试。我必须按特定顺序提出一些请求,但我想检查每个步骤的响应。所以我认为生成器适合强制执行序列:
# Main code
def sequence_of_requests(arg1, arg2):
yield request_a(arg1)
yield request_b(arg1, arg2)
yield request_c(arg1, arg2)
然后在我的测试代码中,我可以写:
# Test code
generator_responses = sequence_of_requests()
r = next(generator_responses)
assert r.status_code == 200
r = next(generator_responses)
assert r.status_code == 204
r = next(generator_responses)
assert r.status_code == 404
问题是,在第一次尝试时并不总是收到正确的状态,因此我一直在测试代码中使用装饰器包装此函数,以便它反复尝试,直到成功或超时。request_c()
我想知道是否有某种方法可以在生成器上进行此包装,因此我仍然可以获得强制的事件序列。因此,我基本上想知道是否有某种方法可以反复调用生成器的一个屈服步长。
注意:我不想将代码直接放在函数中等待响应,因为它不是测试代码。该函数仅用于确保以正确的顺序完成这些步骤。sequence_of_requestssequence_of_requests
至尊宝的传说
呼啦一阵风
相关分类