Я строю простой API с Django REST Framework, все работает как с завитком и API веб-администратора, но если я бегу следующий тест:Django REST Framework client.login() не работает. (Пользователь создан)
class OrderTest(APITestCase):
username = 'admin'
password = '12345'
def setUp(self):
User.objects.create(
username=self.username,
password=self.password,
email='[email protected]',
is_superuser=True,
is_staff=True
)
def test_create_order_by_admin(self):
url = '/api/orders/'
data = {
'name': 'John Doe',
'phone': '380000000000',
'status': 1,
'email': 'jonhn.doe[email protected]',
'date': datetime.now(),
}
# Cheking if user exist
self.assertEqual(User.objects.get(pk=1).username, self.username)
self.client.login(
username=self.username,
password=self.password,
)
response = self.client.post(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertEqual(Order.objects.count(), 1)
for key, value in data.items():
self.assertEqual(Order.objects.get().key, value)
он не со следующей ошибкой:
Failure
Traceback (most recent call last):
File "/home/linevich/projects/swebion.com/project/order_form/tests.py", line 71, in test_create_order_by_admin
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
AssertionError: 403 != 201
Это значит, что client.login()
не работает. Любые идеи?
Какова была возвращаемая стоимость 'self.client.login'? – wim
btw это не связано с вашей проблемой, но я рекомендую удалить первое утверждение (одно о имени пользователя), потому что это не то, что вы здесь тестируете. Просто сохраните 'self.user = User (...)' в методе setUp. – wim
User.objects.create_user (['user', '[email protected]', 'password']) – C14L