Nate'in cevabına dayanarak bu var:
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
Kullanımı:
from myapp.management import mycommand
cmd_runner = make_test_wrapper_for(mycommand)
cmd_runner("foo", "bar")
Buradaki avantaj, ek seçenekler ve OptParse kullandıysanız, bu durumun sizin için çözülmesidir. Oldukça mükemmel değil - ve henüz çıktıları birleştirmiyor - ancak test veritabanını kullanacak. Daha sonra veritabanı efektlerini test edebilirsiniz.
Micheal Foords sahte modülünün kullanıldığından eminim ve ayrıca test süresince stdout'u yeniden kablolamak, bu teknikten biraz daha fazla yararlanabileceğiniz anlamına gelir - çıktıyı, çıkış koşullarını vb.