Получение ошибки: Несоответствие имени пользователя и пароля при попытке проверить логин rest api?

После я пытаюсь написать контрольные примеры для входа API, когда я пишу тест вне любого класса, то это не дает никакой ошибки, но когда я создал класс class TestCase(TestCase): и определить метод def test_login(self):, Это дает несоответствие пароля, но вне того же самого кода, работающего успешно.

from django.test import TestCase
from django.test import Client
import json

#Creating test out side class


credential=dict()
c =Client()
credential["username"]="john"
credential["password"]="xxx"
response =c.put('/api/login', data=json.dumps(credential)) 

print("content")
print(response.content)

"""
{"message": "", "result": {"username": "john", "session_key": "xyz"}, "error": 0}
"""


print("session_key")
content = json.loads(response.content)
key = content['result']['session_key']
print key


#Creating test inside class


class TestCase(TestCase):
   def test_login(self):
      User.objects.create(username="john", password="xxx")
      credential=dict()
      c =Client()
      credential["username"]="john"
      credential["password"]="xxx"
      response =c.put('/api/login', data=json.dumps(credential))
      content=json.loads(response.content)
      print 'content'
      print content


     {u'message': u'Username and Password mismatch', u'result': {}, u'error': 1}

Здесь мы видим, что сообщение отличается форматом для успешного
{"message": "", "result": {"username": "john", "session_key": "xyz"}, "error": 0}

Для неудачных
{u'message': u'Username and Password mismatch', u'result': {}, u'error': 1}, Есть u перед каждой переменной. Я думаю, что проблема здесь....

1 ответ

В тестах используется отдельная база данных, созданная для этого теста. Вам необходимо создать прибор для заполнения базы данных этим пользователем или просто добавить код для его создания до login позвоните, что-то вроде:

User.objects.create(username="john", password="xxx")
Другие вопросы по тегам