SORU
27 Mayıs 2009, ÇARŞAMBA


Nasıl Django farklı ayarlarla test Ünitesi için?

Birim testi için Django ayarları geçersiz kılmak için basit bir mekanizma var mı? En son nesnelerin belirli bir sayı döndüren modellerimi bir Müdürü var. Döner nesnelerin sayısı NUM_LATEST ayarı ile tanımlanır.

Eğer birisi bu ayarı değiştirmek isterseniz, testler başarısız yapma potansiyeline sahiptir. Nasıl setUp() ayarları geçersiz kılar ve sonradan tearDown() onları geri alabilir miyim? Eğer bu mümkün değil ise bile, bir şekilde ben maymun yama yöntemi veya ayarları alay var?

DÜZENLEME:Burada Müdür benim kod:

class LatestManager(models.Manager):
    """
    Returns a specific number of the most recent public Articles as defined by 
    the NEWS_LATEST_MAX setting.
    """
    def get_query_set(self):
    	num_latest = getattr(settings, 'NEWS_NUM_LATEST', 10)
    	return super(LatestManager, self).get_query_set().filter(is_public=True)[:num_latest]

Yönetici queryset dilim settings.NEWS_LATEST_MAX kullanır. getattr() sadece ayarı bulunmamalıdır varsayılan sağlamak için kullanılır.

CEVAP
20 HAZİRAN 2011, PAZARTESİ


1.4, Django beri testler sırasında ayarları geçersiz kılmak için yollar: https://docs.djangoproject.com/en/1.6/topics/testing/tools/#overriding-settings

Deneme durumu kendi kendine olacak.ayarları içerik yöneticisi ve aynı zamanda bir test yöntemi ya da tüm test çalışmasına bir alt sınıf ya da uygulanabilecek @override_settings dekoratör olacak.

Bu özellikler henüz Django 1.3 yok.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ayite Atiwoto (superjiffrey)

    Ayite Atiwot

    29 EYLÜL 2010
  • efaustus9

    efaustus9

    16 HAZİRAN 2006
  • vgeller1

    vgeller1

    22 Kasım 2009