yawn1122 large avatar
测试学习小组  ›  python接口自动化

python 装饰器 使用问题

By yawn1122 at 3 个月前 , 198 次浏览

公司有很多接口,有两种用户,通过在request.headers 不同的cookie,来区分是哪种用户调用的,我想通过装饰器的方法来指定用户身份,函数f()应该怎么改造,定义的时候不应该传入cookie的,但是我应该怎么样让@role_a的cookie传到f()里

@乙醇,不知道该怎么传,帮忙看看应该怎么写

from functools import wraps
import requests

cookie = 'EWRETETETEWT'
HEADERS = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36'}


def role_a(cookie):
def decorate(func):
@wraps(func)
def wrapped(*args, **kwargs):
result = func(cookie, *args, **kwargs)
return result

return wrapped

return decorate


@role_a(cookie)
def f(cookie, data):
header = HEADERS.copy()
if cookie:
header.setdefault('cookie', cookie)
res = requests.post('http://httpbin.org/post', data=data, headers=header)
return res


data = {'key': 'value'}
r = f(data)
print(r.request.headers['cookie'])


目前尚无回复
测试学习小组 — 软件测试学习讨论区
现在注册
已注册用户请 登入
内容分享

欢迎关注我们的公众号: 测试圈TC


小贴士

你的问题在测试教程网中能找到答案