Django 测试表单集使用什么形式
Django Test what form a formset uses
如果我有这样的表格:
class MyForm(modelForm):
# Form stuff
还有一个表单集:
MyFormSet = modelformset_factory(
MyModel,
form=MyForm,
max_num=6,
validate_max=True,
)
有没有办法测试 form=MyForm
?
def test_formset(self):
formset = MyFormSet()
self.assertEqual(formset.max_num, 6)
self.assertTrue(formset.validate_max)
# Tried this but it didn't work
self.assertIsInstance(formset.form, MyForm)
在这种情况下,formset.form
将是 MyForm
class 的子 class,而不是它的实例,因此 assertIsInstance
将不起作用。您可以简单地使用以下方式检查它:
def test_formset(self):
formset = MyFormSet()
self.assertTrue(issubclass(formset.form, MyForm))
for formset_factory
并且当您不想提供 MyForm
的任何子 class 时,这也将起作用(因为 formset_factory
不会不要修改你的表单 class):
def test_formset(self):
formset = MyFormSet()
self.assertEquals(formset.form, MyForm)
如果我有这样的表格:
class MyForm(modelForm):
# Form stuff
还有一个表单集:
MyFormSet = modelformset_factory(
MyModel,
form=MyForm,
max_num=6,
validate_max=True,
)
有没有办法测试 form=MyForm
?
def test_formset(self):
formset = MyFormSet()
self.assertEqual(formset.max_num, 6)
self.assertTrue(formset.validate_max)
# Tried this but it didn't work
self.assertIsInstance(formset.form, MyForm)
在这种情况下,formset.form
将是 MyForm
class 的子 class,而不是它的实例,因此 assertIsInstance
将不起作用。您可以简单地使用以下方式检查它:
def test_formset(self):
formset = MyFormSet()
self.assertTrue(issubclass(formset.form, MyForm))
for formset_factory
并且当您不想提供 MyForm
的任何子 class 时,这也将起作用(因为 formset_factory
不会不要修改你的表单 class):
def test_formset(self):
formset = MyFormSet()
self.assertEquals(formset.form, MyForm)