Existe algum mecanismo simples para substituir as configurações do Django para um teste de unidade? Tenho um gerente em um de meus modelos que retorna um número específico dos objetos mais recentes. O número de objetos que ele retorna é definido por uma configuração NUM_LATEST.
Isso tem o potencial de fazer meus testes falharem se alguém alterar a configuração. Como posso substituir as configurações setUp()
e, posteriormente, restaurá-las tearDown()
? Se isso não for possível, há alguma maneira de fazer o monkey patch do método ou simular as configurações?
EDIT: Aqui está meu código de gerente:
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]
O gerente usa settings.NEWS_LATEST_MAX
para fatiar o queryset. O getattr()
é usado simplesmente para fornecer um padrão caso a configuração não exista.