我试图在模拟库中使用mock.patch
装饰器,但遇到了问题。我有一个init函数,在这里我调用了两个子进程。第一次是在self.setPackageQuota()
,第二次是在self.setBandwidthLimit()
class User():
def __init__(self, username, plan, domain, owner, diskQuota, diskUsed):
self.setUsername(username)
self.setPlan(plan)
self.setDomain(domain)
self.setOwner(owner)
self.setDiskQuota(diskQuota)
self.setDiskUsed(diskUsed)
self.setPackageQuota()
self.setBandwidthLimit()
self.setPackageQuota()
def setBandwidthLimit(self):
whmapicall = subprocess.Popen(["whmapi1" , "showbw", 'searchtype=user', 'search=^%s$' % self.username], stdout=subprocess.PIPE)
whmapireturn = whmapicall.stdout.read().split("\n")
for line in whmapireturn:
self.setPackageQuota()
def setPackageQuota(self):
whmapicall = subprocess.Popen(["whmapi1" , "getpkginfo", "pkg=%s" % self.plan], stdout=subprocess.PIPE)
whmapireturn = whmapicall.stdout.read().split("\n")
for line in whmapireturn:
我宁愿把whmapireturn
修补成别的东西。我也不想不运行subprocess.Popen
。我最初的想法是修补@mock.patch('subprocess.Popen', MockedClass)
和@mock.patch('whmapireturn', OtherMockedClass)
,但我似乎无法让它发挥作用。我该如何测试这样的初始化功能,同时修补在我的环境中无法拥有的东西?事先谢谢你的帮助
我从您的问题中了解到,您希望模拟修补文件中的Subprocess.Popen()调用。为此,您应该使用以下命令approach:- 你知道吗
假设您的文件名是要为其创建unittest的文件名。Therefore:- in unittest文件,你应该write:- 你知道吗
我希望你能找到答案
相关问题 更多 >
编程相关推荐