Тестирование Django: отправка запроса с формой с параметрами - PullRequest
0 голосов
/ 11 марта 2019

Я хочу проверить, что мое представление перенаправляется после отправки правильных данных. Проблема в том, что я использую форму, которая нуждается в параметрах при инициализации. У меня есть метод, который строит мне ответ, который я позже использую в тестах. Этот метод работает для других моих представлений, но я не могу заставить его работать с представлениями, использующими формы, которым для их инициализации требуются параметры.

В моей форме у меня есть:

class SupportIssueForm(forms.ModelForm):
    class Meta:
        model = SupportIssue
        fields = ('user', 'property', 'title', 'text', 'is_urgent', 'is_service')

    def __init__(self, person_company, properties, is_property,  *args, **kwargs):
        super(SupportIssueForm, self).__init__(*args, **kwargs)
        self.fields['is_service'].widget.attrs['class'] = 'custom-control-input'
        ...

Мой метод генерации ответа, который я позже использую в своем тесте, выглядит следующим образом:

def generate_logged_in_user_post_response(self, data):
    request = self.factory.post(self.url, data={**self.form_class_args[0], **data})
    request.user = self.logged_in_user
    return new_support_issue_view(request)

Я тоже пробовал это:

def generate_logged_in_user_post_response(self, data):
        form = SupportIssueForm(**self.form_class_args[0], data=data)
        request = self.factory.post(self.url, form)
        request.user = self.logged_in_user
        return new_support_issue_view(request)

self.form_class_args[0] - это некоторый словарь, который я объявляю в другом месте:

    {
        "person_company": person_company, # <query object>
        "properties": properties, # <query object>
        'is_property': False
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...