diff options
-rw-r--r-- | test/go/ns_inspect/app.go | 2 | ||||
-rw-r--r-- | test/test_go_isolation.py | 14 | ||||
-rw-r--r-- | test/unit/feature/isolation.py | 3 | ||||
-rw-r--r-- | test/unit/http.py | 20 |
4 files changed, 29 insertions, 10 deletions
diff --git a/test/go/ns_inspect/app.go b/test/go/ns_inspect/app.go index ebecbb00..aac2053e 100644 --- a/test/go/ns_inspect/app.go +++ b/test/go/ns_inspect/app.go @@ -70,6 +70,8 @@ func handler(w http.ResponseWriter, r *http.Request) { return } + w.Header().Add("Content-Type", "application/json") + w.Write(data) } diff --git a/test/test_go_isolation.py b/test/test_go_isolation.py index a937c7a5..767346fb 100644 --- a/test/test_go_isolation.py +++ b/test/test_go_isolation.py @@ -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']: diff --git a/test/unit/feature/isolation.py b/test/unit/feature/isolation.py index 6a429fb1..3f474993 100644 --- a/test/unit/feature/isolation.py +++ b/test/unit/feature/isolation.py @@ -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) diff --git a/test/unit/http.py b/test/unit/http.py index d59c7b56..839e91a2 100644 --- a/test/unit/http.py +++ b/test/unit/http.py @@ -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 |