2012-05-18 2 views
0

저는 파이썬과 장고에 대한 새내기입니다. 여기서 제가 잘못하고있는 것을 이해할 수 없습니다.tests.py에서 테스트가 실패하지만 파이썬 셸에서 성공합니다.

내가 사이트 개체가 있습니다

class Site (models.Model): 
    domain = models.CharField(max_length=30) 
    support_status = models.CharField(max_length=20, choices= SITE_SUPPORTED_STATUS, blank=False) 
    requests = models.IntegerField() 
    objects = SiteManager() 
    def __unicode__(self): 
     return u'%s %s' % (self.domain, self.support_status) 

그리고 콘솔에서 SiteManager 개체

class SiteManager(models.Manager): 
    def supported_site_counts(self): 
     i = self.filter(support_status__iexact="SUPPORTED").count() 
     return i 

을 방법 "supported_site_counts은()"잘 작동

>>(InteractiveConsole) 
>>> from bookmark.models import Site, SiteManager 
>>> Site.objects.supported_site_counts() 
>>>>2012-05-18 18:09:20,027 DEBUG (0.001) SELECT COUNT(*) FROM "bookmark_site" WHERE 
>>>>"bookmark_site"."support_status" LIKE SUPPORTED ESCAPE '\' ; args=(u'SUPPORTED',) 
>>>>2012-05-18 18:09:20,028 DEBUG Got 1 supported site 
>>>>1 

그러나 테스트 케이스에서 호출되면 카운트는 0

으로 반환됩니다.
class SiteManagerTest(unittest.TestCase): 
    def test_supported_site_counts(self): 
     self.x = False 
     self.count = Site.objects.supported_site_counts() 
     logging.debug(self.count) 

답변

0

테스트가에서 테스트를 실행하는 개발 데이터베이스를 별도의 데이터베이스를 설정 때문에 이것은 아마이다. 당신은 프로그래밍 방식 또는 fixtures를 사용하여 테스트 데이터베이스에 테스트 데이터를 입력해야합니다.

관련 문제