python flask unittest无法为获取请求设置标头

时间:2016-12-25 16:35:37

标签: python flask python-unittest werkzeug

我正在尝试在单元测试的标头请求中设置令牌

def setUp(self):
    #app = Flask(__name__)
    self.app = main.application.test_client()

def login(self):
    payload = {"user": "*******", "password": "******"}
    url ='/user/auth'
    headers = {'Content-Type': 'application/json'}
    response = self.app.post(url, data=json.dumps(payload), headers=headers) 
    result = json.loads(response.data)
    token = str(result["data"]["Token"])
    headers={'Content-Type': 'application/json','Token':token}
    return headers


def GetTool(self):
    headers= self.login()
    return self.app.get('/tool/all',headers=headers,follow_redirects=True)

但标题未设置... 我知道,因为我打印那个。 见下文

@toolAPI.route('/tool/all/', methods=['GET'])
#@authService.authorized
def getAllTools():
   print '*request headers'
   print request.headers
   try:
      ......

这是我在日志中得到的:

8:27:07 [MainThread  ] [INFO ]  ######HTTP MODE######
18:27:07 [MainThread  ] [INFO ]  *request headers
18:27:07 [MainThread  ] [INFO ]  Host: localhost
18:27:07 [MainThread  ] [INFO ]  Content-Length: 0
18:27:07 [MainThread  ] [INFO ]  Content-Type

任何建议是什么问题?

2 个答案:

答案 0 :(得分:2)

在您的测试文件中。

make menuconfig

答案 1 :(得分:0)

我发现我可以这样设置HTTP标头:

for (typename std::vector<T>::const_iterator it = v.begin(); it != v.end(); it++)

客户端似乎在执行请求之前删除了“ HTTP_”前缀。