Bir birim testi için Django ayarlarını geçersiz kılmak için herhangi bir basit mekanizma var mı? Modellerimden birinde belirli sayıda en son nesneyi döndüren bir yöneticim var. Döndürdüğü nesnelerin sayısı NUM_LATEST ayarı ile tanımlanır.
Birisinin ayarı değiştirmesi durumunda bu, testlerimin başarısız olmasına neden olabilir. Ayarları üzerindeki ayarları nasıl geçersiz kılabilir setUp()
ve daha sonra nasıl geri yükleyebilirim tearDown()
? Bu mümkün değilse, yöntemi yamalamanın veya ayarlarla dalga geçmenin bir yolu var mı?
DÜZENLEME: İşte yönetici kodum:
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 settings.NEWS_LATEST_MAX
, sorgu kümesini dilimlemek için kullanır . getattr()
Basitçe ayarı var olmamalıdır bir varsayılan sağlamak için kullanılır.