Revision 274bcf7a kamaki/clients/test/astakos.py
b/kamaki/clients/test/astakos.py | ||
---|---|---|
31 | 31 |
# interpreted as representing official policies, either expressed |
32 | 32 |
# or implied, of GRNET S.A. |
33 | 33 |
|
34 |
from mock import Mock, patch
|
|
34 |
from mock import patch |
|
35 | 35 |
|
36 | 36 |
from unittest import TestCase |
37 | 37 |
from kamaki.clients.astakos import AstakosClient |
38 |
from json import dumps |
|
38 |
|
|
39 |
|
|
40 |
example = dict( |
|
41 |
name='Simple Name', |
|
42 |
username='User Full Name', |
|
43 |
auth_token_expires='1362583796000', |
|
44 |
auth_token_created='1359991796000', |
|
45 |
email=['user@example.gr'], |
|
46 |
id=42, |
|
47 |
uuid='aus3r-uu1d-f0r-73s71ng-as7ak0s') |
|
48 |
|
|
49 |
example0 = dict( |
|
50 |
name='Simple Name 0', |
|
51 |
username='User Full Name 0', |
|
52 |
auth_token_expires='1362583796001', |
|
53 |
auth_token_created='1359991796001', |
|
54 |
email=['user0@example.gr'], |
|
55 |
id=32, |
|
56 |
uuid='an07h2r-us3r-uu1d-f0r-as7ak0s') |
|
39 | 57 |
|
40 | 58 |
|
41 | 59 |
class Astakos(TestCase): |
42 | 60 |
|
43 | 61 |
class fakeResponse(object): |
44 |
json = dumps(dict( |
|
45 |
name='Simple Name', |
|
46 |
username='User Full Name', |
|
47 |
auth_token_expires='1362583796000', |
|
48 |
auth_token_created='1359991796000', |
|
49 |
email=['user@example.gr'], |
|
50 |
id=42, |
|
51 |
uuid='aus3r-uu1d-f0r-73s71ng-as7ak0s')) |
|
62 |
json = example |
|
52 | 63 |
headers = {} |
53 | 64 |
content = json |
54 | 65 |
status = None |
... | ... | |
57 | 68 |
def release(self): |
58 | 69 |
pass |
59 | 70 |
|
71 |
cached = False |
|
72 |
|
|
60 | 73 |
def setUp(self): |
61 | 74 |
self.url = 'https://astakos.example.com' |
62 | 75 |
self.token = 'ast@k0sT0k3n==' |
... | ... | |
65 | 78 |
self.C = KamakiHTTPConnection |
66 | 79 |
self.FR = self.fakeResponse |
67 | 80 |
|
68 |
def test_authenticate(self):
|
|
81 |
def _authenticate(self): |
|
69 | 82 |
with patch.object(self.C, 'perform_request', return_value=self.FR()): |
70 | 83 |
r = self.client.authenticate() |
71 |
for term in ( |
|
72 |
'name', |
|
73 |
'username', |
|
74 |
'auth_token_expires', |
|
75 |
'auth_token_created', |
|
76 |
'uuid', |
|
77 |
'id', |
|
78 |
'email'): |
|
79 |
self.assertTrue(term in r) |
|
80 |
|
|
81 |
""" |
|
82 |
def test_info(self): |
|
83 |
self._test_0020_info() |
|
84 |
self.cached = True |
|
85 |
return r |
|
84 | 86 |
|
85 |
def _test_0020_info(self): |
|
86 |
self.assertTrue(set([ |
|
87 |
'name', |
|
88 |
'username', |
|
89 |
'uuid']).issubset(self.client.info().keys())) |
|
87 |
def test_authenticate(self): |
|
88 |
r = self._authenticate() |
|
89 |
self.assertEqual(self.client.http_client.url, self.url) |
|
90 |
self.assertEqual(self.client.http_client.path, '/im/authenticate') |
|
91 |
for term, val in example.items(): |
|
92 |
self.assertTrue(term in r) |
|
93 |
self.assertEqual(val, r[term]) |
|
90 | 94 |
|
91 |
def test_get(self): |
|
92 |
self._test_0020_get() |
|
95 |
def test_info(self): |
|
96 |
if not self.cached: |
|
97 |
self._authenticate() |
|
98 |
return self.test_info() |
|
99 |
self.assertTrue(set( |
|
100 |
example.keys()).issubset(self.client.info().keys())) |
|
93 | 101 |
|
94 |
def _test_0020_get(self): |
|
95 |
for term in ('uuid', 'name', 'username'): |
|
96 |
self.assertEqual( |
|
97 |
self.client.term(term, self['astakos', 'token']), |
|
98 |
self['astakos', term]) |
|
99 |
self.assertTrue(self['astakos', 'email'] in self.client.term('email')) |
|
102 |
def test_get(self): |
|
103 |
if not self.cached: |
|
104 |
self._authenticate() |
|
105 |
return self.test_get() |
|
106 |
for term, val in example.items(): |
|
107 |
self.assertEqual(self.client.term(term, self.token), val) |
|
108 |
self.assertTrue(example['email'][0] in self.client.term('email')) |
|
100 | 109 |
|
101 | 110 |
def test_list(self): |
102 |
self.client.authenticate() |
|
103 |
self._test_0020_list() |
|
104 |
|
|
105 |
def _test_0020_list(self): |
|
106 |
terms = set(['name', 'username', 'uuid', 'email', 'auth_token']) |
|
107 |
uuid = 0 |
|
108 |
for r in self.client.list(): |
|
109 |
self.assertTrue(terms.issubset(r.keys())) |
|
110 |
self.assertTrue(uuid != r['uuid'] if uuid else True) |
|
111 |
uuid = r['uuid'] |
|
112 |
""" |
|
111 |
if not self.cached: |
|
112 |
self._authenticate |
|
113 |
with patch.object(self.FR, 'json', return_value=example0): |
|
114 |
self._authenticate() |
|
115 |
r = self.client.list() |
|
116 |
self.assertTrue(len(r) == 1) |
|
117 |
self.assertEqual(r[0]['auth_token'], self.token) |
Also available in: Unified diff