|
1 | 1 | from __future__ import unicode_literals
|
2 | 2 |
|
| 3 | +import mock |
| 4 | + |
3 | 5 | from django.test import TestCase, RequestFactory
|
4 | 6 | from django.core.urlresolvers import reverse
|
5 | 7 |
|
6 | 8 | from ..compat import urlparse, parse_qs, urlencode, get_user_model
|
7 | 9 | from ..models import get_application_model
|
8 | 10 | from ..settings import oauth2_settings
|
9 |
| -from ..views import ProtectedResourceView |
| 11 | +from ..views import ProtectedResourceView, AuthorizationView |
10 | 12 |
|
11 | 13 |
|
12 | 14 | Application = get_application_model()
|
@@ -140,6 +142,29 @@ def test_post_auth_allow(self):
|
140 | 142 | self.assertIn('access_token=', response['Location'])
|
141 | 143 | self.assertIn('state=random_state_string', response['Location'])
|
142 | 144 |
|
| 145 | + @mock.patch('oauth2_provider.views.base.AuthorizationView.skip_authorization_completely', True) |
| 146 | + def test_skip_authorization_completely(self): |
| 147 | + """ |
| 148 | + If skip_authorization_completely = True, should skip the authorization page. |
| 149 | + """ |
| 150 | + self.client.login(username="test_user", password="123456") |
| 151 | + |
| 152 | + query_string = urlencode({ |
| 153 | + 'client_id': self.application.client_id, |
| 154 | + 'response_type': 'token', |
| 155 | + 'state': 'random_state_string', |
| 156 | + 'scope': 'read write', |
| 157 | + 'redirect_uri': 'http://example.it', |
| 158 | + }) |
| 159 | + |
| 160 | + url = "{url}?{qs}".format(url=reverse('oauth2_provider:authorize'), qs=query_string) |
| 161 | + |
| 162 | + response = self.client.get(url) |
| 163 | + self.assertEqual(response.status_code, 302) |
| 164 | + self.assertIn('http://example.it#', response['Location']) |
| 165 | + self.assertIn('access_token=', response['Location']) |
| 166 | + self.assertIn('state=random_state_string', response['Location']) |
| 167 | + |
143 | 168 | def test_token_post_auth_deny(self):
|
144 | 169 | """
|
145 | 170 | Test error when resource owner deny access
|
|
0 commit comments