Revision e28a4841 snf-astakos-app/astakos/oa2/tests/djangobackend.py
b/snf-astakos-app/astakos/oa2/tests/djangobackend.py | ||
---|---|---|
10 | 10 |
from django.core.urlresolvers import reverse |
11 | 11 |
from django.contrib.auth.models import User |
12 | 12 |
|
13 |
from astakos.oa2.models import Client, RedirectUrl, AuthorizationCode
|
|
13 |
from astakos.oa2.models import Client, AuthorizationCode |
|
14 | 14 |
|
15 | 15 |
|
16 | 16 |
ParsedURL = namedtuple('ParsedURL', ['host', 'scheme', 'path', 'params', |
... | ... | |
120 | 120 |
params.update(urlparams) |
121 | 121 |
self.set_auth_headers(kwargs) |
122 | 122 |
if 'reject' in params: |
123 |
self.post(self.get_url(self.auth_url), data=params) |
|
123 |
return self.post(self.get_url(self.auth_url), data=params, |
|
124 |
**kwargs) |
|
124 | 125 |
return self.get(self.get_url(self.auth_url, **params), *args, **kwargs) |
125 | 126 |
|
126 | 127 |
def set_auth_headers(self, params): |
128 |
print 'self.credentials:', self.credentials |
|
127 | 129 |
if not self.credentials: |
128 | 130 |
return |
129 | 131 |
credentials = base64.encodestring('%s:%s' % self.credentials).strip() |
... | ... | |
145 | 147 |
baseurl = reverse('oa2_authenticate').replace('/auth', '/') |
146 | 148 |
self.client = OA2Client(baseurl) |
147 | 149 |
client1 = Client.objects.create(identifier="client1", secret="secret") |
150 |
self.client1_redirect_uri = "https://server.com/handle_code" |
|
151 |
client1.redirecturl_set.create(url=self.client1_redirect_uri) |
|
152 |
|
|
148 | 153 |
client2 = Client.objects.create(identifier="client2", type='public') |
149 | 154 |
self.client2_redirect_uri = "https://server2.com/handle_code" |
150 | 155 |
client2.redirecturl_set.create(url=self.client2_redirect_uri) |
151 |
self.client1_redirect_uri = "https://server.com/handle_code" |
|
152 |
client1.redirecturl_set.create(url=self.client1_redirect_uri) |
|
156 |
|
|
157 |
client3 = Client.objects.create(identifier="client3", secret='secret', |
|
158 |
is_trusted=True) |
|
159 |
self.client3_redirect_uri = "https://server3.com/handle_code" |
|
160 |
client3.redirecturl_set.create(url=self.client3_redirect_uri) |
|
153 | 161 |
|
154 | 162 |
u = User.objects.create(username="user@synnefo.org") |
155 | 163 |
u.set_password("password") |
... | ... | |
160 | 168 |
self.assertEqual(r.status_code, 400) |
161 | 169 |
self.assertCount(AuthorizationCode, 0) |
162 | 170 |
|
163 |
# no auth header, client is confidential |
|
164 |
r = self.client.authorize_code('client1') |
|
165 |
self.assertEqual(r.status_code, 400) |
|
166 |
self.assertCount(AuthorizationCode, 0) |
|
167 |
|
|
168 |
# no redirect_uri |
|
169 |
#self.client.credentials = ('client1', 'secret') |
|
170 |
#r = self.client.authorize_code('client1') |
|
171 |
#self.assertEqual(r.status_code, 400) |
|
172 |
#self.assertCount(AuthorizationCode, 0) |
|
171 |
# # no auth header, client is confidential |
|
172 |
# r = self.client.authorize_code('client1') |
|
173 |
# self.assertEqual(r.status_code, 400) |
|
174 |
# self.assertCount(AuthorizationCode, 0) |
|
173 | 175 |
|
174 | 176 |
# mixed up credentials/client_id's |
175 | 177 |
self.client.set_credentials('client1', 'secret') |
... | ... | |
182 | 184 |
self.assertEqual(r.status_code, 400) |
183 | 185 |
self.assertCount(AuthorizationCode, 0) |
184 | 186 |
|
185 |
self.client.set_credentials() |
|
186 |
r = self.client.authorize_code('client1') |
|
187 |
self.assertEqual(r.status_code, 400) |
|
188 |
self.assertCount(AuthorizationCode, 0) |
|
187 |
# self.client.set_credentials()
|
|
188 |
# r = self.client.authorize_code('client1')
|
|
189 |
# self.assertEqual(r.status_code, 400)
|
|
190 |
# self.assertCount(AuthorizationCode, 0)
|
|
189 | 191 |
|
190 | 192 |
# valid request |
191 | 193 |
params = {'redirect_uri': self.client1_redirect_uri, |
... | ... | |
193 | 195 |
self.client.set_credentials('client1', 'secret') |
194 | 196 |
r = self.client.authorize_code('client1', urlparams=params) |
195 | 197 |
self.assertEqual(r.status_code, 302) |
198 |
self.assertTrue('Location' in r) |
|
199 |
p = urlparse.urlparse(r['Location']) |
|
200 |
self.assertEqual(p.netloc, 'testserver:80') |
|
201 |
self.assertEqual(p.path, reverse('login')) |
|
196 | 202 |
|
197 |
self.client.set_credentials() |
|
203 |
self.client.set_credentials('client1', 'secret')
|
|
198 | 204 |
self.client.login(username="user@synnefo.org", password="password") |
199 | 205 |
r = self.client.authorize_code('client1', urlparams=params) |
200 |
print r |
|
201 | 206 |
self.assertEqual(r.status_code, 200) |
202 | 207 |
|
203 | 208 |
r = self.client.authorize_code('client1', urlparams=params, |
... | ... | |
219 | 224 |
self.assertCount(AuthorizationCode, 2) |
220 | 225 |
|
221 | 226 |
code1 = AuthorizationCode.objects.get(code=redirect1.params['code'][0]) |
222 |
self.assertEqual(code1.state, '') |
|
227 |
#self.assertEqual(code1.state, '') |
|
228 |
self.assertEqual(code1.state, None) |
|
223 | 229 |
self.assertEqual(code1.redirect_uri, self.client1_redirect_uri) |
224 | 230 |
|
225 | 231 |
code2 = AuthorizationCode.objects.get(code=redirect2.params['code'][0]) |
Also available in: Unified diff