Проверьте, если класс унаследован от другого

Этот вопрос более связан с 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) . Это должно быть именно то, что вам нужно.