23
23
"""
24
24
25
25
import unittest
26
- import urllib3
27
26
import uuid
28
27
import yaml
29
28
30
29
from kubernetes .client import api_client
31
30
from kubernetes .client .apis import core_v1_api
32
- from kubernetes .client .apis import extensions_v1beta1_api
33
-
34
-
35
- def _is_k8s_running ():
36
- try :
37
- urllib3 .PoolManager ().request ('GET' , '127.0.0.1:8080' )
38
- return True
39
- except urllib3 .exceptions .HTTPError :
40
- return False
31
+ from kubernetes .e2e_test import base
41
32
42
33
43
34
class TestClient (unittest .TestCase ):
44
35
@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
-
64
- @unittest .skipUnless (
65
- _is_k8s_running (), "Kubernetes is not available" )
66
- def test_list_endpoints (self ):
67
- client = api_client .ApiClient ('http://127.0.0.1:8080/' )
68
- api = core_v1_api .CoreV1Api (client )
69
-
70
- endpoints = api .list_endpoints_for_all_namespaces ()
71
- self .assertTrue (len (endpoints .items ) > 0 )
72
-
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
-
102
- @unittest .skipUnless (
103
- _is_k8s_running (), "Kubernetes is not available" )
36
+ base ._is_k8s_running (), "Kubernetes is not available" )
104
37
def test_pod_apis (self ):
105
38
client = api_client .ApiClient ('http://127.0.0.1:8080/' )
106
39
api = core_v1_api .CoreV1Api (client )
@@ -129,7 +62,7 @@ def test_pod_apis(self):
129
62
namespace = 'default' )
130
63
131
64
@unittest .skipUnless (
132
- _is_k8s_running (), "Kubernetes is not available" )
65
+ base . _is_k8s_running (), "Kubernetes is not available" )
133
66
def test_service_apis (self ):
134
67
client = api_client .ApiClient ('http://127.0.0.1:8080/' )
135
68
api = core_v1_api .CoreV1Api (client )
@@ -170,7 +103,7 @@ def test_service_apis(self):
170
103
namespace = 'default' )
171
104
172
105
@unittest .skipUnless (
173
- _is_k8s_running (), "Kubernetes is not available" )
106
+ base . _is_k8s_running (), "Kubernetes is not available" )
174
107
def test_replication_controller_apis (self ):
175
108
client = api_client .ApiClient ('http://127.0.0.1:8080/' )
176
109
api = core_v1_api .CoreV1Api (client )
@@ -205,7 +138,7 @@ def test_replication_controller_apis(self):
205
138
name = name , body = {}, namespace = 'default' )
206
139
207
140
@unittest .skipUnless (
208
- _is_k8s_running (), "Kubernetes is not available" )
141
+ base . _is_k8s_running (), "Kubernetes is not available" )
209
142
def test_configmap_apis (self ):
210
143
client = api_client .ApiClient ('http://127.0.0.1:8080/' )
211
144
api = core_v1_api .CoreV1Api (client )
@@ -243,46 +176,12 @@ def test_configmap_apis(self):
243
176
self .assertEqual ([], resp .items )
244
177
245
178
@unittest .skipUnless (
246
- _is_k8s_running (), "Kubernetes is not available" )
179
+ base . _is_k8s_running (), "Kubernetes is not available" )
247
180
def test_node_apis (self ):
248
181
client = api_client .ApiClient ('http://127.0.0.1:8080/' )
249
182
api = core_v1_api .CoreV1Api (client )
250
183
251
184
for item in api .list_node ().items :
252
185
node = api .read_node (name = item .metadata .name )
253
186
self .assertTrue (len (node .metadata .labels ) > 0 )
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 )
187
+ self .assertTrue (isinstance (node .metadata .labels , dict ))
0 commit comments