Dựa trên câu trả lời của Nate tôi có điều này:
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
Sử dụng:
from myapp.management import mycommand
cmd_runner = make_test_wrapper_for(mycommand)
cmd_runner("foo", "bar")
Ưu điểm ở đây là nếu bạn đã sử dụng các tùy chọn bổ sung và OptPude, điều này sẽ sắp xếp cho bạn. Nó không hoàn hảo - và nó chưa xuất ra đường ống - nhưng nó sẽ sử dụng cơ sở dữ liệu thử nghiệm. Sau đó bạn có thể kiểm tra hiệu ứng cơ sở dữ liệu.
Tôi chắc chắn việc sử dụng mô-đun giả Micheal Foords và cũng sử dụng lại thiết bị xuất chuẩn trong thời gian thử nghiệm có nghĩa là bạn cũng có thể nhận được thêm một số kỹ thuật này - kiểm tra đầu ra, điều kiện thoát, v.v.