我一直在测试我的应用程序并遇到错误,似乎与应用程序本身没有任何关系.我有这样的单元测试:
class TagSaveAndLoadTest(TestCase):
fixtures = ['users.json']
def setUp(self):
self.client = Client()
self.client.login(user='test_user', password='123')
def test_register_save(self):
tag_dict = {
'sex' : 4,
'drugs' : 3,
'rocknroll' : 1,
}
response = self.client.post('/register/save_tags/', {'skilltags' : json.dumps(tag_dict)})
self.assertEqual(response.status_code, 200)
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:TypeError: int() argument must be a string or a number, not 'AnonymousUser'.出现在追踪文件是base.py,manages.py,query.py等它看起来像我的请求被在中间件的地方卡住了,我不知道如何对付它.如果请求不能达到我的视野甚至控制器怎么可能呢?如果'setUp()'函数记录测试用户,为什么AnonymousUser会出现问题?
可以在这里找到完整的回溯,提前感谢!
尽量不要被追溯过于恐吓.如果你在所有Django内部都看得很高,你需要的信息就在那里.请求到达您的视图,问题不在中间件中.看起来client.login调用不起作用.以下筛选器语句失败,因为request.user是匿名用户
Skill.objects.filter(user=request.user).delete()
Run Code Online (Sandbox Code Playgroud)
尝试在测试中打印client.login行.如果成功登录用户,它将返回True.如果这不起作用,则检查:
| 归档时间: |
|
| 查看次数: |
8915 次 |
| 最近记录: |