python-k8sclient/k8sclient/tests/test_k8sclient.py

53 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""
test_k8sclient
----------------------------------
Tests for `k8sclient` module. Deploy Kubernetes using:
http://kubernetes.io/docs/getting-started-guides/docker/
and then run this test.
"""
from testtools.testcase import unittest
import urllib3
from k8sclient.client import api_client
from k8sclient.client.apis import apiv_api
from k8sclient.tests import base
def _is_k8s_running():
try:
urllib3.PoolManager().request('GET', '127.0.0.1:8080')
return True
except urllib3.exceptions.HTTPError:
return False
class TestK8sclient(base.TestCase):
@unittest.skipUnless(
_is_k8s_running(), "Kubernetes is not available")
def test_list_nodes_and_endpoints(self):
client = api_client.ApiClient('http://127.0.0.1:8080/')
api = apiv_api.ApivApi(client)
pod = api.list_pod()
self.assertEquals(3, len(pod.items))
endpoints = api.list_endpoints()
self.assertEquals(1, len(endpoints.items))