1 # Copyright 2013 GRNET S.A. All rights reserved.
3 # Redistribution and use in source and binary forms, with or
4 # without modification, are permitted provided that the following
7 # 1. Redistributions of source code must retain the above
8 # copyright notice, this list of conditions and the following
11 # 2. Redistributions in binary form must reproduce the above
12 # copyright notice, this list of conditions and the following
13 # disclaimer in the documentation and/or other materials
14 # provided with the distribution.
16 # THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 # OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 # USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 # AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 # POSSIBILITY OF SUCH DAMAGE.
29 # The views and conclusions contained in the software and
30 # documentation are those of the authors and should not be
31 # interpreted as representing official policies, either expressed
32 # or implied, of GRNET S.A.
34 from mock import patch
36 from unittest import TestCase
37 from kamaki.clients.astakos import AstakosClient
42 username='User Full Name',
43 auth_token_expires='1362583796000',
44 auth_token_created='1359991796000',
45 email=['user@example.gr'],
47 uuid='aus3r-uu1d-f0r-73s71ng-as7ak0s')
51 username='User Full Name 0',
52 auth_token_expires='1362583796001',
53 auth_token_created='1359991796001',
54 email=['user0@example.gr'],
56 uuid='an07h2r-us3r-uu1d-f0r-as7ak0s')
69 khttp = 'kamaki.clients.connection.kamakicon.KamakiHTTPConnection'
72 class Astakos(TestCase):
77 self.url = 'https://astakos.example.com'
78 self.token = 'ast@k0sT0k3n=='
79 self.client = AstakosClient(self.url, self.token)
84 @patch('%s.perform_request' % khttp, return_value=FR())
85 def _authenticate(self, PR):
86 r = self.client.authenticate()
90 def test_authenticate(self):
91 r = self._authenticate()
92 self.assertEqual(self.client.http_client.url, self.url)
93 self.assertEqual(self.client.http_client.path, '/im/authenticate')
94 for term, val in example.items():
95 self.assertTrue(term in r)
96 self.assertEqual(val, r[term])
101 return self.test_info()
103 example.keys()).issubset(self.client.info().keys()))
108 return self.test_get()
109 for term, val in example.items():
110 self.assertEqual(self.client.term(term, self.token), val)
111 self.assertTrue(example['email'][0] in self.client.term('email'))
118 r = self.client.list()
119 self.assertTrue(len(r) == 1)
120 self.assertEqual(r[0]['auth_token'], self.token)