Как получить доступ к request.user в self.client.post Тестирование
У меня есть модель под названием Quote, которая имеет ForeignKey, указывающий на User. Я хочу сделать post запрос для создания Quote, но я не знаю, какие данные я должен передать в self.client.post, вот что у меня получилось на данный момент, я говорю о test_can_save_a_POST_request:
from django.contrib.auth import get_user_model
from django.test import TestCase
from quotes.models import Quote
from quotes.views import home_page
User = get_user_model()
class HomePageTest(TestCase):
def test_uses_home_template(self):
response = self.client.get('/')
self.assertTemplateUsed(response, 'home.html')
def test_display_all_quotes(self):
user1 = User.objects.create(email="rafik@test.com", password="foo")
Quote.objects.create(text='quote 1', user=user1)
Quote.objects.create(text='quote 2', user=user1)
response = self.client.get('/')
self.assertIn('quote 1', response.content.decode())
self.assertIn('quote 2', response.content.decode())
def test_can_save_a_POST_request(self):
user1 = User.objects.create(email="rafik@test.com", password="foo")
self.client.post('/', data={
'quote_text': 'The first ever quote'
}
)
Просто отправляем идентификатор пользователя:
def test_can_save_a_POST_request(self):
user1 = User.objects.create(email="rafik@test.com", password="foo")
self.client.post('/', data={
'quote_text': 'The first ever quote',
'user': user1.id,
}
)