【发布时间】:2009-08-20 11:28:56
【问题描述】:
有人可以向我解释如何正确测试 Postgres DB 错误,尤其是 IntegrityError。例如我有下一个测试:
class TestSlugs(TestCase):
# This slug must be unique
b = BookPublisher(slug=self.duplicate_slug)
self.assertRaises(IntegrityError, b.save)
#check if there's only one BookPublisher
self.assertEquals(BookPublisher.objects.count(), 1)
这里它捕获了 IntegrityError 但随后所有操作都会失败,因为这就是 postgres 的工作方式,好的。我在文档中看到我可以使用 transaction.rollback() 但在哪里:在测试或 save() 方法中?
另外,我不喜欢手动编写回滚的想法,为什么 django 不能尝试保存,如果失败 - 给我 IntegrityError 让我继续工作。
我正在使用 django 1.1
【问题讨论】:
标签: django postgresql