我想为我的函数编写测试,但不想执行其中的特定语句。我正在尝试模拟,但失败。任何建议都会有帮助。我正在使用pytest mock进行模拟
def listDataSetZOWE():
"""To list out all datasets in system"""
try:
process = Popen([zowe_path, 'zos-files','list','data-set','XYZ*'], stdout=PIPE, stderr=PIPE, universal_newlines=True)
stdout, stderr = process.communicate()
print(stdout)
process.kill()
except Exception as e:
print(e)
stderr=e
return stderr
我不希望下面两行在测试时被执行
process = Popen([zowe_path, 'zos-files','list','data-set','XYZ*'], stdout=PIPE, stderr=PIPE, universal_newlines=True)
stdout, stderr = process.communicate()
我的测试:
def test_listDataSetZOWE(mocker):
mocker.patch("process = Popen([zowe_path, 'zos-files','list','data-set','MACK00*'], stdout=PIPE, stderr=PIPE, universal_newlines=True)","datasetobj")
mocker.patch("stdout, stderr = process.communicate()","stderr")
zowe.listDataSetZOWE()
其失败原因如下:
TypeError: Need a valid target to patch. You supplied: "process = Popen([zowe_path, 'zos-files','list','data-set','MACK00*'], stdout=PIPE, stderr=PIPE, universal_newlines=True)"
目前没有回答
相关问题 更多 >
编程相关推荐