我想测试用户注册,但我无法测试图像,这是我的测试:
test.py
response = self.client.post('/api/v1/signup/',
content_type='application/json',
data=json.dumps({"username": "casino", "email": "casinoluxwin@gmail.com",
"password1": "android12", "password2": "android12", "photo": {
'real_filename': "u'banner3.jpg'",
'path': "u'C:/Users/Dima/Desktop'"}
}))
self.assertEqual(response.status_code, 200)
我得到代码400(错误请求),但没有照片我的测试通过
service/users.py
@validate_input({
'username': {'min_length': 3, 'max_length': 50},
'email': {'validation_type': "email", 'max_length': 50},
'password1': {'min_length': 8, 'max_length': 50},
'password2': {'min_length': 8, 'equal_to': 'password1',
'messages': {'equal_to': _(u"Пароли не совпадают")}},
'photo': {'required': True}
})
@transaction.atomic
def signup(self, data):
user_data = {
'username': data['username'],
'email': data['email'],
'password': data['password1'],
'coins_amount': 0
}
user = self._create_user(user_data)
if data.get("photo"):
self._attach_photo(user, data["photo"])
obj, created = VerificationCode.objects.get_or_create(user=user, code_type="registration")
obj.create_expiration_date()
obj.create_code()
obj.save()
return user.id
所以我想测试用户照片其他任何工作正常。谢谢你的帮助
答案 0 :(得分:0)
问题可能存在于Users._attach_photo()
或您的用户模型中。这里没有足够的信息来完全破译它。有几件事要尝试。
我写了一个不使用客户端的普通unittest。它将为您提供比运行服务器中的HTTP状态代码更有用的回溯。类似的东西:
def test_user_add_method(self):
x = Users.signup(json.dumps({"username": "casino", "email": "casinoluxwin@gmail.com",
"password1": "android12", "password2": "android12", "photo": {
'real_filename': "u'banner3.jpg'",
'path': "u'C:/Users/Dima/Desktop'"})
Users.get(pk=x) #will fail if user was not created.
其次,尝试评论你的验证器。 400个错误的请求很容易被启动。您的验证器可能无法正常使用该图像,您将不得不使用它。