0

私はpythonとdjangoの初心者で、ここで何が間違っているのかわかりません。

私は Site オブジェクトを持っています:

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)
4

1 に答える 1

0

これはおそらく、テストが開発データベースとは別のデータベースをセットアップしてテストを実行するためです。プログラムまたはフィクスチャを使用して、テスト データベースにテスト データを配置する必要があります。

于 2012-05-18T23:38:03.270 に答える