Revision c4644612 astakosclient/astakosclient/tests.py
b/astakosclient/astakosclient/tests.py | ||
---|---|---|
108 | 108 |
|
109 | 109 |
def _request_ok(conn, method, url, **kwargs): |
110 | 110 |
"""This request behaves like original Astakos does""" |
111 |
if url[0:16] == "/im/authenticate":
|
|
111 |
if url.startswith("/im/authenticate"):
|
|
112 | 112 |
return _req_authenticate(conn, method, url, **kwargs) |
113 |
elif url[0:14] == "/user_catalogs":
|
|
113 |
elif url.startswith("/user_catalogs"):
|
|
114 | 114 |
return _req_catalogs(conn, method, url, **kwargs) |
115 |
elif url.startswith("/astakos/api/resources"): |
|
116 |
return _req_resources(conn, method, url, **kwargs) |
|
115 | 117 |
else: |
116 | 118 |
return _request_status_404(conn, method, url, **kwargs) |
117 | 119 |
|
118 | 120 |
|
119 | 121 |
def _req_authenticate(conn, method, url, **kwargs): |
120 | 122 |
"""Check if user exists and return his profile""" |
121 |
global user_1, user_2 |
|
123 |
global user_1, user_2, token_1, token_2
|
|
122 | 124 |
|
123 | 125 |
# Check input |
124 | 126 |
if conn.__class__.__name__ != "HTTPSConnection": |
125 | 127 |
return _request_status_302(conn, method, url, **kwargs) |
126 |
|
|
127 | 128 |
if method != "GET": |
128 | 129 |
return _request_status_400(conn, method, url, **kwargs) |
129 |
|
|
130 | 130 |
token = kwargs['headers']['X-Auth-Token'] |
131 | 131 |
if token == token_1: |
132 | 132 |
user = dict(user_1) |
... | ... | |
150 | 150 |
# Check input |
151 | 151 |
if conn.__class__.__name__ != "HTTPSConnection": |
152 | 152 |
return _request_status_302(conn, method, url, **kwargs) |
153 |
|
|
154 | 153 |
if method != "POST": |
155 | 154 |
return _request_status_400(conn, method, url, **kwargs) |
156 |
|
|
157 | 155 |
token = kwargs['headers']['X-Auth-Token'] |
158 | 156 |
if token != token_1 and token != token_2: |
159 | 157 |
return _request_status_401(conn, method, url, **kwargs) |
... | ... | |
183 | 181 |
return ("", simplejson.dumps(return_catalog), 200) |
184 | 182 |
|
185 | 183 |
|
184 |
def _req_resources(conn, method, url, **kwargs): |
|
185 |
"""Return quota resources""" |
|
186 |
global resources |
|
187 |
|
|
188 |
# Check input |
|
189 |
if conn.__class__.__name__ != "HTTPSConnection": |
|
190 |
return _request_status_302(conn, method, url, **kwargs) |
|
191 |
if method != "GET": |
|
192 |
return _request_status_400(conn, method, url, **kwargs) |
|
193 |
|
|
194 |
# Return |
|
195 |
return ("", simplejson.dumps(resources), 200) |
|
196 |
|
|
197 |
|
|
186 | 198 |
# ---------------------------- |
187 | 199 |
# Mock the actual _doRequest |
188 | 200 |
def _mock_request(new_requests): |
... | ... | |
266 | 278 |
"display_name": "Storage Space", |
267 | 279 |
"name": "pithos+.diskspace"}]} |
268 | 280 |
|
281 |
resources = { |
|
282 |
"cyclades.vm": { |
|
283 |
"unit": None, |
|
284 |
"description": "Number of virtual machines", |
|
285 |
"service": "cyclades"}, |
|
286 |
"cyclades.ram": { |
|
287 |
"unit": "bytes", |
|
288 |
"description": "Virtual machine memory", |
|
289 |
"service": "cyclades"}} |
|
290 |
|
|
269 | 291 |
|
270 | 292 |
# -------------------------------------------------------------------- |
271 | 293 |
# The actual tests |
... | ... | |
660 | 682 |
self.fail("Should have raised NoUUID exception") |
661 | 683 |
|
662 | 684 |
|
685 |
class TestResources(unittest.TestCase): |
|
686 |
"""Test cases for function get_resources""" |
|
687 |
|
|
688 |
# ---------------------------------- |
|
689 |
# Test function call of get_resources |
|
690 |
def test_get_resources(self): |
|
691 |
global resources |
|
692 |
_mock_request([_request_offline, _request_ok]) |
|
693 |
try: |
|
694 |
client = AstakosClient("https://example.com", retry=1) |
|
695 |
result = client.get_resources() |
|
696 |
except Exception as err: |
|
697 |
self.fail("Shouldn't raise Exception %s" % err) |
|
698 |
self.assertEqual(resources, result) |
|
699 |
|
|
700 |
|
|
663 | 701 |
# ---------------------------- |
664 | 702 |
# Run tests |
665 | 703 |
if __name__ == "__main__": |
Also available in: Unified diff