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

Этот вопрос более связан с 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 

Есть какой-либо способ сделать это?

4 Solutions collect form web for “Проверьте, если класс унаследован от другого”

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

  • Получение unittest Python приводит к методу tearDown ()
  • Проверяет ли pytest тестовую работу с помощью тестов на основе класса unittest?
  • Единичное тестирование с использованием Django в сельдерей 3.1.11?
  • Есть ли способ уловить исключения с PyCharm?
  • Django unittest и издевательский модуль запросов
  • Оберните открытый поток с помощью io.TextIOWrapper
  • Обнаружение Python unittest с подпапками
  • Python mock, django и запросы
  •  
    Interesting Posts for Van-Lav

    Преобразование из строки в boolean в Python?

    математический синтаксис, написанный на python

    Вычислить значение RGB для диапазона значений для создания карты тепла

    wget vs urlretrieve of python

    В чем разница между использованием декораторов и расширением подкласса по наследству?

    получить конкретную дату в шаблоне django Django

    Самый простой способ установки pygtk на Mac OS X

    Загрузка SQL-дампа перед запуском тестов Django

    Кумулятивное суммирование массива numpy по индексу

    Петля для каждого элемента в списке

    В Python есть ли сжатый способ сравнения, совпадают ли содержимое двух текстовых файлов?

    Измените количество тиков x-оси на морских участках

    Приложение PyQt: восстановить оригинальный внешний вид после изменения некоторых элементов QSS

    TypeError: только массивы length-1 могут быть преобразованы в скаляры Python, пока график показывает

    Python ctypes не загружает динамическую библиотеку в Mac OS X

    Python - лучший язык программирования в мире.