У меня есть эти 3 строки кода:
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'
У меня есть get
def в mock_kubectl_good def, но он продолжает жаловаться на то, что его не нашли. Любые указатели о том, как издеваться над этой функцией? Я новичок в издевательствах в Python.