क्या यूनिट परीक्षण के लिए Django सेटिंग्स को ओवरराइड करने के लिए कोई आसान तंत्र है? मेरे पास मेरे मॉडल में से एक पर एक प्रबंधक है जो नवीनतम वस्तुओं की एक विशिष्ट संख्या देता है। इसे लौटने वाली वस्तुओं की संख्या को NUM_LATEST सेटिंग द्वारा परिभाषित किया जाता है।Django में विभिन्न सेटिंग्स के साथ यूनिट परीक्षण कैसे करें?
यदि कोई सेटिंग बदलना चाहता है तो मेरे परीक्षण विफल होने की संभावना है। मैं 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()
बस डिफॉल्ट प्रदान करने के लिए उपयोग किया जाता है, सेटिंग मौजूद नहीं है।
@ एंटो - क्या आप समझा सकते हैं कि बेहतर जवाब क्यों दें या प्रदान करें? – user
इस बीच में बदल गया; पूर्व स्वीकृत एक था [यह एक] (http://stackoverflow.com/a/913596/1030960);) – Anto