Membangun dari jawaban Nate saya punya ini:
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
Pemakaian:
from myapp.management import mycommand
cmd_runner = make_test_wrapper_for(mycommand)
cmd_runner("foo", "bar")
Keuntungan di sini adalah bahwa jika Anda telah menggunakan opsi tambahan dan OptParse, ini akan memilah Anda. Itu tidak cukup sempurna - dan itu tidak memancarkan output - tetapi akan menggunakan database pengujian. Anda kemudian dapat menguji efek basis data.
Saya yakin penggunaan modul tiruan Micheal Foords dan juga pemasangan stdout selama durasi tes akan berarti Anda bisa mendapatkan lebih banyak dari teknik ini juga - menguji output, kondisi keluar dll.