Всем привет, тесты раньше не писал, поэтому решение скорей всего очень простое)
есть сами тесты
class UserTestCase(TestCase):
def setUp(self):
self.c = Client()
self.user = UserProfile.objects.create(
first_name='John',
last_name='Doy',
username='user1',
email='mail@example.com',
phone='+79000000001',
code='3322',
token="token",
confirmed=True,
)
self.user.save()
и тест одного метода
def test_user_login(self):
qry = {
'phone': self.user.phone,
'code': self.user.code
}
res = self.c.post(
'/login',
json.dumps(qry),
content_type="application/json"
)
data = json.loads(res.content.decode('utf-8'))
self.assertEqual(res.status_code, 200)
self.assertEqual(data['success'], True)
self.assertEqual(data['token'], UserProfile.objects.get(phone=self.user.phone).token)
Вот сам тестируемый метод
@csrf_exempt
def user_login(request):
if request.method == 'POST':
data = JSONParser().parse(request)
phone = validate_phone(data["phone"])
code = data["code"]
try:
user = UserProfile.objects.get(phone=phone, code=code)
token = token_generator()
user.token = token
user.save()
return JSONResponse({
"token": token,
"confirmed": user.confirmed,
"success": True,
"first_name": user.first_name,
"last_name": user.last_name,
"photo": user.photo,
})
except UserProfile.DoesNotExist:
return JSONResponse({
"token": None,
"success": False,
"message": "wrong phone number or confirmation code"
})
Вся фишка с базой данных насколько я понял, отладчиком пытался получить
-> try:
(Pdb) !user = UserProfile.objects.get(phone=phone)
*** api.models.DoesNotExist: UserProfile matching query does not exist.
Что не правильно делаю?
Тест валится, так как не может получить данные с бд.