UnitTest для Django Inline Formset
У меня есть набор форм с пользовательской логикой валидации:
forms.py
class MyFormSet(BaseInlineFormSet):
def clean(self):
super().clean()
forms = list(filter(lambda form: len(form.cleaned_data), self.forms))
if not forms or any(self.errors):
return
for form in forms:
...
И я использую этот пользовательский набор форм в моделях админ-сайта:
admin.py
class MyInline(admin.TabularInline):
formset = MyFormSet
model = ClientAgreement
class ClientAdmin(admin.ModelAdmin):
form = Client
inlines = [
MyInline
]
Итак, что я хочу сделать сейчас - протестировать мою пользовательскую чистую логику в модульном тесте. Внутри теста я создаю набор форм с:
formset = inlineformset_factory(Client, ClientAgreement, formset=MyInlineFormSet, fields='all')
После этого я создаю экземпляр с моим объектом:
object_formset = formset(instance=client1)
Теперь я могу видеть все предварительно заполненные тестовые данные внутри object_formset в соответствии с моделью ClientAdmin.
Но как я могу передать изменения в данные формы, чтобы проверить мою чистую логику? Или может есть другой путь для решения этой проблемы?