如何在Django中测试模型关系

时间:2014-10-09 10:42:27

标签: python django django-testing

在Django中,测试对象可以正确保存关系的最佳方法是什么?

这就是我所拥有的,但是我不能100%确定它是正确的方法。

class ModelCase(TestCase):

    def setUp(self):
        self.company = mommy.make(Company)
        noz.assert_true(isinstance(self.company, Company))
        self.campaign = mommy.make(Campaign)


    def test_assign_campaign_to_company(self):
        """
        Test if a campaign can be assigned to a company
        """
        self.campaign.company = self.company
        self.campaign.save()
        noz.assert_true(self.campaign.company.name)

这是否真的测试了实际情况,还是我应该做其他事情?

1 个答案:

答案 0 :(得分:2)

此断言不会查找数据库。它在内存中的对象上断言。

查询数据库的最佳用途:

(Campaign.objects
         .filter(
             pk=self.campaign.pk, 
             company=self.company)
         .exists())