2014-10-09 4 views
0

Django에서 객체가 관계를 올바르게 저장할 수 있는지 테스트하는 가장 좋은 방법은 무엇입니까?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) 

실제 상태를 테스트합니까, 아니면 다른 작업을해야합니까?

답변

2

이 어설 션은 데이터베이스를 조회하지 않습니다. 그것은 메모리에있는 객체를 선언합니다. __ 당신이 self.campaign .__ 클래스를 설명 할 수있는,

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

멋진 부분을 객체 :

데이터베이스 최대한 활용을 조회하려면.? – Prometheus

+0

당신이 가져온 것이고 당신에게 적합하다면'Campaign.objects' 만 사용하십시오. 매니저를 얻는 것뿐입니다. –

+0

큰 감사합니다! – Prometheus