Есть 3 модели, и у меня есть 3 CreateView для каждой.и я хочу проверить перенаправление после заполнения формы.
Я попытался написать 3 теста, но 2 из них столкнулись с ошибкой.Однако приложение работает так, как я хочу, в моем браузере.
у всех моделей есть этот метод get_absolute_url
def get_absolute_url(self):
return reverse('foo', kwargs = {'pk':self.pk})
Три вида создания для вышеуказанных моделей в точности такие же, как этот
class foo(CreateView):
form_class = bar
template_name = 'xxx.html'
def form_valid(self, form):
form.instance.user = self.request.user
return super().form_valid(form)
И этот тест работает
class Test_get_absolute_url(TestCase):
def test_electronical_GAU(self):
client = Client()
create_electronical_ad_path = reverse_lazy('create_electronical_ad')
User.objects.create(username = 'user1', password = 'TESTuSER1234')
user = User.objects.get(username = 'user1')
client.force_login(user)
form = {'title':'title', 'price':123, 'location':20, 'tag':1,'description':'description'}
response = client.post(create_electronical_ad_path, form)
expected_url = reverse_lazy('electronical_detail', kwargs = {'pk':1})
self.assertRedirects(response, expected_url)
Пока этого нет
def test_viechle_GAU(self):
client = Client()
create_viechle_ad_path = reverse_lazy('create_viechle_ad')
User.objects.create(username = 'user1', password = 'TESTuSER1234')
user = User.objects.get(username = 'user1')
client.force_login(user)
form = {'title':'title', 'price':123, 'location':20, 'produced':2019, 'color':'color', 'color': 'red' ,'description':'description'}
response = client.post(create_viechle_ad_path, form)
expected_url = reverse_lazy('viechle_detail', kwargs = {'pk':1})
self.assertRedirects(response, expected_url)
Это ошибка
AssertionError: [] is not true : Response didn't redirect as expected: Response code was 200 (expected 302)