是否存在为单元测试覆盖 Django 设置的简单机制?在我的一个模型上有一个管理器,它返回特定数量的最新对象。它返回的对象数由 NUM _ LATEST 设置定义。
如果有人更改设置,这有可能使我的测试失败。如何覆盖 setUp()
上的设置并随后在 tearDown()
上恢复它们?如果这是不可能的,有没有办法我可以猴子修补的方法或模拟设置?
编辑: 这是我的经理代码:
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]
管理器使用 settings.NEWS_LATEST_MAX
对查询集进行切片。如果设置不存在,则 getattr()
仅用于提供默认设置。