testing一个类是否从另一个类inheritance
这个问题比Django相关的Python更多。 我想testing写这个函数的testing,我正在使用我设置的字段dynamic获取Django表单。
def quiz_form_factory(question): properties = { 'question': forms.IntegerField(widget=forms.HiddenInput, initial=question.id), 'answers': forms.ModelChoiceField(queryset=question.answers_set) } return type('QuizForm', (forms.Form,), properties)
我想testing一下,QuizForm类返回是从forms.Forminheritance的。
就像是:
self.assertTrue(QuizForm isinheritedfrom forms.Form) # I know this does not exist
有没有办法做到这一点?
使用issubclass(myclass,parentclass) 。
在你的情况下:
self.assertTrue( issubclass(QuizForm, forms.Form) )
所有你需要做的是使用issubclass
:
self.assertTrue(issubclass(QuizForm, forms.Form))
使用内置的issubclass
function。 例如
issubclass(QuizForm, forms.Form)
它返回一个bool
所以你可以直接在self.assertTrue()
使用它
查看内置方法的issubclass(subclass,baseclass)
。 它应该正是你所需要的。