Skip to content

Commit ea4c20c

Browse files
author
Massimiliano Pippi
committed
added tests for oauth2 validator
1 parent 241c8a5 commit ea4c20c

File tree

2 files changed

+65
-2
lines changed

2 files changed

+65
-2
lines changed

oauth2_provider/tests/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,5 @@
1111
from .test_application_views import *
1212
from .test_decorators import *
1313
from .test_oauth2_backends import *
14-
15-
from .test_auth_backends import *
14+
from .test_auth_backends import *
15+
from .test_oauth2_validators import *
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
from django.test import TestCase
2+
from django.contrib.auth import get_user_model
3+
4+
import mock
5+
6+
from ..oauth2_validators import OAuth2Validator
7+
from ..models import get_application_model
8+
9+
UserModel = get_user_model()
10+
AppModel = get_application_model()
11+
12+
13+
class TestOAuth2Validator(TestCase):
14+
def setUp(self):
15+
self.user = UserModel.objects.create_user("user", "[email protected]", "123456")
16+
self.request = mock.MagicMock()
17+
self.validator = OAuth2Validator()
18+
self.application = AppModel.objects.create(
19+
client_id='client_id', client_secret='client_secret', user=self.user,
20+
client_type=AppModel.CLIENT_PUBLIC, authorization_grant_type=AppModel.GRANT_PASSWORD)
21+
22+
def tearDown(self):
23+
self.application.delete()
24+
25+
def test_authenticate_request_body(self):
26+
self.request.client_id = 'client_id'
27+
self.request.client_secret = ''
28+
self.assertFalse(self.validator._authenticate_request_body(self.request))
29+
30+
self.request.client_secret = 'wrong_client_secret'
31+
self.assertFalse(self.validator._authenticate_request_body(self.request))
32+
33+
self.request.client_secret = 'client_secret'
34+
self.assertTrue(self.validator._authenticate_request_body(self.request))
35+
36+
def test_extract_basic_auth(self):
37+
self.request.headers = {'HTTP_AUTHORIZATION': 'Basic 123456'}
38+
self.assertEqual(self.validator._extract_basic_auth(self.request), '123456')
39+
self.request.headers = {}
40+
self.assertIsNone(self.validator._extract_basic_auth(self.request))
41+
self.request.headers = {'HTTP_AUTHORIZATION': 'Dummy 123456'}
42+
self.assertIsNone(self.validator._extract_basic_auth(self.request))
43+
44+
def test_authenticate_client_id(self):
45+
self.assertTrue(self.validator.authenticate_client_id('client_id', self.request))
46+
self.application.client_type = AppModel.CLIENT_CONFIDENTIAL
47+
self.application.save()
48+
self.assertFalse(self.validator.authenticate_client_id('client_id', self.request))
49+
self.assertFalse(self.validator.authenticate_client_id('fake_client_id', self.request))
50+
51+
def test_client_authentication_required(self):
52+
self.request.headers = {'HTTP_AUTHORIZATION': 'Basic 123456'}
53+
self.assertTrue(self.validator.client_authentication_required(self.request))
54+
self.request.headers = {}
55+
self.request.client_id = 'client_id'
56+
self.request.client_secret = 'client_secret'
57+
self.assertTrue(self.validator.client_authentication_required(self.request))
58+
self.request.client_secret = ''
59+
self.assertFalse(self.validator.client_authentication_required(self.request))
60+
self.application.client_type = AppModel.CLIENT_CONFIDENTIAL
61+
self.application.save()
62+
self.request.client = ''
63+
self.assertTrue(self.validator.client_authentication_required(self.request))

0 commit comments

Comments
 (0)