क्या यूनिट परीक्षण के लिए 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()
बस एक डिफ़ॉल्ट सेटिंग मौजूद नहीं होना चाहिए प्रदान करने के लिए प्रयोग किया जाता है।