单元测试失败,但有以下异常:
def test_question_form(self):
question = Question(question_text='Dummy question', pub_date=timezone.now(
) + datetime.timedelta(days=1), allow_multiple_choices=True)
question_form = QuestionForm(
{'question_text': question.question_text, 'pub_date': question.pub_date, 'allow_multiple_choices': 'on' if question.allow_multiple_choices else 'off'})
self.assertTrue(question_form.is_valid())
self.assertEqual(question_form.save(commit=False), question)
AssertionError: <Question: Dummy question> != <Question: Dummy question>
在一些手动断言后,对象看起来是平等的,我做错了什么?
答案 0 :(得分:2)
由于您的实例未保存,form.save
返回的模型实例commit=False
和原始未保存对象永远不会相等(除非您将模型的__eq__
方法覆盖为处理这个):
来自docs:
定义相等方法使得具有相同的实例 主键值和相同的具体类被认为是相等的, 除了主键值为
None
的实例不等于除自身以外的任何内容