【发布时间】:2019-01-17 07:36:15
【问题描述】:
我有一个使用 unittest 编写和编写测试用例的 Flask Web 应用程序。下面是它如何处理signup 路由
server.py
@app.route('/signup', methods=['GET', 'POST'])
def signup():
if current_user.__dict__.get('id', None):
return render_template('login.html')
if request.method == 'GET':
return render_template('signup.html')
else:
data = request.get_json()
username = data.get('username', '').lower()
password = data.get('password', '')
client = data.get('client', '')['name']
confirm_password = data.get('confirm_password', '')
在测试文件里面,有注册的辅助方法
test_unittesting.py
def signup(self, username, password, confirm, client):
return self.app.post(
'/signup',
data=json.dumps(dict(username=username, password=password, confirm=confirm, client=client)),
follow_redirects=True
)
但它似乎不起作用。 request.get_json() 返回空。参数存在于request.get_data() 而不是request.get_json()。我无法更改辅助方法以支持为路由定义的方法。我必须在测试文件中进行哪些更改才能使其以 request.get_json() 的身份运行?
【问题讨论】:
标签: python python-3.x flask python-unittest