Est-il un simple mécanisme de remplacement des Django paramètres d'un test unitaire? J'ai un manager sur un de mes modèles qui renvoie un nombre précis de la dernière objets. Le nombre d'objets qu'elle renvoie est défini par un NUM_LATEST réglage.
Cela a le potentiel pour faire mes tests échouent si quelqu'un venait à changer le réglage. Comment puis-je remplacer les paramètres sur setUp()
et par la suite de les restaurer sur tearDown()
? Si ce n'est pas possible, est-il une manière que je peux monkey patch de la méthode ou de se moquer de l'paramètres?
EDIT: Voici mon code gestionnaire:
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]
Le gestionnaire utilise settings.NEWS_LATEST_MAX
pour la tranche du queryset. L' getattr()
est simplement utilisé pour fournir une valeur par défaut si le paramètre n'existe pas.