Exemplo n.º 1
0
def test_delete_service(k8s_api_client_mock: K8SAPIClient):
    k8s_api_client_mock.delete_service(name='fake-name', namespace=MY_FAKE_NAMESPACE)

    k8s_api_client_mock.v1_api_client.delete_namespaced_service.\
        assert_called_once_with(name='fake-name',
                                namespace=MY_FAKE_NAMESPACE,
                                body=k8s_models.V1DeleteOptions())
Exemplo n.º 2
0
def test_delete_ingress(mocker: MockFixture, k8s_api_client_mock: K8SAPIClient):
    k8s_api_client_mock.delete_ingress(name=FAKE_OBJECT_NAME, namespace=MY_FAKE_NAMESPACE)

    k8s_api_client_mock.extensions_v1beta1_api_client.delete_namespaced_ingress.assert_called_once_with(
        name=FAKE_OBJECT_NAME,
        namespace=MY_FAKE_NAMESPACE,
        body=mocker.ANY
    )
Exemplo n.º 3
0
def test_get_deployment_raises_not_found_api_exception(mocker, k8s_api_client_mock: K8SAPIClient):
    mocker.patch.object(k8s_api_client_mock.apps_api_client, 'read_namespaced_deployment').side_effect = \
        ApiException(status=HTTPStatus.NOT_FOUND)

    deployment = k8s_api_client_mock.get_deployment(name='fake-name', namespace=MY_FAKE_NAMESPACE)

    assert deployment is None
Exemplo n.º 4
0
def test_get_pod_raises_not_found_api_exception(mocker: MockFixture, k8s_api_client_mock: K8SAPIClient):
    mocker.patch.object(k8s_api_client_mock.v1_api_client, 'list_namespaced_pod').side_effect = \
        ApiException(status=HTTPStatus.NOT_FOUND)

    pod = k8s_api_client_mock.get_pod(namespace=MY_FAKE_NAMESPACE, label_selector=FAKE_LABEL_SELECTOR)

    assert pod is None
Exemplo n.º 5
0
def k8s_api_client_mock(mocker) -> K8SAPIClient:
    mocker.patch('kubernetes.client.AppsV1Api')
    mocker.patch('kubernetes.client.ExtensionsV1beta1Api')
    mocker.patch('kubernetes.client.CoreV1Api')

    client = K8SAPIClient()

    return client
Exemplo n.º 6
0
def test_get_deployment(mocker, k8s_api_client_mock: K8SAPIClient):
    fake_deployment = k8s_models.V1Deployment(metadata=k8s_models.V1ObjectMeta(name='fake-deployment'))

    mocker.patch.object(k8s_api_client_mock.apps_api_client, 'read_namespaced_deployment').return_value = \
        fake_deployment

    deployment = k8s_api_client_mock.get_deployment(name='fake-name', namespace=MY_FAKE_NAMESPACE)

    assert deployment == fake_deployment
Exemplo n.º 7
0
def test_get_pod_finds_no_pod(mocker: MockFixture, k8s_api_client_mock: K8SAPIClient):
    fake_pods = []
    fake_pods_list = k8s_models.V1PodList(items=fake_pods)

    mocker.patch.object(k8s_api_client_mock.v1_api_client, 'list_namespaced_pod').return_value = fake_pods_list

    found_pod = k8s_api_client_mock.get_pod(namespace=MY_FAKE_NAMESPACE, label_selector=FAKE_LABEL_SELECTOR)

    assert found_pod is None
Exemplo n.º 8
0
def test_get_pod_finds_many_pods(mocker: MockFixture, k8s_api_client_mock: K8SAPIClient):
    fake_pod = k8s_models.V1Pod(metadata=k8s_models.V1ObjectMeta(name=FAKE_OBJECT_NAME))
    fake_second_pod = k8s_models.V1Pod(metadata=k8s_models.V1ObjectMeta(name=FAKE_OBJECT_NAME+'-2'))
    fake_pods = [fake_pod, fake_second_pod]
    fake_pods_list = k8s_models.V1PodList(items=fake_pods)

    mocker.patch.object(k8s_api_client_mock.v1_api_client, 'list_namespaced_pod').return_value = fake_pods_list

    found_pod = k8s_api_client_mock.get_pod(namespace=MY_FAKE_NAMESPACE, label_selector=FAKE_LABEL_SELECTOR)

    assert found_pod in (fake_pod, fake_second_pod)
Exemplo n.º 9
0
def test_list_deployments(mocker, k8s_api_client_mock: K8SAPIClient):
    fake_deployments = [k8s_models.V1Deployment(metadata=k8s_models.V1ObjectMeta(name='fake-deployment'))]
    fake_deployment_list = k8s_models.V1DeploymentList(items=fake_deployments)

    mocker.patch.object(k8s_api_client_mock.apps_api_client, 'list_namespaced_deployment').return_value = \
        fake_deployment_list

    deployments = k8s_api_client_mock.list_deployments(namespace=MY_FAKE_NAMESPACE)

    assert deployments == fake_deployments
    k8s_api_client_mock.apps_api_client.list_namespaced_deployment.assert_called_once_with(namespace=MY_FAKE_NAMESPACE,
                                                                                           label_selector=None)
Exemplo n.º 10
0
    def incluster_init(cls):
        config.load_incluster_config()

        nauta_config = NautaPlatformConfig.incluster_init()

        with open("/var/run/secrets/kubernetes.io/serviceaccount/namespace",
                  mode='r') as file:
            my_current_namespace = file.read()

        return cls(namespace=my_current_namespace,
                   api_client=K8SAPIClient(),
                   config=nauta_config)
Exemplo n.º 11
0
def test_list_ingresses(mocker: MockFixture, k8s_api_client_mock: K8SAPIClient):
    fake_ingresses = [k8s_models.V1beta1Ingress(metadata=k8s_models.V1ObjectMeta(name=FAKE_OBJECT_NAME)),
                      k8s_models.V1beta1Ingress(metadata=k8s_models.V1ObjectMeta(name=FAKE_OBJECT_NAME+'-2'))]
    fake_ingresses_list = k8s_models.V1beta1IngressList(items=fake_ingresses)

    mocker.patch.object(k8s_api_client_mock.extensions_v1beta1_api_client, 'list_namespaced_ingress').return_value = \
        fake_ingresses_list

    ingresses = k8s_api_client_mock.list_ingresses(name='fake-name',
                                                   namespace=MY_FAKE_NAMESPACE,
                                                   label_selector='key=value')

    assert ingresses == fake_ingresses
Exemplo n.º 12
0
def test_get_deployment_raises_other_api_exception(mocker, k8s_api_client_mock: K8SAPIClient):
    mocker.patch.object(k8s_api_client_mock.apps_api_client, 'read_namespaced_deployment').side_effect = \
        ApiException(status=HTTPStatus.INTERNAL_SERVER_ERROR)

    with raises(ApiException):
        k8s_api_client_mock.get_deployment(name='fake-name', namespace=MY_FAKE_NAMESPACE)
Exemplo n.º 13
0
def test_create_deployment(k8s_api_client_mock: K8SAPIClient):
    k8s_api_client_mock.create_deployment(namespace=MY_FAKE_NAMESPACE, body=k8s_models.V1Deployment())

    k8s_api_client_mock.apps_api_client.create_namespaced_deployment.\
        assert_called_once_with(namespace=MY_FAKE_NAMESPACE, body=k8s_models.V1Deployment())
Exemplo n.º 14
0
def test_get_pod_raises_other_api_exception(mocker: MockFixture, k8s_api_client_mock: K8SAPIClient):
    mocker.patch.object(k8s_api_client_mock.v1_api_client, 'list_namespaced_pod').side_effect = \
        ApiException(status=HTTPStatus.BAD_REQUEST)

    with raises(ApiException):
        k8s_api_client_mock.get_pod(namespace=MY_FAKE_NAMESPACE, label_selector=FAKE_LABEL_SELECTOR)
Exemplo n.º 15
0
def test_get_service(k8s_api_client_mock: K8SAPIClient):
    k8s_api_client_mock.get_service(name='fake-name', namespace=MY_FAKE_NAMESPACE)

    k8s_api_client_mock.v1_api_client.read_namespaced_service.assert_called_once_with(name='fake-name',
                                                                                      namespace=MY_FAKE_NAMESPACE)
Exemplo n.º 16
0
def test_create_service(k8s_api_client_mock: K8SAPIClient):
    k8s_api_client_mock.create_service(namespace=MY_FAKE_NAMESPACE, body=k8s_models.V1Service())

    k8s_api_client_mock.v1_api_client.create_namespaced_service.assert_called_once_with(namespace=MY_FAKE_NAMESPACE,
                                                                                        body=k8s_models.V1Service())