Как я могу отправить запрос POST с помощью тестового клиента Django? Я просто хочу проверить функцию входа в мое приложение. Странно что ставлю
response = self.client.post(reverse('rbac:login'), data=data)
в моем тестовом примере, и я хочу проверить его, поэтому я печатаю response.status_code
. На самом деле он должен возвращать 302 коза, он должен перейти на другую страницу. но он возвращает 200. Такая ситуация возникает, когда я использую «python manage.py test testmodel
» для проверки. Однако, если я использую «python manage.py shell
», чтобы создать InteractiveConsole и написать точно такой же код, он, наконец, вернет 302.
Я почти перепробовал все методы, предоставляемые при переполнении стека, например, измените URL, предложите тип контента, когда я публикую… но это бессмысленно.
from django.test import TestCase
from django.test.utils import setup_test_environment,teardown_test_environment
from django.test import Client
from django.urls import reverse
import django
from rbac.models import RbacUser, RbacRole
from system_module.models import Redeploy
from urllib import urlencode
class CreateUser(TestCase):
@classmethod
def setUp(self):
self.client = Client()
def test_create_user(self):
data = {"Username": "admin_xy", "Password": "aaa"}
response = self.client.post(reverse('rbac:login'), data=data)
print response
и это показывает мне 200 .....
Однако в интерактивной консоли:
>>> response = client.post(reverse('rbac:login'), data=data)
>>> print response.status_code
302
показывает правильный результат.
Я хочу знать, как справиться с этой надоедливой проблемой. Thx
Я ожидаю, что когда я использую тестовый файл для тестирования моего тестового примера, он работает нормально .... как показано в коде 302.