Тест Джанго для POST всегда возвращает 400 - PullRequest
0 голосов
/ 23 апреля 2019

Формируйте и просматривайте все отлично в браузере и добавляйте тесты, чтобы убедиться, что представление продолжает работать.

Проблема в том, что тест всегда возвращает 400

форма:

class DogForm(forms.Form):
    dog_name = forms.CharField(max_length=40)
    dog_type = forms.CharField(max_length=40)

просмотр:

class DogRequestView(LoginRequiredMixin, TemplateView):
    template_name='dog_request.html'
    def get(self, request):
        form = DogForm()
        return render(request, self.template_name, {'form': form})
    def post(self, request):
        form = DogForm(request.POST)
        process_status = 'initial'
        if form.is_valid():
            stuff()
        return render(request, self.template_name, {'form': form, 'status': process_status})

тест:

class LabTests(TestCase):
    def test_DogForm(self):
        form_data = {
            'dog_name': 'Test name',
            'dog_type': 'k9'
        }
        self.client.login(username="test@acme.com", password="test")
        response = self.client.post("/kenel/dog-catalog/dog-request", form_data)
        self.assertEqual(response.status_code, 200)

url:

url(r'^kenel/dog-catalog/dog-request$', dog_catalog.DogRequestView.as_view()),

тестовый вывод:

----------------------------------------------------------------------
Traceback (most recent call last):
  File "/workspace/NSPF-171805/nsp-dev-portal/cloudlab/tests/test_forms.py", line 32, in test_DogForm
    self.assertEqual(response.status_code, 200)
AssertionError: 400 != 200

----------------------------------------------------------------------

1 Ответ

0 голосов
/ 23 апреля 2019

Вы забыли добавить «данные» в свой пост.

response = self.client.post("/kenel/dog-catalog/dog-request", data=form_data)
...