如何在测试设置中重写 'user': '5/分钟' on 'user': '2/day'
REST_FRAMEWORK = {
'DEFAULT_THROTTLE_RATES': {
'user': '5/minute'
}
}
Run Code Online (Sandbox Code Playgroud)
我如何使用@override_settings或带有上下文管理的mb来做到这一点?我只需要在一个测试中应用这个,我不能重写整个字典
def test_mytest(self):
value = settings.REST_FRAMEWORK
value['DEFAULT_THROTTLE_RATES'] = {'user':'2/day'}
data1 = {}
data2 = {}
data3 = {}
with self.settings(REST_FRAMEWORK=value):
resp1 = self.client.post(self.url, data1, format='json')
resp2 = self.client.post(self.url, data1, format='json')
resp3 = self.client.post(self.url, data1, format='json')
assert resp3.status_code == 429, resp3.data
Run Code Online (Sandbox Code Playgroud)
但是没有429错误,虽然值已经改变了
这是我的行动:
>>> def show(d):
print d
...
>>> test = {"result": True}
>>> show(test)
{'result': True}
>>> show(test["info"]="Some info")
File "<console>", line 1
SyntaxError: keyword can't be an expression
Run Code Online (Sandbox Code Playgroud)
为什么我不能将表达式作为参数传递给函数?