3 Authors: Baohua Yang@IBM, Denghui Huang@IBM
10 class TestModule(object):
12 Basic module class for test restful APIS.
13 Support the standard Create, Read, Update, Delete (CRUD) actions.
16 def __init__(self, restSubContext, user=DEFAULT_USER, password=DEFAULT_PWD, container=DEFAULT_CONTAINER,
17 contentType='json', prefix=DEFAULT_PREFIX):
18 self.restSubContext = restSubContext
19 self.container = container
21 self.password = password
22 self.contentType = contentType
25 def get_entries(self, suffix=None, key=None):
27 Get the existed entries in the service.
29 if isinstance(suffix, list) and key:
33 result[key].extend(self.get_entries(s).get(key))
35 elif isinstance(suffix, str):
36 return self.read(suffix)
42 def add_entry(self, suffix, name, body):
44 Add entry to the service.
46 self.update(suffix + '/' + name, body)
48 def remove_entry(self, suffix, name):
50 Remove entry from the service.
52 self.delete(suffix + '/' + name)
54 def test_add_remove_operations(self, suffix_entries, suffix_entry, name, body, key):
57 self.add_entry(suffix_entry, name, body)
58 r = self.get_entries(suffix_entries, key)
61 result.append(body in v if v else False)
62 #Remove the added entry
64 self.remove_entry(suffix_entry, name)
65 r = self.get_entries(suffix_entries, key)
67 result.append(body not in v if v else True)
68 return result == [True, True]
70 def create(self, suffix, body=None):
72 POST to given suffix url.
75 url = self.prefix + self.restSubContext
77 url += '/' + self.container
80 return do_post_request(url, self.contentType, body, self.user, self.password)
82 def read(self, suffix=None):
84 GET from given suffix url.
86 url = self.prefix + self.restSubContext
88 url += '/' + self.container
91 return do_get_request_with_response_content(url, self.contentType, self.user, self.password)
93 def update(self, suffix, body=None):
95 PUT to given suffix url.
97 url = self.prefix + self.restSubContext
99 url += '/' + self.container
102 return do_put_request(url, self.contentType, body, self.user, self.password)
104 def delete(self, suffix):
106 DELETE to given suffix url.
109 url = self.prefix + self.restSubContext
111 url += '/' + self.container
114 return do_delete_request(url, self.user, self.password)