Tests: added getjson() helper.

This commit is contained in:
Tiago Natel
2019-11-26 16:00:11 +00:00
parent 01103c5005
commit 224787bbac
4 changed files with 29 additions and 10 deletions

View File

@@ -70,6 +70,8 @@ func handler(w http.ResponseWriter, r *http.Request) {
return
}
w.Header().Add("Content-Type", "application/json")
w.Write(data)
}

View File

@@ -32,7 +32,7 @@ class TestGoIsolation(TestApplicationGo):
def test_isolation_values(self):
self.load('ns_inspect')
obj = self.isolation.parsejson(self.get()['body'])
obj = self.getjson()['body']
for ns, ns_value in self.available['features']['isolation'].items():
if ns.upper() in obj['NS']:
@@ -54,7 +54,7 @@ class TestGoIsolation(TestApplicationGo):
except:
group_id = grp.getgrnam('nobody').gr_gid
obj = self.isolation.parsejson(self.get()['body'])
obj = self.getjson()['body']
self.assertTrue(obj['UID'] != 0, 'uid not zero')
self.assertTrue(obj['GID'] != 0, 'gid not zero')
@@ -68,7 +68,7 @@ class TestGoIsolation(TestApplicationGo):
self.conf_isolation({"namespaces": {"credential": True}})
obj = self.isolation.parsejson(self.get()['body'])
obj = self.getjson()['body']
# default uid and gid maps current user to nobody
self.assertEqual(obj['UID'], user_id, 'uid nobody')
@@ -86,7 +86,7 @@ class TestGoIsolation(TestApplicationGo):
}
)
obj = self.isolation.parsejson(self.get()['body'])
obj = self.getjson()['body']
self.assertEqual(obj['UID'], user_id, 'uid match')
self.assertEqual(obj['GID'], group_id, 'gid match')
@@ -105,7 +105,7 @@ class TestGoIsolation(TestApplicationGo):
{"namespaces": {"mount": True, "credential": True}}
)
obj = self.isolation.parsejson(self.get()['body'])
obj = self.getjson()['body']
# all but user and mnt
allns = list(self.available['features']['isolation'].keys())
@@ -139,7 +139,7 @@ class TestGoIsolation(TestApplicationGo):
self.load('ns_inspect')
self.conf_isolation({"namespaces": {"pid": True, "credential": True}})
obj = self.isolation.parsejson(self.get()['body'])
obj = self.getjson()['body']
self.assertEqual(obj['PID'], 1, 'pid of container is 1')
@@ -165,7 +165,7 @@ class TestGoIsolation(TestApplicationGo):
self.conf_isolation({"namespaces": namespaces})
obj = self.isolation.parsejson(self.get()['body'])
obj = self.getjson()['body']
for ns in allns:
if ns.upper() in obj['NS']:

View File

@@ -82,6 +82,3 @@ class TestFeatureIsolation(TestApplicationProto):
data = int(os.readlink(nspath)[len(nstype) + 2 : -1])
return data
def parsejson(self, data):
return json.loads(data)

View File

@@ -122,6 +122,9 @@ class TestHTTP(TestUnit):
encoding
)
if 'json' in kwargs:
resp = self._parse_json(resp)
if 'start' not in kwargs:
sock.close()
return resp
@@ -230,6 +233,23 @@ class TestHTTP(TestUnit):
return body
def _parse_json(self, resp):
headers = resp['headers']
self.assertIn('Content-Type', headers, 'Content-Type header set')
self.assertEqual(
headers['Content-Type'],
'application/json',
'Content-Type header is application/json',
)
resp['body'] = json.loads(resp['body'])
return resp
def getjson(self, **kwargs):
return self.get(json=True, **kwargs)
def waitforsocket(self, port):
ret = False