root / astakosclient / astakosclient / tests.py @ 0d069390
History | View | Annotate | Download (40.8 kB)
1 | 57ba2dfc | Ilias Tsitsimpis | #!/usr/bin/env python
|
---|---|---|---|
2 | 57ba2dfc | Ilias Tsitsimpis | #
|
3 | 57ba2dfc | Ilias Tsitsimpis | # Copyright (C) 2012, 2013 GRNET S.A. All rights reserved.
|
4 | 57ba2dfc | Ilias Tsitsimpis | #
|
5 | 57ba2dfc | Ilias Tsitsimpis | # Redistribution and use in source and binary forms, with or
|
6 | 57ba2dfc | Ilias Tsitsimpis | # without modification, are permitted provided that the following
|
7 | 57ba2dfc | Ilias Tsitsimpis | # conditions are met:
|
8 | 57ba2dfc | Ilias Tsitsimpis | #
|
9 | 57ba2dfc | Ilias Tsitsimpis | # 1. Redistributions of source code must retain the above
|
10 | 57ba2dfc | Ilias Tsitsimpis | # copyright notice, this list of conditions and the following
|
11 | 57ba2dfc | Ilias Tsitsimpis | # disclaimer.
|
12 | 57ba2dfc | Ilias Tsitsimpis | #
|
13 | 57ba2dfc | Ilias Tsitsimpis | # 2. Redistributions in binary form must reproduce the above
|
14 | 57ba2dfc | Ilias Tsitsimpis | # copyright notice, this list of conditions and the following
|
15 | 57ba2dfc | Ilias Tsitsimpis | # disclaimer in the documentation and/or other materials
|
16 | 57ba2dfc | Ilias Tsitsimpis | # provided with the distribution.
|
17 | 57ba2dfc | Ilias Tsitsimpis | #
|
18 | 57ba2dfc | Ilias Tsitsimpis | # THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
|
19 | 57ba2dfc | Ilias Tsitsimpis | # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
20 | 57ba2dfc | Ilias Tsitsimpis | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
21 | 57ba2dfc | Ilias Tsitsimpis | # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
|
22 | 57ba2dfc | Ilias Tsitsimpis | # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
23 | 57ba2dfc | Ilias Tsitsimpis | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
24 | 57ba2dfc | Ilias Tsitsimpis | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
|
25 | 57ba2dfc | Ilias Tsitsimpis | # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
26 | 57ba2dfc | Ilias Tsitsimpis | # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
27 | 57ba2dfc | Ilias Tsitsimpis | # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
28 | 57ba2dfc | Ilias Tsitsimpis | # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
29 | 57ba2dfc | Ilias Tsitsimpis | # POSSIBILITY OF SUCH DAMAGE.
|
30 | 57ba2dfc | Ilias Tsitsimpis | #
|
31 | 57ba2dfc | Ilias Tsitsimpis | # The views and conclusions contained in the software and
|
32 | 57ba2dfc | Ilias Tsitsimpis | # documentation are those of the authors and should not be
|
33 | 57ba2dfc | Ilias Tsitsimpis | # interpreted as representing official policies, either expressed
|
34 | 57ba2dfc | Ilias Tsitsimpis | # or implied, of GRNET S.A.
|
35 | 57ba2dfc | Ilias Tsitsimpis | |
36 | 57ba2dfc | Ilias Tsitsimpis | """Unit Tests for the astakos-client module
|
37 | 57ba2dfc | Ilias Tsitsimpis |
|
38 | 57ba2dfc | Ilias Tsitsimpis | Provides unit tests for the code implementing
|
39 | 57ba2dfc | Ilias Tsitsimpis | the astakos client library
|
40 | 57ba2dfc | Ilias Tsitsimpis |
|
41 | 57ba2dfc | Ilias Tsitsimpis | """
|
42 | 57ba2dfc | Ilias Tsitsimpis | |
43 | b173906e | Ilias Tsitsimpis | import re |
44 | bc56a641 | Ilias Tsitsimpis | import sys |
45 | 57ba2dfc | Ilias Tsitsimpis | import socket |
46 | 454a1ad4 | Ilias Tsitsimpis | import simplejson |
47 | 57ba2dfc | Ilias Tsitsimpis | |
48 | 57ba2dfc | Ilias Tsitsimpis | import astakosclient |
49 | f93cc364 | Ilias Tsitsimpis | from astakosclient import AstakosClient |
50 | f93cc364 | Ilias Tsitsimpis | from astakosclient.errors import \ |
51 | 2377e7c2 | Ilias Tsitsimpis | AstakosClientException, Unauthorized, BadRequest, NotFound, \ |
52 | fd420756 | Ilias Tsitsimpis | NoUserName, NoUUID, BadValue, QuotaLimit |
53 | 57ba2dfc | Ilias Tsitsimpis | |
54 | 57ba2dfc | Ilias Tsitsimpis | # Use backported unittest functionality if Python < 2.7
|
55 | bc56a641 | Ilias Tsitsimpis | try:
|
56 | bc56a641 | Ilias Tsitsimpis | import unittest2 as unittest |
57 | bc56a641 | Ilias Tsitsimpis | except ImportError: |
58 | bc56a641 | Ilias Tsitsimpis | if sys.version_info < (2, 7): |
59 | bc56a641 | Ilias Tsitsimpis | raise Exception("The unittest2 package is required for Python < 2.7") |
60 | bc56a641 | Ilias Tsitsimpis | import unittest |
61 | 57ba2dfc | Ilias Tsitsimpis | |
62 | 57ba2dfc | Ilias Tsitsimpis | |
63 | 57ba2dfc | Ilias Tsitsimpis | # --------------------------------------------------------------------
|
64 | 57ba2dfc | Ilias Tsitsimpis | # Helper functions
|
65 | 57ba2dfc | Ilias Tsitsimpis | |
66 | 57ba2dfc | Ilias Tsitsimpis | # ----------------------------
|
67 | 57ba2dfc | Ilias Tsitsimpis | # This functions will be used as mocked requests
|
68 | 794c94e6 | Ilias Tsitsimpis | def _request_offline(conn, method, url, **kwargs): |
69 | 57ba2dfc | Ilias Tsitsimpis | """This request behaves as we were offline"""
|
70 | 57ba2dfc | Ilias Tsitsimpis | raise socket.gaierror
|
71 | 57ba2dfc | Ilias Tsitsimpis | |
72 | 57ba2dfc | Ilias Tsitsimpis | |
73 | 794c94e6 | Ilias Tsitsimpis | def _request_status_302(conn, method, url, **kwargs): |
74 | 57ba2dfc | Ilias Tsitsimpis | """This request returns 302"""
|
75 | 21190887 | Ilias Tsitsimpis | message = "FOUND"
|
76 | 57ba2dfc | Ilias Tsitsimpis | status = 302
|
77 | 57ba2dfc | Ilias Tsitsimpis | data = '<html>\r\n<head><title>302 Found</title></head>\r\n' \
|
78 | 57ba2dfc | Ilias Tsitsimpis | '<body bgcolor="white">\r\n<center><h1>302 Found</h1></center>\r\n' \
|
79 | 57ba2dfc | Ilias Tsitsimpis | '<hr><center>nginx/0.7.67</center>\r\n</body>\r\n</html>\r\n'
|
80 | 21190887 | Ilias Tsitsimpis | return (message, data, status)
|
81 | 57ba2dfc | Ilias Tsitsimpis | |
82 | 57ba2dfc | Ilias Tsitsimpis | |
83 | 794c94e6 | Ilias Tsitsimpis | def _request_status_404(conn, method, url, **kwargs): |
84 | 57ba2dfc | Ilias Tsitsimpis | """This request returns 404"""
|
85 | 21190887 | Ilias Tsitsimpis | message = "Not Found"
|
86 | 57ba2dfc | Ilias Tsitsimpis | status = 404
|
87 | 57ba2dfc | Ilias Tsitsimpis | data = '<html><head><title>404 Not Found</title></head>' \
|
88 | 57ba2dfc | Ilias Tsitsimpis | '<body><h1>Not Found</h1><p>The requested URL /foo was ' \
|
89 | 57ba2dfc | Ilias Tsitsimpis | 'not found on this server.</p><hr><address>Apache Server ' \
|
90 | 57ba2dfc | Ilias Tsitsimpis | 'at example.com Port 80</address></body></html>'
|
91 | 21190887 | Ilias Tsitsimpis | return (message, data, status)
|
92 | 57ba2dfc | Ilias Tsitsimpis | |
93 | 57ba2dfc | Ilias Tsitsimpis | |
94 | 108be31f | Ilias Tsitsimpis | def _request_status_403(conn, method, url, **kwargs): |
95 | 108be31f | Ilias Tsitsimpis | """This request returns 403"""
|
96 | 108be31f | Ilias Tsitsimpis | message = "UNAUTHORIZED"
|
97 | 108be31f | Ilias Tsitsimpis | status = 403
|
98 | 108be31f | Ilias Tsitsimpis | data = "Forbidden"
|
99 | 108be31f | Ilias Tsitsimpis | return (message, data, status)
|
100 | 108be31f | Ilias Tsitsimpis | |
101 | 108be31f | Ilias Tsitsimpis | |
102 | 794c94e6 | Ilias Tsitsimpis | def _request_status_401(conn, method, url, **kwargs): |
103 | 57ba2dfc | Ilias Tsitsimpis | """This request returns 401"""
|
104 | 21190887 | Ilias Tsitsimpis | message = "UNAUTHORIZED"
|
105 | 57ba2dfc | Ilias Tsitsimpis | status = 401
|
106 | 57ba2dfc | Ilias Tsitsimpis | data = "Invalid X-Auth-Token\n"
|
107 | 21190887 | Ilias Tsitsimpis | return (message, data, status)
|
108 | 57ba2dfc | Ilias Tsitsimpis | |
109 | 57ba2dfc | Ilias Tsitsimpis | |
110 | 794c94e6 | Ilias Tsitsimpis | def _request_status_400(conn, method, url, **kwargs): |
111 | 57ba2dfc | Ilias Tsitsimpis | """This request returns 400"""
|
112 | 21190887 | Ilias Tsitsimpis | message = "BAD REQUEST"
|
113 | 57ba2dfc | Ilias Tsitsimpis | status = 400
|
114 | 57ba2dfc | Ilias Tsitsimpis | data = "Method not allowed.\n"
|
115 | 21190887 | Ilias Tsitsimpis | return (message, data, status)
|
116 | 57ba2dfc | Ilias Tsitsimpis | |
117 | 57ba2dfc | Ilias Tsitsimpis | |
118 | 794c94e6 | Ilias Tsitsimpis | def _request_ok(conn, method, url, **kwargs): |
119 | 57ba2dfc | Ilias Tsitsimpis | """This request behaves like original Astakos does"""
|
120 | b173906e | Ilias Tsitsimpis | if re.match('/?' + astakosclient.API_AUTHENTICATE, url) is not None: |
121 | b173906e | Ilias Tsitsimpis | print "here 1" |
122 | 794c94e6 | Ilias Tsitsimpis | return _req_authenticate(conn, method, url, **kwargs)
|
123 | b173906e | Ilias Tsitsimpis | elif re.match('/?' + astakosclient.API_USERCATALOGS, url) is not None: |
124 | b173906e | Ilias Tsitsimpis | print "here 2" |
125 | 794c94e6 | Ilias Tsitsimpis | return _req_catalogs(conn, method, url, **kwargs)
|
126 | b173906e | Ilias Tsitsimpis | elif re.match('/?' + astakosclient.API_RESOURCES, url) is not None: |
127 | b173906e | Ilias Tsitsimpis | print "here 3" |
128 | c4644612 | Ilias Tsitsimpis | return _req_resources(conn, method, url, **kwargs)
|
129 | b173906e | Ilias Tsitsimpis | elif re.match('/?' + astakosclient.API_QUOTAS, url) is not None: |
130 | baeb2ba5 | Ilias Tsitsimpis | return _req_quotas(conn, method, url, **kwargs)
|
131 | b173906e | Ilias Tsitsimpis | elif re.match('/?' + astakosclient.API_COMMISSIONS, url) is not None: |
132 | fd420756 | Ilias Tsitsimpis | return _req_commission(conn, method, url, **kwargs)
|
133 | b173906e | Ilias Tsitsimpis | elif re.match('/?' + astakosclient.API_TOKENS, url) is not None: |
134 | 108be31f | Ilias Tsitsimpis | return _req_endpoints(conn, method, url, **kwargs)
|
135 | 57ba2dfc | Ilias Tsitsimpis | else:
|
136 | b173906e | Ilias Tsitsimpis | print "here 4" |
137 | 794c94e6 | Ilias Tsitsimpis | return _request_status_404(conn, method, url, **kwargs)
|
138 | 57ba2dfc | Ilias Tsitsimpis | |
139 | 57ba2dfc | Ilias Tsitsimpis | |
140 | 794c94e6 | Ilias Tsitsimpis | def _req_authenticate(conn, method, url, **kwargs): |
141 | 57ba2dfc | Ilias Tsitsimpis | """Check if user exists and return his profile"""
|
142 | c4644612 | Ilias Tsitsimpis | global user_1, user_2, token_1, token_2
|
143 | 57ba2dfc | Ilias Tsitsimpis | |
144 | d4789cd4 | Ilias Tsitsimpis | # Check input
|
145 | 57ba2dfc | Ilias Tsitsimpis | if conn.__class__.__name__ != "HTTPSConnection": |
146 | 794c94e6 | Ilias Tsitsimpis | return _request_status_302(conn, method, url, **kwargs)
|
147 | 57ba2dfc | Ilias Tsitsimpis | if method != "GET": |
148 | 794c94e6 | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
149 | baeb2ba5 | Ilias Tsitsimpis | token = kwargs['headers'].get('X-Auth-Token') |
150 | 57ba2dfc | Ilias Tsitsimpis | if token == token_1:
|
151 | 344d5c90 | Ilias Tsitsimpis | user = dict(user_1)
|
152 | 57ba2dfc | Ilias Tsitsimpis | elif token == token_2:
|
153 | 344d5c90 | Ilias Tsitsimpis | user = dict(user_2)
|
154 | 57ba2dfc | Ilias Tsitsimpis | else:
|
155 | 57ba2dfc | Ilias Tsitsimpis | # No user found
|
156 | 794c94e6 | Ilias Tsitsimpis | return _request_status_401(conn, method, url, **kwargs)
|
157 | 57ba2dfc | Ilias Tsitsimpis | |
158 | d4789cd4 | Ilias Tsitsimpis | # Return
|
159 | 344d5c90 | Ilias Tsitsimpis | if "usage=1" not in url: |
160 | 57ba2dfc | Ilias Tsitsimpis | # Strip `usage' key from `user'
|
161 | 344d5c90 | Ilias Tsitsimpis | del user['usage'] |
162 | 21190887 | Ilias Tsitsimpis | return ("", simplejson.dumps(user), 200) |
163 | 57ba2dfc | Ilias Tsitsimpis | |
164 | 57ba2dfc | Ilias Tsitsimpis | |
165 | 794c94e6 | Ilias Tsitsimpis | def _req_catalogs(conn, method, url, **kwargs): |
166 | 57ba2dfc | Ilias Tsitsimpis | """Return user catalogs"""
|
167 | d071e6f1 | Ilias Tsitsimpis | global token_1, token_2, user_1, user_2
|
168 | d071e6f1 | Ilias Tsitsimpis | |
169 | d4789cd4 | Ilias Tsitsimpis | # Check input
|
170 | d071e6f1 | Ilias Tsitsimpis | if conn.__class__.__name__ != "HTTPSConnection": |
171 | 794c94e6 | Ilias Tsitsimpis | return _request_status_302(conn, method, url, **kwargs)
|
172 | d071e6f1 | Ilias Tsitsimpis | if method != "POST": |
173 | 794c94e6 | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
174 | baeb2ba5 | Ilias Tsitsimpis | token = kwargs['headers'].get('X-Auth-Token') |
175 | d4789cd4 | Ilias Tsitsimpis | if token != token_1 and token != token_2: |
176 | 794c94e6 | Ilias Tsitsimpis | return _request_status_401(conn, method, url, **kwargs)
|
177 | d4789cd4 | Ilias Tsitsimpis | |
178 | d4789cd4 | Ilias Tsitsimpis | # Return
|
179 | d4789cd4 | Ilias Tsitsimpis | body = simplejson.loads(kwargs['body'])
|
180 | aaf0a42c | Ilias Tsitsimpis | if 'uuids' in body: |
181 | aaf0a42c | Ilias Tsitsimpis | # Return uuid_catalog
|
182 | aaf0a42c | Ilias Tsitsimpis | uuids = body['uuids']
|
183 | aaf0a42c | Ilias Tsitsimpis | catalogs = {} |
184 | aaf0a42c | Ilias Tsitsimpis | if user_1['uuid'] in uuids: |
185 | aaf0a42c | Ilias Tsitsimpis | catalogs[user_1['uuid']] = user_1['username'] |
186 | aaf0a42c | Ilias Tsitsimpis | if user_2['uuid'] in uuids: |
187 | aaf0a42c | Ilias Tsitsimpis | catalogs[user_2['uuid']] = user_2['username'] |
188 | aaf0a42c | Ilias Tsitsimpis | return_catalog = {"displayname_catalog": {}, "uuid_catalog": catalogs} |
189 | aaf0a42c | Ilias Tsitsimpis | elif 'displaynames' in body: |
190 | aaf0a42c | Ilias Tsitsimpis | # Return displayname_catalog
|
191 | aaf0a42c | Ilias Tsitsimpis | names = body['displaynames']
|
192 | aaf0a42c | Ilias Tsitsimpis | catalogs = {} |
193 | aaf0a42c | Ilias Tsitsimpis | if user_1['username'] in names: |
194 | aaf0a42c | Ilias Tsitsimpis | catalogs[user_1['username']] = user_1['uuid'] |
195 | aaf0a42c | Ilias Tsitsimpis | if user_2['username'] in names: |
196 | aaf0a42c | Ilias Tsitsimpis | catalogs[user_2['username']] = user_2['uuid'] |
197 | aaf0a42c | Ilias Tsitsimpis | return_catalog = {"displayname_catalog": catalogs, "uuid_catalog": {}} |
198 | aaf0a42c | Ilias Tsitsimpis | else:
|
199 | aaf0a42c | Ilias Tsitsimpis | return_catalog = {"displayname_catalog": {}, "uuid_catalog": {}} |
200 | 21190887 | Ilias Tsitsimpis | return ("", simplejson.dumps(return_catalog), 200) |
201 | 57ba2dfc | Ilias Tsitsimpis | |
202 | 57ba2dfc | Ilias Tsitsimpis | |
203 | c4644612 | Ilias Tsitsimpis | def _req_resources(conn, method, url, **kwargs): |
204 | c4644612 | Ilias Tsitsimpis | """Return quota resources"""
|
205 | c4644612 | Ilias Tsitsimpis | global resources
|
206 | c4644612 | Ilias Tsitsimpis | |
207 | c4644612 | Ilias Tsitsimpis | # Check input
|
208 | c4644612 | Ilias Tsitsimpis | if conn.__class__.__name__ != "HTTPSConnection": |
209 | c4644612 | Ilias Tsitsimpis | return _request_status_302(conn, method, url, **kwargs)
|
210 | c4644612 | Ilias Tsitsimpis | if method != "GET": |
211 | c4644612 | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
212 | c4644612 | Ilias Tsitsimpis | |
213 | c4644612 | Ilias Tsitsimpis | # Return
|
214 | c4644612 | Ilias Tsitsimpis | return ("", simplejson.dumps(resources), 200) |
215 | c4644612 | Ilias Tsitsimpis | |
216 | c4644612 | Ilias Tsitsimpis | |
217 | baeb2ba5 | Ilias Tsitsimpis | def _req_quotas(conn, method, url, **kwargs): |
218 | baeb2ba5 | Ilias Tsitsimpis | """Return quotas for user_1"""
|
219 | baeb2ba5 | Ilias Tsitsimpis | global token_1, quotas
|
220 | baeb2ba5 | Ilias Tsitsimpis | |
221 | baeb2ba5 | Ilias Tsitsimpis | # Check input
|
222 | baeb2ba5 | Ilias Tsitsimpis | if conn.__class__.__name__ != "HTTPSConnection": |
223 | baeb2ba5 | Ilias Tsitsimpis | return _request_status_302(conn, method, url, **kwargs)
|
224 | baeb2ba5 | Ilias Tsitsimpis | if method != "GET": |
225 | baeb2ba5 | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
226 | baeb2ba5 | Ilias Tsitsimpis | token = kwargs['headers'].get('X-Auth-Token') |
227 | baeb2ba5 | Ilias Tsitsimpis | if token != token_1:
|
228 | baeb2ba5 | Ilias Tsitsimpis | return _request_status_401(conn, method, url, **kwargs)
|
229 | baeb2ba5 | Ilias Tsitsimpis | |
230 | baeb2ba5 | Ilias Tsitsimpis | # Return
|
231 | baeb2ba5 | Ilias Tsitsimpis | return ("", simplejson.dumps(quotas), 200) |
232 | baeb2ba5 | Ilias Tsitsimpis | |
233 | baeb2ba5 | Ilias Tsitsimpis | |
234 | fd420756 | Ilias Tsitsimpis | def _req_commission(conn, method, url, **kwargs): |
235 | fd420756 | Ilias Tsitsimpis | """Perform a commission for user_1"""
|
236 | 7a0180ef | Ilias Tsitsimpis | global token_1, pending_commissions, \
|
237 | 7a0180ef | Ilias Tsitsimpis | commission_successful_response, commission_failure_response |
238 | fd420756 | Ilias Tsitsimpis | |
239 | fd420756 | Ilias Tsitsimpis | # Check input
|
240 | fd420756 | Ilias Tsitsimpis | if conn.__class__.__name__ != "HTTPSConnection": |
241 | fd420756 | Ilias Tsitsimpis | return _request_status_302(conn, method, url, **kwargs)
|
242 | fd420756 | Ilias Tsitsimpis | token = kwargs['headers'].get('X-Auth-Token') |
243 | fd420756 | Ilias Tsitsimpis | if token != token_1:
|
244 | fd420756 | Ilias Tsitsimpis | return _request_status_401(conn, method, url, **kwargs)
|
245 | fd420756 | Ilias Tsitsimpis | |
246 | 7a0180ef | Ilias Tsitsimpis | if method == "POST": |
247 | 7a0180ef | Ilias Tsitsimpis | if 'body' not in kwargs: |
248 | 7a0180ef | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
249 | 7a0180ef | Ilias Tsitsimpis | body = simplejson.loads(unicode(kwargs['body'])) |
250 | b173906e | Ilias Tsitsimpis | if re.match('/?'+astakosclient.API_COMMISSIONS+'$', url) is not None: |
251 | 805e294c | Ilias Tsitsimpis | # Issue Commission
|
252 | 805e294c | Ilias Tsitsimpis | # Check if we have enough resources to give
|
253 | 805e294c | Ilias Tsitsimpis | if body['provisions'][1]['quantity'] > 420000000: |
254 | 805e294c | Ilias Tsitsimpis | return ("", simplejson.dumps(commission_failure_response), 413) |
255 | 805e294c | Ilias Tsitsimpis | else:
|
256 | 805e294c | Ilias Tsitsimpis | return \
|
257 | 805e294c | Ilias Tsitsimpis | ("", simplejson.dumps(commission_successful_response), 200) |
258 | 7a0180ef | Ilias Tsitsimpis | else:
|
259 | 805e294c | Ilias Tsitsimpis | # Issue commission action
|
260 | 805e294c | Ilias Tsitsimpis | serial = url.split('/')[4] |
261 | 81875157 | Ilias Tsitsimpis | if serial == "action": |
262 | 81875157 | Ilias Tsitsimpis | # Resolve multiple actions
|
263 | 81875157 | Ilias Tsitsimpis | if body == resolve_commissions_req:
|
264 | 81875157 | Ilias Tsitsimpis | return ("", simplejson.dumps(resolve_commissions_rep), 200) |
265 | 81875157 | Ilias Tsitsimpis | else:
|
266 | 81875157 | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
267 | 81875157 | Ilias Tsitsimpis | else:
|
268 | 81875157 | Ilias Tsitsimpis | # Issue action for one commission
|
269 | 81875157 | Ilias Tsitsimpis | if serial != str(57): |
270 | 81875157 | Ilias Tsitsimpis | return _request_status_404(conn, method, url, **kwargs)
|
271 | 81875157 | Ilias Tsitsimpis | if len(body) != 1: |
272 | 81875157 | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
273 | 81875157 | Ilias Tsitsimpis | if "accept" not in body.keys() and "reject" not in body.keys(): |
274 | 81875157 | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
275 | 81875157 | Ilias Tsitsimpis | return ("", "", 200) |
276 | 805e294c | Ilias Tsitsimpis | |
277 | 7a0180ef | Ilias Tsitsimpis | elif method == "GET": |
278 | b173906e | Ilias Tsitsimpis | if re.match('/?'+astakosclient.API_COMMISSIONS+'$', url) is not None: |
279 | 994f37b6 | Ilias Tsitsimpis | # Return pending commission
|
280 | 994f37b6 | Ilias Tsitsimpis | return ("", simplejson.dumps(pending_commissions), 200) |
281 | 994f37b6 | Ilias Tsitsimpis | else:
|
282 | 994f37b6 | Ilias Tsitsimpis | # Return commissions's description
|
283 | b173906e | Ilias Tsitsimpis | serial = re.sub('/?' + astakosclient.API_COMMISSIONS, '', url)[1:] |
284 | 994f37b6 | Ilias Tsitsimpis | if serial == str(57): |
285 | 994f37b6 | Ilias Tsitsimpis | return ("", simplejson.dumps(commission_description), 200) |
286 | 994f37b6 | Ilias Tsitsimpis | else:
|
287 | 994f37b6 | Ilias Tsitsimpis | return _request_status_404(conn, method, url, **kwargs)
|
288 | fd420756 | Ilias Tsitsimpis | else:
|
289 | 7a0180ef | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
290 | fd420756 | Ilias Tsitsimpis | |
291 | fd420756 | Ilias Tsitsimpis | |
292 | 108be31f | Ilias Tsitsimpis | def _req_endpoints(conn, method, url, **kwargs): |
293 | 108be31f | Ilias Tsitsimpis | """Request endpoints"""
|
294 | 108be31f | Ilias Tsitsimpis | global token_1, endpoints
|
295 | 108be31f | Ilias Tsitsimpis | |
296 | 108be31f | Ilias Tsitsimpis | # Check input
|
297 | 108be31f | Ilias Tsitsimpis | if conn.__class__.__name__ != "HTTPSConnection": |
298 | 108be31f | Ilias Tsitsimpis | return _request_status_302(conn, method, url, **kwargs)
|
299 | b173906e | Ilias Tsitsimpis | if method != "POST": |
300 | b173906e | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
301 | 108be31f | Ilias Tsitsimpis | |
302 | 108be31f | Ilias Tsitsimpis | token_head = kwargs['headers'].get('X-Auth-Token') |
303 | b173906e | Ilias Tsitsimpis | if method != "POST": |
304 | b173906e | Ilias Tsitsimpis | return _request_status_400(conn, method, url, **kwargs)
|
305 | b173906e | Ilias Tsitsimpis | body = simplejson.loads(kwargs['body'])
|
306 | b173906e | Ilias Tsitsimpis | token_body = body['auth']['token']['id'] |
307 | b173906e | Ilias Tsitsimpis | if token_head != token_body:
|
308 | b173906e | Ilias Tsitsimpis | return _request_status_403(conn, method, url, **kwargs)
|
309 | b173906e | Ilias Tsitsimpis | if token_body != token_1:
|
310 | b173906e | Ilias Tsitsimpis | return _request_status_401(conn, method, url, **kwargs)
|
311 | b173906e | Ilias Tsitsimpis | # Return
|
312 | b173906e | Ilias Tsitsimpis | return ("", simplejson.dumps(user_info_endpoints), 200) |
313 | 108be31f | Ilias Tsitsimpis | |
314 | 108be31f | Ilias Tsitsimpis | |
315 | 57ba2dfc | Ilias Tsitsimpis | # ----------------------------
|
316 | 57ba2dfc | Ilias Tsitsimpis | # Mock the actual _doRequest
|
317 | 794c94e6 | Ilias Tsitsimpis | def _mock_request(new_requests): |
318 | 57ba2dfc | Ilias Tsitsimpis | """Mock the actual request
|
319 | 57ba2dfc | Ilias Tsitsimpis |
|
320 | 57ba2dfc | Ilias Tsitsimpis | Given a list of requests to use (in rotation),
|
321 | 57ba2dfc | Ilias Tsitsimpis | replace the original _doRequest function with
|
322 | 57ba2dfc | Ilias Tsitsimpis | a new one
|
323 | 57ba2dfc | Ilias Tsitsimpis |
|
324 | 57ba2dfc | Ilias Tsitsimpis | """
|
325 | 57ba2dfc | Ilias Tsitsimpis | def _mock(conn, method, url, **kwargs): |
326 | 57ba2dfc | Ilias Tsitsimpis | # Get first request
|
327 | 57ba2dfc | Ilias Tsitsimpis | request = _mock.requests[0]
|
328 | 57ba2dfc | Ilias Tsitsimpis | # Rotate requests
|
329 | 57ba2dfc | Ilias Tsitsimpis | _mock.requests = _mock.requests[1:] + _mock.requests[:1] |
330 | 57ba2dfc | Ilias Tsitsimpis | # Use first request
|
331 | b2a2fe7a | Ilias Tsitsimpis | return request(conn, method, url, **kwargs)
|
332 | 57ba2dfc | Ilias Tsitsimpis | |
333 | 57ba2dfc | Ilias Tsitsimpis | _mock.requests = new_requests |
334 | 57ba2dfc | Ilias Tsitsimpis | # Replace `_doRequest' with our `_mock'
|
335 | 794c94e6 | Ilias Tsitsimpis | astakosclient._do_request = _mock |
336 | 57ba2dfc | Ilias Tsitsimpis | |
337 | 57ba2dfc | Ilias Tsitsimpis | |
338 | 57ba2dfc | Ilias Tsitsimpis | # ----------------------------
|
339 | 57ba2dfc | Ilias Tsitsimpis | # Local users
|
340 | 26498848 | Giorgos Korfiatis | token_1 = "skzleaFlBl+fasFdaf24sx"
|
341 | 344d5c90 | Ilias Tsitsimpis | user_1 = \ |
342 | 454a1ad4 | Ilias Tsitsimpis | {"username": "user1@example.com", |
343 | 454a1ad4 | Ilias Tsitsimpis | "auth_token_created": 1359386939000, |
344 | 454a1ad4 | Ilias Tsitsimpis | "name": "Example User One", |
345 | 454a1ad4 | Ilias Tsitsimpis | "email": ["user1@example.com"], |
346 | 454a1ad4 | Ilias Tsitsimpis | "auth_token_expires": 1361978939000, |
347 | 454a1ad4 | Ilias Tsitsimpis | "id": 108, |
348 | 344d5c90 | Ilias Tsitsimpis | "uuid": "73917abc-abcd-477e-a1f1-1763abcdefab", |
349 | 344d5c90 | Ilias Tsitsimpis | "usage": [
|
350 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 42949672960, |
351 | 344d5c90 | Ilias Tsitsimpis | "display_name": "System Disk", |
352 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.disk"}, |
353 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 4, |
354 | 344d5c90 | Ilias Tsitsimpis | "display_name": "CPU", |
355 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.cpu"}, |
356 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 4294967296, |
357 | 344d5c90 | Ilias Tsitsimpis | "display_name": "RAM", |
358 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.ram"}, |
359 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 3, |
360 | 344d5c90 | Ilias Tsitsimpis | "display_name": "VM", |
361 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.vm"}, |
362 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 0, |
363 | 344d5c90 | Ilias Tsitsimpis | "display_name": "private network", |
364 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.network.private"}, |
365 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 152, |
366 | 344d5c90 | Ilias Tsitsimpis | "display_name": "Storage Space", |
367 | 344d5c90 | Ilias Tsitsimpis | "name": "pithos+.diskspace"}]} |
368 | 57ba2dfc | Ilias Tsitsimpis | |
369 | 26498848 | Giorgos Korfiatis | token_2 = "fasdfDSFdf98923DF+sdfk"
|
370 | 344d5c90 | Ilias Tsitsimpis | user_2 = \ |
371 | 454a1ad4 | Ilias Tsitsimpis | {"username": "user2@example.com", |
372 | 454a1ad4 | Ilias Tsitsimpis | "auth_token_created": 1358386938997, |
373 | 454a1ad4 | Ilias Tsitsimpis | "name": "Example User Two", |
374 | 454a1ad4 | Ilias Tsitsimpis | "email": ["user1@example.com"], |
375 | 454a1ad4 | Ilias Tsitsimpis | "auth_token_expires": 1461998939000, |
376 | 454a1ad4 | Ilias Tsitsimpis | "id": 109, |
377 | 344d5c90 | Ilias Tsitsimpis | "uuid": "73917bca-1234-5678-a1f1-1763abcdefab", |
378 | 344d5c90 | Ilias Tsitsimpis | "usage": [
|
379 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 68719476736, |
380 | 344d5c90 | Ilias Tsitsimpis | "display_name": "System Disk", |
381 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.disk"}, |
382 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 1, |
383 | 344d5c90 | Ilias Tsitsimpis | "display_name": "CPU", |
384 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.cpu"}, |
385 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 1073741824, |
386 | 344d5c90 | Ilias Tsitsimpis | "display_name": "RAM", |
387 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.ram"}, |
388 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 2, |
389 | 344d5c90 | Ilias Tsitsimpis | "display_name": "VM", |
390 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.vm"}, |
391 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 1, |
392 | 344d5c90 | Ilias Tsitsimpis | "display_name": "private network", |
393 | 344d5c90 | Ilias Tsitsimpis | "name": "cyclades.network.private"}, |
394 | 344d5c90 | Ilias Tsitsimpis | {"currValue": 2341634510, |
395 | 344d5c90 | Ilias Tsitsimpis | "display_name": "Storage Space", |
396 | 344d5c90 | Ilias Tsitsimpis | "name": "pithos+.diskspace"}]} |
397 | bc56a641 | Ilias Tsitsimpis | |
398 | c4644612 | Ilias Tsitsimpis | resources = { |
399 | c4644612 | Ilias Tsitsimpis | "cyclades.vm": {
|
400 | c4644612 | Ilias Tsitsimpis | "unit": None, |
401 | c4644612 | Ilias Tsitsimpis | "description": "Number of virtual machines", |
402 | c4644612 | Ilias Tsitsimpis | "service": "cyclades"}, |
403 | c4644612 | Ilias Tsitsimpis | "cyclades.ram": {
|
404 | c4644612 | Ilias Tsitsimpis | "unit": "bytes", |
405 | c4644612 | Ilias Tsitsimpis | "description": "Virtual machine memory", |
406 | c4644612 | Ilias Tsitsimpis | "service": "cyclades"}} |
407 | c4644612 | Ilias Tsitsimpis | |
408 | 25a04cdd | Ilias Tsitsimpis | user_info_endpoints = \ |
409 | 25a04cdd | Ilias Tsitsimpis | {'serviceCatalog': [
|
410 | 25a04cdd | Ilias Tsitsimpis | {'endpoints': [{
|
411 | 25a04cdd | Ilias Tsitsimpis | 'SNF:uiURL': 'https://node1.example.com/ui/', |
412 | 25a04cdd | Ilias Tsitsimpis | 'adminURL': 'https://node1.example.com/v1', |
413 | 25a04cdd | Ilias Tsitsimpis | 'internalUrl': 'https://node1.example.com/v1', |
414 | 25a04cdd | Ilias Tsitsimpis | 'publicURL': 'https://node1.example.com/v1', |
415 | 25a04cdd | Ilias Tsitsimpis | 'region': 'cyclades'}], |
416 | 25a04cdd | Ilias Tsitsimpis | 'name': 'cyclades', |
417 | 25a04cdd | Ilias Tsitsimpis | 'type': 'compute'}, |
418 | 25a04cdd | Ilias Tsitsimpis | {'endpoints': [{
|
419 | 25a04cdd | Ilias Tsitsimpis | 'SNF:uiURL': 'https://node2.example.com/ui/', |
420 | 25a04cdd | Ilias Tsitsimpis | 'adminURL': 'https://node2.example.com/v1', |
421 | 25a04cdd | Ilias Tsitsimpis | 'internalUrl': 'https://node2.example.com/v1', |
422 | 25a04cdd | Ilias Tsitsimpis | 'publicURL': 'https://node2.example.com/v1', |
423 | 25a04cdd | Ilias Tsitsimpis | 'region': 'pithos'}], |
424 | 25a04cdd | Ilias Tsitsimpis | 'name': 'pithos', |
425 | 25a04cdd | Ilias Tsitsimpis | 'type': 'storage'}], |
426 | 25a04cdd | Ilias Tsitsimpis | 'token': {
|
427 | 25a04cdd | Ilias Tsitsimpis | 'expires': '2013-06-19T15:23:59.975572+00:00', |
428 | 25a04cdd | Ilias Tsitsimpis | 'id': token_1,
|
429 | 25a04cdd | Ilias Tsitsimpis | 'tenant': {
|
430 | 25a04cdd | Ilias Tsitsimpis | 'id': user_1,
|
431 | 25a04cdd | Ilias Tsitsimpis | 'name': 'Firstname Lastname'}}, |
432 | 25a04cdd | Ilias Tsitsimpis | 'user': {
|
433 | 25a04cdd | Ilias Tsitsimpis | 'id': user_1,
|
434 | 25a04cdd | Ilias Tsitsimpis | 'name': 'Firstname Lastname', |
435 | 25a04cdd | Ilias Tsitsimpis | 'roles': [{'id': 1, 'name': 'default'}], |
436 | 25a04cdd | Ilias Tsitsimpis | 'roles_links': []}}
|
437 | 25a04cdd | Ilias Tsitsimpis | |
438 | baeb2ba5 | Ilias Tsitsimpis | quotas = { |
439 | baeb2ba5 | Ilias Tsitsimpis | "system": {
|
440 | baeb2ba5 | Ilias Tsitsimpis | "cyclades.ram": {
|
441 | 480974e6 | Giorgos Korfiatis | "pending": 0, |
442 | baeb2ba5 | Ilias Tsitsimpis | "limit": 1073741824, |
443 | 480974e6 | Giorgos Korfiatis | "usage": 536870912}, |
444 | baeb2ba5 | Ilias Tsitsimpis | "cyclades.vm": {
|
445 | 480974e6 | Giorgos Korfiatis | "pending": 0, |
446 | baeb2ba5 | Ilias Tsitsimpis | "limit": 2, |
447 | 480974e6 | Giorgos Korfiatis | "usage": 2}}, |
448 | baeb2ba5 | Ilias Tsitsimpis | "project:1": {
|
449 | baeb2ba5 | Ilias Tsitsimpis | "cyclades.ram": {
|
450 | 480974e6 | Giorgos Korfiatis | "pending": 0, |
451 | baeb2ba5 | Ilias Tsitsimpis | "limit": 2147483648, |
452 | 480974e6 | Giorgos Korfiatis | "usage": 2147483648}, |
453 | baeb2ba5 | Ilias Tsitsimpis | "cyclades.vm": {
|
454 | 480974e6 | Giorgos Korfiatis | "pending": 1, |
455 | baeb2ba5 | Ilias Tsitsimpis | "limit": 5, |
456 | 480974e6 | Giorgos Korfiatis | "usage": 2}}} |
457 | baeb2ba5 | Ilias Tsitsimpis | |
458 | fd420756 | Ilias Tsitsimpis | commission_request = { |
459 | fd420756 | Ilias Tsitsimpis | "force": False, |
460 | fd420756 | Ilias Tsitsimpis | "auto_accept": False, |
461 | 3a1bed03 | Giorgos Korfiatis | "name": "my commission", |
462 | fd420756 | Ilias Tsitsimpis | "provisions": [
|
463 | fd420756 | Ilias Tsitsimpis | { |
464 | fd420756 | Ilias Tsitsimpis | "holder": "c02f315b-7d84-45bc-a383-552a3f97d2ad", |
465 | fd420756 | Ilias Tsitsimpis | "source": "system", |
466 | fd420756 | Ilias Tsitsimpis | "resource": "cyclades.vm", |
467 | fd420756 | Ilias Tsitsimpis | "quantity": 1 |
468 | fd420756 | Ilias Tsitsimpis | }, |
469 | fd420756 | Ilias Tsitsimpis | { |
470 | fd420756 | Ilias Tsitsimpis | "holder": "c02f315b-7d84-45bc-a383-552a3f97d2ad", |
471 | fd420756 | Ilias Tsitsimpis | "source": "system", |
472 | fd420756 | Ilias Tsitsimpis | "resource": "cyclades.ram", |
473 | fd420756 | Ilias Tsitsimpis | "quantity": 30000 |
474 | fd420756 | Ilias Tsitsimpis | }]} |
475 | fd420756 | Ilias Tsitsimpis | |
476 | fd420756 | Ilias Tsitsimpis | commission_successful_response = {"serial": 57} |
477 | fd420756 | Ilias Tsitsimpis | |
478 | fd420756 | Ilias Tsitsimpis | commission_failure_response = { |
479 | fd420756 | Ilias Tsitsimpis | "overLimit": {
|
480 | fd420756 | Ilias Tsitsimpis | "message": "a human-readable error message", |
481 | fd420756 | Ilias Tsitsimpis | "code": 413, |
482 | fd420756 | Ilias Tsitsimpis | "data": {
|
483 | fd420756 | Ilias Tsitsimpis | "provision": {
|
484 | fd420756 | Ilias Tsitsimpis | "holder": "c02f315b-7d84-45bc-a383-552a3f97d2ad", |
485 | fd420756 | Ilias Tsitsimpis | "source": "system", |
486 | fd420756 | Ilias Tsitsimpis | "resource": "cyclades.ram", |
487 | fd420756 | Ilias Tsitsimpis | "quantity": 520000000}, |
488 | fd420756 | Ilias Tsitsimpis | "name": "NoCapacityError", |
489 | e311d555 | Giorgos Korfiatis | "limit": 600000000, |
490 | e311d555 | Giorgos Korfiatis | "usage": 180000000}}} |
491 | fd420756 | Ilias Tsitsimpis | |
492 | 7a0180ef | Ilias Tsitsimpis | pending_commissions = [100, 200] |
493 | 7a0180ef | Ilias Tsitsimpis | |
494 | 994f37b6 | Ilias Tsitsimpis | commission_description = { |
495 | 994f37b6 | Ilias Tsitsimpis | "serial": 57, |
496 | 164e64d5 | Giorgos Korfiatis | "issue_time": "2013-04-08T10:19:15.0373+00:00", |
497 | 3a1bed03 | Giorgos Korfiatis | "name": "a commission", |
498 | 994f37b6 | Ilias Tsitsimpis | "provisions": [
|
499 | 994f37b6 | Ilias Tsitsimpis | { |
500 | 994f37b6 | Ilias Tsitsimpis | "holder": "c02f315b-7d84-45bc-a383-552a3f97d2ad", |
501 | 994f37b6 | Ilias Tsitsimpis | "source": "system", |
502 | 994f37b6 | Ilias Tsitsimpis | "resource": "cyclades.vm", |
503 | 994f37b6 | Ilias Tsitsimpis | "quantity": 1 |
504 | 994f37b6 | Ilias Tsitsimpis | }, |
505 | 994f37b6 | Ilias Tsitsimpis | { |
506 | 994f37b6 | Ilias Tsitsimpis | "holder": "c02f315b-7d84-45bc-a383-552a3f97d2ad", |
507 | 994f37b6 | Ilias Tsitsimpis | "source": "system", |
508 | 994f37b6 | Ilias Tsitsimpis | "resource": "cyclades.ram", |
509 | 994f37b6 | Ilias Tsitsimpis | "quantity": 536870912 |
510 | 994f37b6 | Ilias Tsitsimpis | }]} |
511 | 994f37b6 | Ilias Tsitsimpis | |
512 | 81875157 | Ilias Tsitsimpis | resolve_commissions_req = { |
513 | 81875157 | Ilias Tsitsimpis | "accept": [56, 57], |
514 | 81875157 | Ilias Tsitsimpis | "reject": [56, 58, 59]} |
515 | 81875157 | Ilias Tsitsimpis | |
516 | 81875157 | Ilias Tsitsimpis | resolve_commissions_rep = { |
517 | 81875157 | Ilias Tsitsimpis | "accepted": [57], |
518 | 81875157 | Ilias Tsitsimpis | "rejected": [59], |
519 | 81875157 | Ilias Tsitsimpis | "failed": [
|
520 | 81875157 | Ilias Tsitsimpis | [56, {
|
521 | 81875157 | Ilias Tsitsimpis | "badRequest": {
|
522 | 81875157 | Ilias Tsitsimpis | "message": "cannot both accept and reject serial 56", |
523 | 81875157 | Ilias Tsitsimpis | "code": 400}}], |
524 | 81875157 | Ilias Tsitsimpis | [58, {
|
525 | 81875157 | Ilias Tsitsimpis | "itemNotFound": {
|
526 | 81875157 | Ilias Tsitsimpis | "message": "serial 58 does not exist", |
527 | 81875157 | Ilias Tsitsimpis | "code": 404}}]]} |
528 | 81875157 | Ilias Tsitsimpis | |
529 | bc56a641 | Ilias Tsitsimpis | |
530 | bc56a641 | Ilias Tsitsimpis | # --------------------------------------------------------------------
|
531 | bc56a641 | Ilias Tsitsimpis | # The actual tests
|
532 | bc56a641 | Ilias Tsitsimpis | |
533 | bc56a641 | Ilias Tsitsimpis | class TestCallAstakos(unittest.TestCase): |
534 | bc56a641 | Ilias Tsitsimpis | """Test cases for function _callAstakos"""
|
535 | bc56a641 | Ilias Tsitsimpis | |
536 | b2a2fe7a | Ilias Tsitsimpis | # ----------------------------------
|
537 | b2a2fe7a | Ilias Tsitsimpis | # Test the response we get if we don't have internet access
|
538 | b2a2fe7a | Ilias Tsitsimpis | def _offline(self, pool): |
539 | bc56a641 | Ilias Tsitsimpis | global token_1
|
540 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_offline]) |
541 | bc56a641 | Ilias Tsitsimpis | try:
|
542 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", use_pool=pool)
|
543 | 7b5a37fd | Ilias Tsitsimpis | client._call_astakos(token_1, astakosclient.API_AUTHENTICATE) |
544 | 66208bc7 | Ilias Tsitsimpis | except AstakosClientException:
|
545 | bc56a641 | Ilias Tsitsimpis | pass
|
546 | bc56a641 | Ilias Tsitsimpis | else:
|
547 | 66208bc7 | Ilias Tsitsimpis | self.fail("Should have raised AstakosClientException") |
548 | bc56a641 | Ilias Tsitsimpis | |
549 | 794c94e6 | Ilias Tsitsimpis | def test_offline(self): |
550 | b2a2fe7a | Ilias Tsitsimpis | """Test _offline without pool"""
|
551 | b2a2fe7a | Ilias Tsitsimpis | self._offline(False) |
552 | b2a2fe7a | Ilias Tsitsimpis | |
553 | 794c94e6 | Ilias Tsitsimpis | def test_offline_pool(self): |
554 | b2a2fe7a | Ilias Tsitsimpis | """Test _offline using pool"""
|
555 | b2a2fe7a | Ilias Tsitsimpis | self._offline(True) |
556 | b2a2fe7a | Ilias Tsitsimpis | |
557 | b2a2fe7a | Ilias Tsitsimpis | # ----------------------------------
|
558 | b2a2fe7a | Ilias Tsitsimpis | # Test the response we get if we send invalid token
|
559 | 794c94e6 | Ilias Tsitsimpis | def _invalid_token(self, pool): |
560 | 26498848 | Giorgos Korfiatis | token = "skaksaFlBl+fasFdaf24sx"
|
561 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
562 | b2a2fe7a | Ilias Tsitsimpis | try:
|
563 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", use_pool=pool)
|
564 | 7b5a37fd | Ilias Tsitsimpis | client._call_astakos(token, astakosclient.API_AUTHENTICATE) |
565 | f93cc364 | Ilias Tsitsimpis | except Unauthorized:
|
566 | 8fe6475a | Ilias Tsitsimpis | pass
|
567 | 8fe6475a | Ilias Tsitsimpis | except Exception: |
568 | 8fe6475a | Ilias Tsitsimpis | self.fail("Should have returned 401 (Invalid X-Auth-Token)") |
569 | b2a2fe7a | Ilias Tsitsimpis | else:
|
570 | b2a2fe7a | Ilias Tsitsimpis | self.fail("Should have returned 401 (Invalid X-Auth-Token)") |
571 | b2a2fe7a | Ilias Tsitsimpis | |
572 | 794c94e6 | Ilias Tsitsimpis | def test_invalid_token(self): |
573 | 794c94e6 | Ilias Tsitsimpis | """Test _invalid_token without pool"""
|
574 | 794c94e6 | Ilias Tsitsimpis | self._invalid_token(False) |
575 | b2a2fe7a | Ilias Tsitsimpis | |
576 | 794c94e6 | Ilias Tsitsimpis | def test_invalid_token_pool(self): |
577 | 794c94e6 | Ilias Tsitsimpis | """Test _invalid_token using pool"""
|
578 | 794c94e6 | Ilias Tsitsimpis | self._invalid_token(True) |
579 | b2a2fe7a | Ilias Tsitsimpis | |
580 | b2a2fe7a | Ilias Tsitsimpis | # ----------------------------------
|
581 | b2a2fe7a | Ilias Tsitsimpis | # Test the response we get if we send invalid url
|
582 | 794c94e6 | Ilias Tsitsimpis | def _invalid_url(self, pool): |
583 | bc56a641 | Ilias Tsitsimpis | global token_1
|
584 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
585 | bc56a641 | Ilias Tsitsimpis | try:
|
586 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", use_pool=pool)
|
587 | 79b5d61b | Sofia Papagiannaki | client._call_astakos(token_1, "/astakos/api/misspelled")
|
588 | f93cc364 | Ilias Tsitsimpis | except NotFound:
|
589 | 8fe6475a | Ilias Tsitsimpis | pass
|
590 | 8fe6475a | Ilias Tsitsimpis | except Exception: |
591 | 8fe6475a | Ilias Tsitsimpis | self.fail("Should have returned 404 (Not Found)") |
592 | b2a2fe7a | Ilias Tsitsimpis | else:
|
593 | b2a2fe7a | Ilias Tsitsimpis | self.fail("Should have returned 404 (Not Found)") |
594 | b2a2fe7a | Ilias Tsitsimpis | |
595 | 794c94e6 | Ilias Tsitsimpis | def test_invalid_url(self): |
596 | 794c94e6 | Ilias Tsitsimpis | """Test _invalid_url without pool"""
|
597 | 794c94e6 | Ilias Tsitsimpis | self._invalid_url(False) |
598 | b2a2fe7a | Ilias Tsitsimpis | |
599 | 794c94e6 | Ilias Tsitsimpis | def test_invalid_url_pool(self): |
600 | 794c94e6 | Ilias Tsitsimpis | """Test _invalid_url using pool"""
|
601 | 794c94e6 | Ilias Tsitsimpis | self._invalid_url(True) |
602 | b2a2fe7a | Ilias Tsitsimpis | |
603 | b2a2fe7a | Ilias Tsitsimpis | # ----------------------------------
|
604 | b2a2fe7a | Ilias Tsitsimpis | # Test the response we get if we use an unsupported scheme
|
605 | 794c94e6 | Ilias Tsitsimpis | def _unsupported_scheme(self, pool): |
606 | b2a2fe7a | Ilias Tsitsimpis | global token_1
|
607 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
608 | b2a2fe7a | Ilias Tsitsimpis | try:
|
609 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("ftp://example.com", use_pool=pool)
|
610 | 7b5a37fd | Ilias Tsitsimpis | client._call_astakos(token_1, astakosclient.API_AUTHENTICATE) |
611 | 83f9157b | Ilias Tsitsimpis | except BadValue:
|
612 | bc56a641 | Ilias Tsitsimpis | pass
|
613 | bc56a641 | Ilias Tsitsimpis | except Exception: |
614 | 83f9157b | Ilias Tsitsimpis | self.fail("Should have raise BadValue Exception") |
615 | bc56a641 | Ilias Tsitsimpis | else:
|
616 | 83f9157b | Ilias Tsitsimpis | self.fail("Should have raise BadValue Exception") |
617 | b2a2fe7a | Ilias Tsitsimpis | |
618 | 794c94e6 | Ilias Tsitsimpis | def test_unsupported_scheme(self): |
619 | 794c94e6 | Ilias Tsitsimpis | """Test _unsupported_scheme without pool"""
|
620 | 794c94e6 | Ilias Tsitsimpis | self._unsupported_scheme(False) |
621 | b2a2fe7a | Ilias Tsitsimpis | |
622 | 794c94e6 | Ilias Tsitsimpis | def test_unsupported_scheme_pool(self): |
623 | 794c94e6 | Ilias Tsitsimpis | """Test _unsupported_scheme using pool"""
|
624 | 794c94e6 | Ilias Tsitsimpis | self._unsupported_scheme(True) |
625 | b2a2fe7a | Ilias Tsitsimpis | |
626 | b2a2fe7a | Ilias Tsitsimpis | # ----------------------------------
|
627 | b2a2fe7a | Ilias Tsitsimpis | # Test the response we get if we use http instead of https
|
628 | 794c94e6 | Ilias Tsitsimpis | def _http_scheme(self, pool): |
629 | b2a2fe7a | Ilias Tsitsimpis | global token_1
|
630 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
631 | b2a2fe7a | Ilias Tsitsimpis | try:
|
632 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("http://example.com", use_pool=pool)
|
633 | 7b5a37fd | Ilias Tsitsimpis | client._call_astakos(token_1, astakosclient.API_AUTHENTICATE) |
634 | 66208bc7 | Ilias Tsitsimpis | except AstakosClientException as err: |
635 | 66208bc7 | Ilias Tsitsimpis | if err.status != 302: |
636 | b2a2fe7a | Ilias Tsitsimpis | self.fail("Should have returned 302 (Found)") |
637 | b2a2fe7a | Ilias Tsitsimpis | else:
|
638 | b2a2fe7a | Ilias Tsitsimpis | self.fail("Should have returned 302 (Found)") |
639 | b2a2fe7a | Ilias Tsitsimpis | |
640 | 794c94e6 | Ilias Tsitsimpis | def test_http_scheme(self): |
641 | 794c94e6 | Ilias Tsitsimpis | """Test _http_scheme without pool"""
|
642 | 794c94e6 | Ilias Tsitsimpis | self._http_scheme(False) |
643 | b2a2fe7a | Ilias Tsitsimpis | |
644 | 794c94e6 | Ilias Tsitsimpis | def test_http_scheme_pool(self): |
645 | 794c94e6 | Ilias Tsitsimpis | """Test _http_scheme using pool"""
|
646 | 794c94e6 | Ilias Tsitsimpis | self._http_scheme(True) |
647 | b2a2fe7a | Ilias Tsitsimpis | |
648 | b2a2fe7a | Ilias Tsitsimpis | # ----------------------------------
|
649 | b2a2fe7a | Ilias Tsitsimpis | # Test the response we get if we use authenticate with POST
|
650 | 794c94e6 | Ilias Tsitsimpis | def _post_authenticate(self, pool): |
651 | b2a2fe7a | Ilias Tsitsimpis | global token_1
|
652 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
653 | b2a2fe7a | Ilias Tsitsimpis | try:
|
654 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", use_pool=pool)
|
655 | 7b5a37fd | Ilias Tsitsimpis | client._call_astakos( |
656 | 7b5a37fd | Ilias Tsitsimpis | token_1, astakosclient.API_AUTHENTICATE, method="POST")
|
657 | f93cc364 | Ilias Tsitsimpis | except BadRequest:
|
658 | 8fe6475a | Ilias Tsitsimpis | pass
|
659 | 8fe6475a | Ilias Tsitsimpis | except Exception: |
660 | 8fe6475a | Ilias Tsitsimpis | self.fail("Should have returned 400 (Method not allowed)") |
661 | b2a2fe7a | Ilias Tsitsimpis | else:
|
662 | b2a2fe7a | Ilias Tsitsimpis | self.fail("Should have returned 400 (Method not allowed)") |
663 | b2a2fe7a | Ilias Tsitsimpis | |
664 | 794c94e6 | Ilias Tsitsimpis | def test_post_authenticate(self): |
665 | 794c94e6 | Ilias Tsitsimpis | """Test _post_authenticate without pool"""
|
666 | 794c94e6 | Ilias Tsitsimpis | self._post_authenticate(False) |
667 | b2a2fe7a | Ilias Tsitsimpis | |
668 | 794c94e6 | Ilias Tsitsimpis | def test_post_authenticate_pool(self): |
669 | 794c94e6 | Ilias Tsitsimpis | """Test _post_authenticate using pool"""
|
670 | 794c94e6 | Ilias Tsitsimpis | self._post_authenticate(True) |
671 | bc56a641 | Ilias Tsitsimpis | |
672 | d071e6f1 | Ilias Tsitsimpis | # ----------------------------------
|
673 | d071e6f1 | Ilias Tsitsimpis | # Test the response if we request user_catalogs with GET
|
674 | 794c94e6 | Ilias Tsitsimpis | def _get_user_catalogs(self, pool): |
675 | d071e6f1 | Ilias Tsitsimpis | global token_1
|
676 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
677 | d071e6f1 | Ilias Tsitsimpis | try:
|
678 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", use_pool=pool)
|
679 | 7b5a37fd | Ilias Tsitsimpis | client._call_astakos(token_1, astakosclient.API_USERCATALOGS) |
680 | f93cc364 | Ilias Tsitsimpis | except BadRequest:
|
681 | 8fe6475a | Ilias Tsitsimpis | pass
|
682 | 8fe6475a | Ilias Tsitsimpis | except Exception: |
683 | 8fe6475a | Ilias Tsitsimpis | self.fail("Should have returned 400 (Method not allowed)") |
684 | d071e6f1 | Ilias Tsitsimpis | else:
|
685 | d071e6f1 | Ilias Tsitsimpis | self.fail("Should have returned 400 (Method not allowed)") |
686 | d071e6f1 | Ilias Tsitsimpis | |
687 | 794c94e6 | Ilias Tsitsimpis | def test_get_user_catalogs(self): |
688 | 794c94e6 | Ilias Tsitsimpis | """Test _get_user_catalogs without pool"""
|
689 | 794c94e6 | Ilias Tsitsimpis | self._get_user_catalogs(False) |
690 | d071e6f1 | Ilias Tsitsimpis | |
691 | 794c94e6 | Ilias Tsitsimpis | def test_get_user_catalogs_pool(self): |
692 | 794c94e6 | Ilias Tsitsimpis | """Test _get_user_catalogs using pool"""
|
693 | 794c94e6 | Ilias Tsitsimpis | self._get_user_catalogs(True) |
694 | d071e6f1 | Ilias Tsitsimpis | |
695 | bc56a641 | Ilias Tsitsimpis | |
696 | 864eb390 | Ilias Tsitsimpis | class TestAuthenticate(unittest.TestCase): |
697 | f74d2b69 | Ilias Tsitsimpis | """Test cases for function getUserInfo"""
|
698 | 864eb390 | Ilias Tsitsimpis | |
699 | 864eb390 | Ilias Tsitsimpis | # ----------------------------------
|
700 | 864eb390 | Ilias Tsitsimpis | # Test the response we get if we don't have internet access
|
701 | 794c94e6 | Ilias Tsitsimpis | def test_offline(self): |
702 | 864eb390 | Ilias Tsitsimpis | """Test offline after 3 retries"""
|
703 | 864eb390 | Ilias Tsitsimpis | global token_1
|
704 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_offline]) |
705 | 864eb390 | Ilias Tsitsimpis | try:
|
706 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", retry=3) |
707 | 794c94e6 | Ilias Tsitsimpis | client.get_user_info(token_1) |
708 | 864eb390 | Ilias Tsitsimpis | except AstakosClientException:
|
709 | 864eb390 | Ilias Tsitsimpis | pass
|
710 | 864eb390 | Ilias Tsitsimpis | else:
|
711 | 864eb390 | Ilias Tsitsimpis | self.fail("Should have raised AstakosClientException exception") |
712 | 864eb390 | Ilias Tsitsimpis | |
713 | 864eb390 | Ilias Tsitsimpis | # ----------------------------------
|
714 | 864eb390 | Ilias Tsitsimpis | # Test the response we get for invalid token
|
715 | 794c94e6 | Ilias Tsitsimpis | def _invalid_token(self, pool): |
716 | 26498848 | Giorgos Korfiatis | token = "skaksaFlBl+fasFdaf24sx"
|
717 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
718 | 864eb390 | Ilias Tsitsimpis | try:
|
719 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", use_pool=pool)
|
720 | 794c94e6 | Ilias Tsitsimpis | client.get_user_info(token) |
721 | f93cc364 | Ilias Tsitsimpis | except Unauthorized:
|
722 | 8fe6475a | Ilias Tsitsimpis | pass
|
723 | 8fe6475a | Ilias Tsitsimpis | except Exception: |
724 | 8fe6475a | Ilias Tsitsimpis | self.fail("Should have returned 401 (Invalid X-Auth-Token)") |
725 | 864eb390 | Ilias Tsitsimpis | else:
|
726 | d4789cd4 | Ilias Tsitsimpis | self.fail("Should have returned 401 (Invalid X-Auth-Token)") |
727 | 864eb390 | Ilias Tsitsimpis | |
728 | 794c94e6 | Ilias Tsitsimpis | def test_invalid_token(self): |
729 | 794c94e6 | Ilias Tsitsimpis | """Test _invalid_token without pool"""
|
730 | 794c94e6 | Ilias Tsitsimpis | self._invalid_token(False) |
731 | 864eb390 | Ilias Tsitsimpis | |
732 | 794c94e6 | Ilias Tsitsimpis | def test_invalid_token_pool(self): |
733 | 794c94e6 | Ilias Tsitsimpis | """Test _invalid_token using pool"""
|
734 | 794c94e6 | Ilias Tsitsimpis | self._invalid_token(True) |
735 | 864eb390 | Ilias Tsitsimpis | |
736 | 864eb390 | Ilias Tsitsimpis | #- ---------------------------------
|
737 | 864eb390 | Ilias Tsitsimpis | # Test response for user 1
|
738 | 794c94e6 | Ilias Tsitsimpis | def _auth_user(self, token, user_info, usage, pool): |
739 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
740 | 864eb390 | Ilias Tsitsimpis | try:
|
741 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", use_pool=pool)
|
742 | 794c94e6 | Ilias Tsitsimpis | auth_info = client.get_user_info(token, usage=usage) |
743 | 864eb390 | Ilias Tsitsimpis | except:
|
744 | 864eb390 | Ilias Tsitsimpis | self.fail("Shouldn't raise an Exception") |
745 | 864eb390 | Ilias Tsitsimpis | self.assertEqual(user_info, auth_info)
|
746 | 864eb390 | Ilias Tsitsimpis | |
747 | 794c94e6 | Ilias Tsitsimpis | def test_auth_user_one(self): |
748 | 794c94e6 | Ilias Tsitsimpis | """Test _auth_user for User 1 without pool, without usage"""
|
749 | 864eb390 | Ilias Tsitsimpis | global token_1, user_1
|
750 | 864eb390 | Ilias Tsitsimpis | user_info = dict(user_1)
|
751 | 864eb390 | Ilias Tsitsimpis | del user_info['usage'] |
752 | 794c94e6 | Ilias Tsitsimpis | self._auth_user(token_1, user_info, False, False) |
753 | 864eb390 | Ilias Tsitsimpis | |
754 | 794c94e6 | Ilias Tsitsimpis | def test_auth_user_one_usage(self): |
755 | 794c94e6 | Ilias Tsitsimpis | """Test _auth_user for User 1 without pool, with usage"""
|
756 | 864eb390 | Ilias Tsitsimpis | global token_1, user_1
|
757 | 794c94e6 | Ilias Tsitsimpis | self._auth_user(token_1, user_1, True, False) |
758 | 864eb390 | Ilias Tsitsimpis | |
759 | 794c94e6 | Ilias Tsitsimpis | def test_auth_user_one_usage_pool(self): |
760 | 794c94e6 | Ilias Tsitsimpis | """Test _auth_user for User 1 using pool, with usage"""
|
761 | 864eb390 | Ilias Tsitsimpis | global token_1, user_1
|
762 | 794c94e6 | Ilias Tsitsimpis | self._auth_user(token_1, user_1, True, True) |
763 | 864eb390 | Ilias Tsitsimpis | |
764 | 794c94e6 | Ilias Tsitsimpis | def test_auth_user_two(self): |
765 | 794c94e6 | Ilias Tsitsimpis | """Test _auth_user for User 2 without pool, without usage"""
|
766 | 864eb390 | Ilias Tsitsimpis | global token_2, user_2
|
767 | 864eb390 | Ilias Tsitsimpis | user_info = dict(user_2)
|
768 | 864eb390 | Ilias Tsitsimpis | del user_info['usage'] |
769 | 794c94e6 | Ilias Tsitsimpis | self._auth_user(token_2, user_info, False, False) |
770 | 864eb390 | Ilias Tsitsimpis | |
771 | 794c94e6 | Ilias Tsitsimpis | def test_auth_user_two_usage(self): |
772 | 794c94e6 | Ilias Tsitsimpis | """Test _auth_user for User 2 without pool, with usage"""
|
773 | 864eb390 | Ilias Tsitsimpis | global token_2, user_2
|
774 | 794c94e6 | Ilias Tsitsimpis | self._auth_user(token_2, user_2, True, False) |
775 | 864eb390 | Ilias Tsitsimpis | |
776 | 794c94e6 | Ilias Tsitsimpis | def test_auth_user_two_usage_pool(self): |
777 | 794c94e6 | Ilias Tsitsimpis | """Test _auth_user for User 2 using pool, with usage"""
|
778 | 864eb390 | Ilias Tsitsimpis | global token_2, user_2
|
779 | 794c94e6 | Ilias Tsitsimpis | self._auth_user(token_2, user_2, True, True) |
780 | 864eb390 | Ilias Tsitsimpis | |
781 | 864eb390 | Ilias Tsitsimpis | # ----------------------------------
|
782 | 864eb390 | Ilias Tsitsimpis | # Test retry functionality
|
783 | 794c94e6 | Ilias Tsitsimpis | def test_offline_retry(self): |
784 | f74d2b69 | Ilias Tsitsimpis | """Test retry functionality for getUserInfo"""
|
785 | 864eb390 | Ilias Tsitsimpis | global token_1, user_1
|
786 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_offline, _request_offline, _request_ok]) |
787 | 864eb390 | Ilias Tsitsimpis | try:
|
788 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", retry=2) |
789 | 794c94e6 | Ilias Tsitsimpis | auth_info = client.get_user_info(token_1, usage=True)
|
790 | 864eb390 | Ilias Tsitsimpis | except:
|
791 | 864eb390 | Ilias Tsitsimpis | self.fail("Shouldn't raise an Exception") |
792 | 864eb390 | Ilias Tsitsimpis | self.assertEqual(user_1, auth_info)
|
793 | 454a1ad4 | Ilias Tsitsimpis | |
794 | 454a1ad4 | Ilias Tsitsimpis | |
795 | d4789cd4 | Ilias Tsitsimpis | class TestDisplayNames(unittest.TestCase): |
796 | d4789cd4 | Ilias Tsitsimpis | """Test cases for functions getDisplayNames/getDisplayName"""
|
797 | d4789cd4 | Ilias Tsitsimpis | |
798 | d4789cd4 | Ilias Tsitsimpis | # ----------------------------------
|
799 | d4789cd4 | Ilias Tsitsimpis | # Test the response we get for invalid token
|
800 | 794c94e6 | Ilias Tsitsimpis | def test_invalid_token(self): |
801 | d4789cd4 | Ilias Tsitsimpis | """Test the response we get for invalid token (without pool)"""
|
802 | d4789cd4 | Ilias Tsitsimpis | global user_1
|
803 | 26498848 | Giorgos Korfiatis | token = "skaksaFlBl+fasFdaf24sx"
|
804 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
805 | d4789cd4 | Ilias Tsitsimpis | try:
|
806 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
807 | 794c94e6 | Ilias Tsitsimpis | client.get_usernames(token, [user_1['uuid']])
|
808 | f93cc364 | Ilias Tsitsimpis | except Unauthorized:
|
809 | 8fe6475a | Ilias Tsitsimpis | pass
|
810 | 8fe6475a | Ilias Tsitsimpis | except Exception: |
811 | 8fe6475a | Ilias Tsitsimpis | self.fail("Should have returned 401 (Invalid X-Auth-Token)") |
812 | d4789cd4 | Ilias Tsitsimpis | else:
|
813 | d4789cd4 | Ilias Tsitsimpis | self.fail("Should have returned 401 (Invalid X-Auth-Token)") |
814 | d4789cd4 | Ilias Tsitsimpis | |
815 | d4789cd4 | Ilias Tsitsimpis | # ----------------------------------
|
816 | d4789cd4 | Ilias Tsitsimpis | # Get Info for both users
|
817 | 794c94e6 | Ilias Tsitsimpis | def test_usernames(self): |
818 | 794c94e6 | Ilias Tsitsimpis | """Test get_usernames with both users"""
|
819 | d4789cd4 | Ilias Tsitsimpis | global token_1, user_1, user_2
|
820 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
821 | d4789cd4 | Ilias Tsitsimpis | try:
|
822 | 98752f06 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
823 | 794c94e6 | Ilias Tsitsimpis | catalog = client.get_usernames( |
824 | 98752f06 | Ilias Tsitsimpis | token_1, [user_1['uuid'], user_2['uuid']]) |
825 | d4789cd4 | Ilias Tsitsimpis | except:
|
826 | d4789cd4 | Ilias Tsitsimpis | self.fail("Shouldn't raise an Exception") |
827 | d4789cd4 | Ilias Tsitsimpis | self.assertEqual(catalog[user_1['uuid']], user_1['username']) |
828 | d4789cd4 | Ilias Tsitsimpis | self.assertEqual(catalog[user_2['uuid']], user_2['username']) |
829 | d4789cd4 | Ilias Tsitsimpis | |
830 | d4789cd4 | Ilias Tsitsimpis | # ----------------------------------
|
831 | d4789cd4 | Ilias Tsitsimpis | # Get info for user 1
|
832 | 794c94e6 | Ilias Tsitsimpis | def test_username_user_one(self): |
833 | 794c94e6 | Ilias Tsitsimpis | """Test get_username for User One"""
|
834 | d4789cd4 | Ilias Tsitsimpis | global token_2, user_1
|
835 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_offline, _request_ok]) |
836 | d4789cd4 | Ilias Tsitsimpis | try:
|
837 | d4789cd4 | Ilias Tsitsimpis | client = AstakosClient( |
838 | 98752f06 | Ilias Tsitsimpis | "https://example.com", use_pool=True, retry=2) |
839 | 794c94e6 | Ilias Tsitsimpis | info = client.get_username(token_2, user_1['uuid'])
|
840 | d4789cd4 | Ilias Tsitsimpis | except:
|
841 | d4789cd4 | Ilias Tsitsimpis | self.fail("Shouldn't raise an Exception") |
842 | d4789cd4 | Ilias Tsitsimpis | self.assertEqual(info, user_1['username']) |
843 | d4789cd4 | Ilias Tsitsimpis | |
844 | 2377e7c2 | Ilias Tsitsimpis | # ----------------------------------
|
845 | 2377e7c2 | Ilias Tsitsimpis | # Get info with wrong uuid
|
846 | 794c94e6 | Ilias Tsitsimpis | def test_no_username(self): |
847 | 2377e7c2 | Ilias Tsitsimpis | global token_1
|
848 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
849 | 2377e7c2 | Ilias Tsitsimpis | try:
|
850 | 2377e7c2 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
851 | 794c94e6 | Ilias Tsitsimpis | client.get_username(token_1, "1234")
|
852 | 794c94e6 | Ilias Tsitsimpis | except NoUserName:
|
853 | 2377e7c2 | Ilias Tsitsimpis | pass
|
854 | 2377e7c2 | Ilias Tsitsimpis | except:
|
855 | 2377e7c2 | Ilias Tsitsimpis | self.fail("Should have raised NoDisplayName exception") |
856 | 2377e7c2 | Ilias Tsitsimpis | else:
|
857 | 2377e7c2 | Ilias Tsitsimpis | self.fail("Should have raised NoDisplayName exception") |
858 | 2377e7c2 | Ilias Tsitsimpis | |
859 | d4789cd4 | Ilias Tsitsimpis | |
860 | aaf0a42c | Ilias Tsitsimpis | class TestGetUUIDs(unittest.TestCase): |
861 | aaf0a42c | Ilias Tsitsimpis | """Test cases for functions getUUIDs/getUUID"""
|
862 | aaf0a42c | Ilias Tsitsimpis | |
863 | aaf0a42c | Ilias Tsitsimpis | # ----------------------------------
|
864 | aaf0a42c | Ilias Tsitsimpis | # Test the response we get for invalid token
|
865 | 794c94e6 | Ilias Tsitsimpis | def test_invalid_token(self): |
866 | aaf0a42c | Ilias Tsitsimpis | """Test the response we get for invalid token (using pool)"""
|
867 | aaf0a42c | Ilias Tsitsimpis | global user_1
|
868 | 26498848 | Giorgos Korfiatis | token = "skaksaFlBl+fasFdaf24sx"
|
869 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
870 | aaf0a42c | Ilias Tsitsimpis | try:
|
871 | aaf0a42c | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
872 | 794c94e6 | Ilias Tsitsimpis | client.get_uuids(token, [user_1['username']])
|
873 | f93cc364 | Ilias Tsitsimpis | except Unauthorized:
|
874 | 8fe6475a | Ilias Tsitsimpis | pass
|
875 | 8fe6475a | Ilias Tsitsimpis | except Exception: |
876 | 8fe6475a | Ilias Tsitsimpis | self.fail("Should have returned 401 (Invalid X-Auth-Token)") |
877 | aaf0a42c | Ilias Tsitsimpis | else:
|
878 | aaf0a42c | Ilias Tsitsimpis | self.fail("Should have returned 401 (Invalid X-Auth-Token)") |
879 | aaf0a42c | Ilias Tsitsimpis | |
880 | aaf0a42c | Ilias Tsitsimpis | # ----------------------------------
|
881 | aaf0a42c | Ilias Tsitsimpis | # Get info for both users
|
882 | 794c94e6 | Ilias Tsitsimpis | def test_uuids(self): |
883 | 794c94e6 | Ilias Tsitsimpis | """Test get_uuids with both users"""
|
884 | aaf0a42c | Ilias Tsitsimpis | global token_1, user_1, user_2
|
885 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
886 | aaf0a42c | Ilias Tsitsimpis | try:
|
887 | aaf0a42c | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
888 | 794c94e6 | Ilias Tsitsimpis | catalog = client.get_uuids( |
889 | aaf0a42c | Ilias Tsitsimpis | token_1, [user_1['username'], user_2['username']]) |
890 | aaf0a42c | Ilias Tsitsimpis | except:
|
891 | aaf0a42c | Ilias Tsitsimpis | self.fail("Shouldn't raise an Exception") |
892 | aaf0a42c | Ilias Tsitsimpis | self.assertEqual(catalog[user_1['username']], user_1['uuid']) |
893 | aaf0a42c | Ilias Tsitsimpis | self.assertEqual(catalog[user_2['username']], user_2['uuid']) |
894 | aaf0a42c | Ilias Tsitsimpis | |
895 | aaf0a42c | Ilias Tsitsimpis | # ----------------------------------
|
896 | aaf0a42c | Ilias Tsitsimpis | # Get uuid for user 2
|
897 | 794c94e6 | Ilias Tsitsimpis | def test_get_uuid_user_two(self): |
898 | 794c94e6 | Ilias Tsitsimpis | """Test get_uuid for User Two"""
|
899 | aaf0a42c | Ilias Tsitsimpis | global token_1, user_2
|
900 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_offline, _request_ok]) |
901 | aaf0a42c | Ilias Tsitsimpis | try:
|
902 | aaf0a42c | Ilias Tsitsimpis | client = AstakosClient("https://example.com", retry=1) |
903 | 794c94e6 | Ilias Tsitsimpis | info = client.get_uuid(token_2, user_1['username'])
|
904 | aaf0a42c | Ilias Tsitsimpis | except:
|
905 | aaf0a42c | Ilias Tsitsimpis | self.fail("Shouldn't raise an Exception") |
906 | aaf0a42c | Ilias Tsitsimpis | self.assertEqual(info, user_1['uuid']) |
907 | aaf0a42c | Ilias Tsitsimpis | |
908 | 2377e7c2 | Ilias Tsitsimpis | # ----------------------------------
|
909 | 2377e7c2 | Ilias Tsitsimpis | # Get uuid with wrong username
|
910 | 794c94e6 | Ilias Tsitsimpis | def test_no_uuid(self): |
911 | 2377e7c2 | Ilias Tsitsimpis | global token_1
|
912 | 794c94e6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
913 | 2377e7c2 | Ilias Tsitsimpis | try:
|
914 | 2377e7c2 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
915 | 794c94e6 | Ilias Tsitsimpis | client.get_uuid(token_1, "1234")
|
916 | 2377e7c2 | Ilias Tsitsimpis | except NoUUID:
|
917 | 2377e7c2 | Ilias Tsitsimpis | pass
|
918 | 2377e7c2 | Ilias Tsitsimpis | except:
|
919 | 2377e7c2 | Ilias Tsitsimpis | self.fail("Should have raised NoUUID exception") |
920 | 2377e7c2 | Ilias Tsitsimpis | else:
|
921 | 2377e7c2 | Ilias Tsitsimpis | self.fail("Should have raised NoUUID exception") |
922 | 2377e7c2 | Ilias Tsitsimpis | |
923 | aaf0a42c | Ilias Tsitsimpis | |
924 | c4644612 | Ilias Tsitsimpis | class TestResources(unittest.TestCase): |
925 | c4644612 | Ilias Tsitsimpis | """Test cases for function get_resources"""
|
926 | c4644612 | Ilias Tsitsimpis | |
927 | c4644612 | Ilias Tsitsimpis | # ----------------------------------
|
928 | c4644612 | Ilias Tsitsimpis | def test_get_resources(self): |
929 | baeb2ba5 | Ilias Tsitsimpis | """Test function call of get_resources"""
|
930 | c4644612 | Ilias Tsitsimpis | global resources
|
931 | c4644612 | Ilias Tsitsimpis | _mock_request([_request_offline, _request_ok]) |
932 | c4644612 | Ilias Tsitsimpis | try:
|
933 | c4644612 | Ilias Tsitsimpis | client = AstakosClient("https://example.com", retry=1) |
934 | c4644612 | Ilias Tsitsimpis | result = client.get_resources() |
935 | c4644612 | Ilias Tsitsimpis | except Exception as err: |
936 | c4644612 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
937 | c4644612 | Ilias Tsitsimpis | self.assertEqual(resources, result)
|
938 | c4644612 | Ilias Tsitsimpis | |
939 | c4644612 | Ilias Tsitsimpis | |
940 | baeb2ba5 | Ilias Tsitsimpis | class TestQuotas(unittest.TestCase): |
941 | baeb2ba5 | Ilias Tsitsimpis | """Test cases for function get_quotas"""
|
942 | baeb2ba5 | Ilias Tsitsimpis | |
943 | baeb2ba5 | Ilias Tsitsimpis | # ----------------------------------
|
944 | baeb2ba5 | Ilias Tsitsimpis | def test_get_quotas(self): |
945 | baeb2ba5 | Ilias Tsitsimpis | """Test function call of get_quotas"""
|
946 | baeb2ba5 | Ilias Tsitsimpis | global quotas, token_1
|
947 | baeb2ba5 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
948 | baeb2ba5 | Ilias Tsitsimpis | try:
|
949 | baeb2ba5 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
950 | baeb2ba5 | Ilias Tsitsimpis | result = client.get_quotas(token_1) |
951 | baeb2ba5 | Ilias Tsitsimpis | except Exception as err: |
952 | baeb2ba5 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
953 | baeb2ba5 | Ilias Tsitsimpis | self.assertEqual(quotas, result)
|
954 | baeb2ba5 | Ilias Tsitsimpis | |
955 | baeb2ba5 | Ilias Tsitsimpis | # -----------------------------------
|
956 | baeb2ba5 | Ilias Tsitsimpis | def test_get_quotas_unauthorized(self): |
957 | baeb2ba5 | Ilias Tsitsimpis | """Test function call of get_quotas with wrong token"""
|
958 | baeb2ba5 | Ilias Tsitsimpis | global token_2
|
959 | baeb2ba5 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
960 | baeb2ba5 | Ilias Tsitsimpis | try:
|
961 | baeb2ba5 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
962 | baeb2ba5 | Ilias Tsitsimpis | client.get_quotas(token_2) |
963 | baeb2ba5 | Ilias Tsitsimpis | except Unauthorized:
|
964 | baeb2ba5 | Ilias Tsitsimpis | pass
|
965 | baeb2ba5 | Ilias Tsitsimpis | except Exception as err: |
966 | baeb2ba5 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
967 | baeb2ba5 | Ilias Tsitsimpis | else:
|
968 | baeb2ba5 | Ilias Tsitsimpis | self.fail("Should have raised Unauthorized Exception") |
969 | baeb2ba5 | Ilias Tsitsimpis | |
970 | baeb2ba5 | Ilias Tsitsimpis | # ----------------------------------
|
971 | baeb2ba5 | Ilias Tsitsimpis | def test_get_quotas_without_token(self): |
972 | fd420756 | Ilias Tsitsimpis | """Test function call of get_quotas without token"""
|
973 | baeb2ba5 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
974 | baeb2ba5 | Ilias Tsitsimpis | try:
|
975 | baeb2ba5 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
976 | baeb2ba5 | Ilias Tsitsimpis | client.get_quotas(None)
|
977 | baeb2ba5 | Ilias Tsitsimpis | except Unauthorized:
|
978 | baeb2ba5 | Ilias Tsitsimpis | pass
|
979 | baeb2ba5 | Ilias Tsitsimpis | except Exception as err: |
980 | baeb2ba5 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
981 | baeb2ba5 | Ilias Tsitsimpis | else:
|
982 | baeb2ba5 | Ilias Tsitsimpis | self.fail("Should have raised Unauthorized Exception") |
983 | baeb2ba5 | Ilias Tsitsimpis | |
984 | baeb2ba5 | Ilias Tsitsimpis | |
985 | fd420756 | Ilias Tsitsimpis | class TestCommissions(unittest.TestCase): |
986 | b5008ef0 | Ilias Tsitsimpis | """Test cases for quota commissions"""
|
987 | fd420756 | Ilias Tsitsimpis | |
988 | fd420756 | Ilias Tsitsimpis | # ----------------------------------
|
989 | 7a0180ef | Ilias Tsitsimpis | def test_issue_commission(self): |
990 | 12eab714 | Ilias Tsitsimpis | """Test function call of issue_commission"""
|
991 | fd420756 | Ilias Tsitsimpis | global token_1, commission_request, commission_successful_reqsponse
|
992 | fd420756 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
993 | fd420756 | Ilias Tsitsimpis | try:
|
994 | fd420756 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
995 | fd420756 | Ilias Tsitsimpis | response = client.issue_commission(token_1, commission_request) |
996 | fd420756 | Ilias Tsitsimpis | except Exception as err: |
997 | fd420756 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
998 | fd420756 | Ilias Tsitsimpis | self.assertEqual(response, commission_successful_response['serial']) |
999 | fd420756 | Ilias Tsitsimpis | |
1000 | fd420756 | Ilias Tsitsimpis | # ----------------------------------
|
1001 | 7a0180ef | Ilias Tsitsimpis | def test_issue_commission_quota_limit(self): |
1002 | 12eab714 | Ilias Tsitsimpis | """Test function call of issue_commission with limit exceeded"""
|
1003 | fd420756 | Ilias Tsitsimpis | global token_1, commission_request, commission_failure_response
|
1004 | fd420756 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1005 | fd420756 | Ilias Tsitsimpis | new_request = dict(commission_request)
|
1006 | fd420756 | Ilias Tsitsimpis | new_request['provisions'][1]['quantity'] = 520000000 |
1007 | fd420756 | Ilias Tsitsimpis | try:
|
1008 | fd420756 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1009 | fd420756 | Ilias Tsitsimpis | client.issue_commission(token_1, new_request) |
1010 | fd420756 | Ilias Tsitsimpis | except QuotaLimit:
|
1011 | fd420756 | Ilias Tsitsimpis | pass
|
1012 | fd420756 | Ilias Tsitsimpis | except Exception as err: |
1013 | fd420756 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1014 | fd420756 | Ilias Tsitsimpis | else:
|
1015 | fd420756 | Ilias Tsitsimpis | self.fail("Should have raised QuotaLimit Exception") |
1016 | fd420756 | Ilias Tsitsimpis | |
1017 | 7a0180ef | Ilias Tsitsimpis | # ----------------------------------
|
1018 | 12eab714 | Ilias Tsitsimpis | def test_issue_one_commission(self): |
1019 | 12eab714 | Ilias Tsitsimpis | """Test function call of issue_one_commission"""
|
1020 | 12eab714 | Ilias Tsitsimpis | global token_1, commission_successful_response
|
1021 | 12eab714 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1022 | 12eab714 | Ilias Tsitsimpis | try:
|
1023 | 12eab714 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1024 | 12eab714 | Ilias Tsitsimpis | response = client.issue_one_commission( |
1025 | 12eab714 | Ilias Tsitsimpis | token_1, "c02f315b-7d84-45bc-a383-552a3f97d2ad",
|
1026 | 567f49a2 | Giorgos Korfiatis | "system", {"cyclades.vm": 1, "cyclades.ram": 30000}) |
1027 | 12eab714 | Ilias Tsitsimpis | except Exception as err: |
1028 | 12eab714 | Ilias Tsitsimpis | self.fail("Shouldn't have raised Exception %s" % err) |
1029 | 12eab714 | Ilias Tsitsimpis | self.assertEqual(response, commission_successful_response['serial']) |
1030 | 12eab714 | Ilias Tsitsimpis | |
1031 | 12eab714 | Ilias Tsitsimpis | # ----------------------------------
|
1032 | 7a0180ef | Ilias Tsitsimpis | def test_get_pending_commissions(self): |
1033 | 7a0180ef | Ilias Tsitsimpis | """Test function call of get_pending_commissions"""
|
1034 | 7a0180ef | Ilias Tsitsimpis | global token_1, pending_commissions
|
1035 | 7a0180ef | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1036 | 7a0180ef | Ilias Tsitsimpis | try:
|
1037 | 7a0180ef | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1038 | 7a0180ef | Ilias Tsitsimpis | response = client.get_pending_commissions(token_1) |
1039 | 7a0180ef | Ilias Tsitsimpis | except Exception as err: |
1040 | 7a0180ef | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1041 | 7a0180ef | Ilias Tsitsimpis | self.assertEqual(response, pending_commissions)
|
1042 | 7a0180ef | Ilias Tsitsimpis | |
1043 | 994f37b6 | Ilias Tsitsimpis | # ----------------------------------
|
1044 | 994f37b6 | Ilias Tsitsimpis | def test_get_commission_info(self): |
1045 | 994f37b6 | Ilias Tsitsimpis | """Test function call of get_commission_info"""
|
1046 | 994f37b6 | Ilias Tsitsimpis | global token_1, commission_description
|
1047 | 994f37b6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1048 | 994f37b6 | Ilias Tsitsimpis | try:
|
1049 | 8975f6f6 | Christos Stavrakakis | client = AstakosClient("https://example.com", use_pool=True, |
1050 | 8975f6f6 | Christos Stavrakakis | pool_size=2)
|
1051 | 994f37b6 | Ilias Tsitsimpis | response = client.get_commission_info(token_1, 57)
|
1052 | 994f37b6 | Ilias Tsitsimpis | except Exception as err: |
1053 | 994f37b6 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1054 | 994f37b6 | Ilias Tsitsimpis | self.assertEqual(response, commission_description)
|
1055 | 994f37b6 | Ilias Tsitsimpis | |
1056 | 994f37b6 | Ilias Tsitsimpis | # ----------------------------------
|
1057 | 994f37b6 | Ilias Tsitsimpis | def test_get_commission_info_not_found(self): |
1058 | 994f37b6 | Ilias Tsitsimpis | """Test function call of get_commission_info with invalid serial"""
|
1059 | 994f37b6 | Ilias Tsitsimpis | global token_1
|
1060 | 994f37b6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1061 | 994f37b6 | Ilias Tsitsimpis | try:
|
1062 | 994f37b6 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1063 | 994f37b6 | Ilias Tsitsimpis | client.get_commission_info(token_1, "57lala")
|
1064 | 994f37b6 | Ilias Tsitsimpis | except NotFound:
|
1065 | 994f37b6 | Ilias Tsitsimpis | pass
|
1066 | 994f37b6 | Ilias Tsitsimpis | except Exception as err: |
1067 | 994f37b6 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1068 | 994f37b6 | Ilias Tsitsimpis | else:
|
1069 | 994f37b6 | Ilias Tsitsimpis | self.fail("Should have raised NotFound") |
1070 | 994f37b6 | Ilias Tsitsimpis | |
1071 | 994f37b6 | Ilias Tsitsimpis | # ----------------------------------
|
1072 | 994f37b6 | Ilias Tsitsimpis | def test_get_commission_info_without_serial(self): |
1073 | 994f37b6 | Ilias Tsitsimpis | """Test function call of get_commission_info without serial"""
|
1074 | 994f37b6 | Ilias Tsitsimpis | global token_1
|
1075 | 994f37b6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1076 | 994f37b6 | Ilias Tsitsimpis | try:
|
1077 | 994f37b6 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1078 | 994f37b6 | Ilias Tsitsimpis | client.get_commission_info(token_1, None)
|
1079 | 994f37b6 | Ilias Tsitsimpis | except BadValue:
|
1080 | 994f37b6 | Ilias Tsitsimpis | pass
|
1081 | 994f37b6 | Ilias Tsitsimpis | except Exception as err: |
1082 | 994f37b6 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1083 | 994f37b6 | Ilias Tsitsimpis | else:
|
1084 | 994f37b6 | Ilias Tsitsimpis | self.fail("Should have raise BadValue") |
1085 | 994f37b6 | Ilias Tsitsimpis | |
1086 | 805e294c | Ilias Tsitsimpis | # ----------------------------------
|
1087 | b5008ef0 | Ilias Tsitsimpis | def test_commision_action(self): |
1088 | b5008ef0 | Ilias Tsitsimpis | """Test function call of commision_action with wrong action"""
|
1089 | 805e294c | Ilias Tsitsimpis | global token_1
|
1090 | 805e294c | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1091 | 805e294c | Ilias Tsitsimpis | try:
|
1092 | 805e294c | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1093 | b5008ef0 | Ilias Tsitsimpis | client.commission_action(token_1, 57, "lala") |
1094 | 805e294c | Ilias Tsitsimpis | except BadRequest:
|
1095 | 805e294c | Ilias Tsitsimpis | pass
|
1096 | 805e294c | Ilias Tsitsimpis | except Exception as err: |
1097 | 805e294c | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1098 | 805e294c | Ilias Tsitsimpis | else:
|
1099 | 805e294c | Ilias Tsitsimpis | self.fail("Should have raised BadRequest") |
1100 | 805e294c | Ilias Tsitsimpis | |
1101 | 805e294c | Ilias Tsitsimpis | # ----------------------------------
|
1102 | b5008ef0 | Ilias Tsitsimpis | def test_accept_commission(self): |
1103 | b5008ef0 | Ilias Tsitsimpis | """Test function call of accept_commission"""
|
1104 | 805e294c | Ilias Tsitsimpis | global token_1
|
1105 | 805e294c | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1106 | 805e294c | Ilias Tsitsimpis | try:
|
1107 | 805e294c | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1108 | b5008ef0 | Ilias Tsitsimpis | client.accept_commission(token_1, 57)
|
1109 | 805e294c | Ilias Tsitsimpis | except Exception as err: |
1110 | 805e294c | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1111 | 805e294c | Ilias Tsitsimpis | |
1112 | 805e294c | Ilias Tsitsimpis | # ----------------------------------
|
1113 | b5008ef0 | Ilias Tsitsimpis | def test_reject_commission(self): |
1114 | b5008ef0 | Ilias Tsitsimpis | """Test function call of reject_commission"""
|
1115 | 805e294c | Ilias Tsitsimpis | global token_1
|
1116 | 805e294c | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1117 | 805e294c | Ilias Tsitsimpis | try:
|
1118 | 805e294c | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1119 | b5008ef0 | Ilias Tsitsimpis | client.reject_commission(token_1, 57)
|
1120 | 805e294c | Ilias Tsitsimpis | except Exception as err: |
1121 | 805e294c | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1122 | 805e294c | Ilias Tsitsimpis | |
1123 | 7b7392a6 | Ilias Tsitsimpis | # ----------------------------------
|
1124 | 7b7392a6 | Ilias Tsitsimpis | def test_accept_commission_not_found(self): |
1125 | 7b7392a6 | Ilias Tsitsimpis | """Test function call of accept_commission with wrong serial"""
|
1126 | 7b7392a6 | Ilias Tsitsimpis | global token_1
|
1127 | 7b7392a6 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1128 | 7b7392a6 | Ilias Tsitsimpis | try:
|
1129 | 7b7392a6 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1130 | 7b7392a6 | Ilias Tsitsimpis | client.reject_commission(token_1, 20)
|
1131 | 7b7392a6 | Ilias Tsitsimpis | except NotFound:
|
1132 | 7b7392a6 | Ilias Tsitsimpis | pass
|
1133 | 7b7392a6 | Ilias Tsitsimpis | except Exception as err: |
1134 | 7b7392a6 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1135 | 7b7392a6 | Ilias Tsitsimpis | else:
|
1136 | 7b7392a6 | Ilias Tsitsimpis | self.fail("Should have raised NotFound") |
1137 | 7b7392a6 | Ilias Tsitsimpis | |
1138 | 81875157 | Ilias Tsitsimpis | # ----------------------------------
|
1139 | 81875157 | Ilias Tsitsimpis | def test_resolve_commissions(self): |
1140 | 81875157 | Ilias Tsitsimpis | """Test function call of resolve_commissions"""
|
1141 | 81875157 | Ilias Tsitsimpis | global token_1
|
1142 | 81875157 | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1143 | 81875157 | Ilias Tsitsimpis | try:
|
1144 | 81875157 | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1145 | 8975f6f6 | Christos Stavrakakis | result = client.resolve_commissions(token_1, [56, 57], |
1146 | 8975f6f6 | Christos Stavrakakis | [56, 58, 59]) |
1147 | 81875157 | Ilias Tsitsimpis | except Exception as err: |
1148 | 81875157 | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1149 | 81875157 | Ilias Tsitsimpis | self.assertEqual(result, resolve_commissions_rep)
|
1150 | 81875157 | Ilias Tsitsimpis | |
1151 | fd420756 | Ilias Tsitsimpis | |
1152 | 108be31f | Ilias Tsitsimpis | class TestEndPoints(unittest.TestCase): |
1153 | 108be31f | Ilias Tsitsimpis | """Test cases for endpoints requests"""
|
1154 | 108be31f | Ilias Tsitsimpis | |
1155 | 108be31f | Ilias Tsitsimpis | # ----------------------------------
|
1156 | 108be31f | Ilias Tsitsimpis | def test_get_endpoints(self): |
1157 | 108be31f | Ilias Tsitsimpis | """Test function call of get_endpoints"""
|
1158 | 25a04cdd | Ilias Tsitsimpis | global token_1, user_info_endpoints
|
1159 | 25a04cdd | Ilias Tsitsimpis | _mock_request([_request_ok]) |
1160 | 25a04cdd | Ilias Tsitsimpis | try:
|
1161 | 25a04cdd | Ilias Tsitsimpis | client = AstakosClient("https://example.com")
|
1162 | b173906e | Ilias Tsitsimpis | response = client.get_endpoints(token_1) |
1163 | 25a04cdd | Ilias Tsitsimpis | except Exception as err: |
1164 | 25a04cdd | Ilias Tsitsimpis | self.fail("Shouldn't raise Exception %s" % err) |
1165 | 25a04cdd | Ilias Tsitsimpis | self.assertEqual(response, user_info_endpoints)
|
1166 | 25a04cdd | Ilias Tsitsimpis | |
1167 | 108be31f | Ilias Tsitsimpis | |
1168 | bc56a641 | Ilias Tsitsimpis | # ----------------------------
|
1169 | bc56a641 | Ilias Tsitsimpis | # Run tests
|
1170 | bc56a641 | Ilias Tsitsimpis | if __name__ == "__main__": |
1171 | bc56a641 | Ilias Tsitsimpis | unittest.main() |