用pytest-mock模拟Popen

时间:2018-04-21 15:16:28

标签: python unit-testing mocking pytest popen

我有一个包含以下行的Python模块

import subprocess

# command that write things to a file in a specific location
command = 'default_command'

def f():
    proc = subprocess.Popen(command, ..some_args..)
    status_code = proc.wait()
    error_code = proc.stderr.read()
    # some stuff with status_code, error_code and the content of the file

正常执行command将文件写入文件并返回退出代码。

我想用pytestpytest-mock为该函数编写一个单元测试,它必须模拟command我用Popen执行。我需要模拟该命令,因为它有一些不太可预测的输出。模拟必须做两件事:

  • 将一些可预测的输出写入文件
  • 返回特定退出代码和/或错误代码

如何实现这一目标?

即使您认为我采取了错误的做法,请告诉我。

0 个答案:

没有答案