测试一个类是否从另一个继承

时间:2011-04-11 22:05:23

标签: python unit-testing

这个问题与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 个答案:

答案 0 :(得分:97)

使用issubclass(myclass, parentclass)

在你的情况下:

self.assertTrue( issubclass(QuizForm, forms.Form) )

答案 1 :(得分:5)

您只需使用issubclass

即可
self.assertTrue(issubclass(QuizForm, forms.Form))

答案 2 :(得分:5)

使用内置的issubclass功能。 e.g。

issubclass(QuizForm, forms.Form)

它会返回bool,因此您可以直接在self.assertTrue()

中使用它

答案 3 :(得分:3)

查看issubclass(subclass,baseclass)内置方法。它应该正是你所需要的。