Получение ошибки: Несоответствие имени пользователя и пароля при попытке проверить логин 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")