1. ホーム
  2. python

[解決済み] あるクラスが他のクラスから継承されているかどうかをテストする [重複] 。

2023-03-02 02:33:17

質問

この質問は、Django よりも Python に関連するものです。私は、設定したフィールドで動的に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) )