Esiste un meccanismo semplice per sovrascrivere le impostazioni Django per uno unit test? Ho un manager su uno dei miei modelli che restituisce un numero specifico di oggetti più recenti. Il numero di oggetti restituiti è definito da un'impostazione NUM_LATEST.
Questo ha il potenziale per far fallire i miei test se qualcuno dovesse cambiare l'impostazione. Come posso sovrascrivere le impostazioni setUp()
e successivamente ripristinarle tearDown()
? Se ciò non è possibile, c'è un modo per correggere il metodo o deridere le impostazioni?
EDIT: ecco il mio codice manager:
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]
Il gestore utilizza settings.NEWS_LATEST_MAX
per suddividere il set di query. Il getattr()
è semplicemente utilizzato per fornire un default deve l'impostazione non esiste.