Skip to content

Commit 03731f1

Browse files
committed
Add e2e for deployment and daemonsets
1 parent cf5d796 commit 03731f1

File tree

1 file changed

+86
-2
lines changed

1 file changed

+86
-2
lines changed

kubernetes/e2e_test/test_client.py

Lines changed: 86 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@
2525
import unittest
2626
import urllib3
2727
import uuid
28+
import yaml
2829

2930
from kubernetes.client import api_client
3031
from kubernetes.client.apis import core_v1_api
32+
from kubernetes.client.apis import extensions_v1beta1_api
3133

3234

3335
def _is_k8s_running():
@@ -39,6 +41,26 @@ def _is_k8s_running():
3941

4042

4143
class TestClient(unittest.TestCase):
44+
@unittest.skipUnless(
45+
_is_k8s_running(), "Kubernetes is not available")
46+
def test_read_namespaces(self):
47+
client = api_client.ApiClient('http://127.0.0.1:8080/')
48+
api = core_v1_api.CoreV1Api(client)
49+
50+
expected_namespaces = ('default', 'kube-system')
51+
for ns in expected_namespaces:
52+
api.read_namespace(name=ns)
53+
54+
@unittest.skipUnless(
55+
_is_k8s_running(), "Kubernetes is not available")
56+
def test_read_services(self):
57+
client = api_client.ApiClient('http://127.0.0.1:8080/')
58+
api = core_v1_api.CoreV1Api(client)
59+
60+
expected_services = ('kubernetes',)
61+
for service in expected_services:
62+
api.read_namespaced_service(service, 'default')
63+
4264
@unittest.skipUnless(
4365
_is_k8s_running(), "Kubernetes is not available")
4466
def test_list_endpoints(self):
@@ -48,6 +70,35 @@ def test_list_endpoints(self):
4870
endpoints = api.list_endpoints_for_all_namespaces()
4971
self.assertTrue(len(endpoints.items) > 0)
5072

73+
@unittest.skipUnless(
74+
_is_k8s_running(), "Kubernetes is not available")
75+
def test_create_deployment(self):
76+
client = api_client.ApiClient('http://127.0.0.1:8080/')
77+
api = extensions_v1beta1_api.ExtensionsV1beta1Api(client)
78+
name = 'nginx-deployment-' + str(uuid.uuid4())
79+
deployment = '''apiVersion: extensions/v1beta1
80+
kind: Deployment
81+
metadata:
82+
name: %s
83+
spec:
84+
replicas: 3
85+
template:
86+
metadata:
87+
labels:
88+
app: nginx
89+
spec:
90+
containers:
91+
- name: nginx
92+
image: nginx:1.7.9
93+
ports:
94+
- containerPort: 80
95+
'''
96+
resp = api.create_namespaced_deployment(
97+
body=yaml.load(deployment % name),
98+
namespace="default")
99+
resp = api.read_namespaced_deployment(name, 'default')
100+
self.assertIsNotNone(resp)
101+
51102
@unittest.skipUnless(
52103
_is_k8s_running(), "Kubernetes is not available")
53104
def test_pod_apis(self):
@@ -153,7 +204,6 @@ def test_replication_controller_apis(self):
153204
resp = api.delete_namespaced_replication_controller(
154205
name=name, body={}, namespace='default')
155206

156-
157207
@unittest.skipUnless(
158208
_is_k8s_running(), "Kubernetes is not available")
159209
def test_configmap_apis(self):
@@ -201,4 +251,38 @@ def test_node_apis(self):
201251
for item in api.list_node().items:
202252
node = api.read_node(name=item.metadata.name)
203253
self.assertTrue(len(node.metadata.labels) > 0)
204-
self.assertTrue(isinstance(node.metadata.labels, dict))
254+
self.assertTrue(isinstance(node.metadata.labels, dict))
255+
256+
@unittest.skipUnless(
257+
_is_k8s_running(), "Kubernetes is not available")
258+
def test_create_daemonset(self):
259+
client = api_client.ApiClient('http://127.0.0.1:8080/')
260+
api = extensions_v1beta1_api.ExtensionsV1beta1Api(client)
261+
name = 'nginx-app-' + str(uuid.uuid4())
262+
daemonset = {
263+
'apiVersion': 'extensions/v1beta1',
264+
'kind': 'DaemonSet',
265+
'metadata': {
266+
'labels': {'app': 'nginx'},
267+
'name': '%s' % name,
268+
},
269+
'spec': {
270+
'template': {
271+
'metadata': {
272+
'labels': {'app': 'nginx'},
273+
'name': name},
274+
'spec': {
275+
'containers': [
276+
{'name': 'nginx-app',
277+
'image': 'nginx:1.10'},
278+
],
279+
},
280+
},
281+
'updateStrategy': {
282+
'type': 'RollingUpdate',
283+
},
284+
}
285+
}
286+
resp = api.create_namespaced_daemon_set('default', body=daemonset)
287+
resp = api.read_namespaced_daemon_set(name, 'default')
288+
self.assertIsNotNone(resp)

0 commit comments

Comments
 (0)