Ответ 1
Используйте issubclass (myclass, parentclass).
В вашем случае:
self.assertTrue( issubclass(QuizForm, forms.Form) )
Этот вопрос более связан с Python, чем связанный с Django. Я хочу протестировать запись теста для этой функции, которую я использую, чтобы динамически получать форму 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)
Я хочу проверить, возвращает ли класс QuizForm наследуемый из forms.Form.
Что-то вроде:
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
. например.
issubclass(QuizForm, forms.Form)
Он возвращает bool
, поэтому вы можете использовать его непосредственно в self.assertTrue()
Проверьте issubclass(subclass,baseclass)
встроенный метод. Это должно быть именно то, что вам нужно.