我有以下三行代码:
namespace, kube_config = k8s.get_kube_creds()
kubectl = k8s.Kubectl(kube_config, namespace)
namespace_detail = kubectl.get('ns', namespace)
我正在为此编写单元测试
对于第1行,我有:
monkeypatch.setattr(k8s, "get_kube_creds", mock_get_kube_creds)
其中
def mock_get_kube_creds():
return "muffinz_namespace", "~/.kube/config"
对于第2行,我有:
monkeypatch.setattr(k8s, "Kubectl", mock_kubectl_good)
其中:
def mock_kubectl_good(*args, **kwargs):
return Kubectl_Good()
class Kubectl_Good(object):
def get(self, ns, namespace):
return {"metadata": {"labels" : {hipaa_compliant: True}}}
对于第3行,我尝试使用:
def mock_kubectl_get(self, ns, namespace):
ns = {"metadata": {"labels" : {hipaa_compliant: True}}}
return ns
monkeypatch.setattr(k8s.Kubectl, 'get', mock_kubectl_get)
但这一直在给:
AttributeError: <function mock_kubectl_good at 0x7f86a7cfade8> has no attribute 'get'
mock_kubectl_good定义中有get
定义,但它仍然不断抱怨找不到。关于如何模拟此功能的任何指针?我是python嘲笑的新手。