Existe-t-il un mécanisme simple pour remplacer les paramètres Django pour un test unitaire? J'ai un gestionnaire sur l'un de mes modèles qui renvoie un nombre spécifique des derniers objets. Le nombre d'objets qu'il renvoie est défini par un paramètre NUM_LATEST.
Cela a le potentiel de faire échouer mes tests si quelqu'un change le paramètre. Comment puis-je remplacer les paramètres setUp()
et les restaurer ultérieurement tearDown()
? Si ce n'est pas possible, y a-t-il un moyen pour monkey patcher la méthode ou me moquer des paramètres?
EDIT: Voici mon code de 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 découper l'ensemble de requêtes. Le getattr()
est simplement utilisé pour fournir une valeur par défaut si le paramètre n'existe pas.