TypeError при тестировании программы проверки ответов

Я пишу тест для моей "программы проверки ответов", поэтому я создал тестовый вопрос и хочу проверить, работает ли программа проверки результатов, давая правильный ответ (поэтому тест должен пройти).

У меня возникли проблемы с ошибкой, которую я получил. Я знаю, что код не очень хороший, но я новичок в этой области. Мне кажется, что я что-то не так понял в логике. Может ли кто-нибудь помочь? :)

Ошибка:

correct = QuestionMultipleChoice.correct_answer()
      TypeError: 'property' object is not callable

Тест (последние строки неправильные, я знаю):

@when(u'I give an answer to a Multiple choice question')
def save_object(context):
    lab1 = Lab.objects.create(lab_name="testlab", pub_date=datetime.now(), lab_theory="test theory")
    question1 = QuestionMultipleChoice.objects.create(lab=lab1, question='This is a test question', option1='1', option2='2', option3='3', option4='4', answer=1)        

@then(u'I should get true if answer is correct')
def should_have_only_one_object(self):
    given = 1
    correct = QuestionMultipleChoice.correct_answer()
    QuestionMultipleChoice.check_answer(correct, given)
    assert 1 == Lab.objects.count()

Models.py

class QuestionMultipleChoice(models.Model):
    lab = models.ForeignKey(Lab, on_delete=models.CASCADE)
    type = QuestionType.multiplechoice
    question = models.CharField(max_length=200,null=True)
    option1 = models.CharField(max_length=200,null=True)
    option2 = models.CharField(max_length=200,null=True)
    option3 = models.CharField(max_length=200,null=True)
    option4 = models.CharField(max_length=200,null=True)
    answer = models.IntegerField(max_length=200,null=True)
    
    def __str__(self):
        return self.question

    @property
    def html_name(self):
        return "q_mc_{}".format(self.pk)

    @property
    def correct_answer(self):
        correct_answer_number = int(self.answer)
        correct_answer = getattr(self, "option{}".format(correct_answer_number))
        return correct_answer

    def check_answer(self, given):
        return self.correct_answer == given

Вам просто нужно убрать скобку после correct_answer, так как это свойство, а не метод.

Попытка:

@then(u'I should get true if answer is correct')
def should_have_only_one_object(self):
    given = 1
    correct = QuestionMultipleChoice.correct_answer
    QuestionMultipleChoice.check_answer(correct, given)
    assert 1 == Lab.objects.count()
Вернуться на верх