नैट के उत्तर पर बिल्डिंग मेरे पास यह है:
def make_test_wrapper_for(command_module):
def _run_cmd_with(*args):
"""Run the possibly_add_alert command with the supplied arguments"""
cmd = command_module.Command()
(opts, args) = OptionParser(option_list=cmd.option_list).parse_args(list(args))
cmd.handle(*args, **vars(opts))
return _run_cmd_with
उपयोग:
from myapp.management import mycommand
cmd_runner = make_test_wrapper_for(mycommand)
cmd_runner("foo", "bar")
यहाँ लाभ यह है कि यदि आपने अतिरिक्त विकल्प और OptParse का उपयोग किया है, तो यह आपके लिए हल कर देगा। यह बिल्कुल सही नहीं है - और यह अभी तक आउटपुट को पाइप नहीं करता है - लेकिन यह परीक्षण डेटाबेस का उपयोग करेगा। फिर आप डेटाबेस प्रभाव के लिए परीक्षण कर सकते हैं।
मुझे यकीन है कि माइकल फर्ड्स मॉक मॉड्यूल का उपयोग कर रहा है और एक परीक्षण की अवधि के लिए स्टडआउट का पुन: उपयोग करने का मतलब है कि आप इस तकनीक से कुछ और भी प्राप्त कर सकते हैं - आउटपुट, निकास की स्थिति आदि का परीक्षण करें।