@@ -42,6 +42,40 @@ def test_extract_basic_auth(self):
42
42
self .assertIsNone (self .validator ._extract_basic_auth (self .request ))
43
43
self .request .headers = {'HTTP_AUTHORIZATION' : 'Dummy 123456' }
44
44
self .assertIsNone (self .validator ._extract_basic_auth (self .request ))
45
+ self .request .headers = {'HTTP_AUTHORIZATION' : 'Basic' }
46
+ self .assertIsNone (self .validator ._extract_basic_auth (self .request ))
47
+ self .request .headers = {'HTTP_AUTHORIZATION' : 'Basic 123456 789' }
48
+ self .assertEqual (self .validator ._extract_basic_auth (self .request ), '123456 789' )
49
+
50
+ def test_authenticate_basic_auth (self ):
51
+ self .request .encoding = 'utf-8'
52
+ # client_id:client_secret
53
+ self .request .headers = {'HTTP_AUTHORIZATION' : 'Basic Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=\n ' }
54
+ self .assertTrue (self .validator ._authenticate_basic_auth (self .request ))
55
+
56
+ def test_authenticate_basic_auth_wrong_client_id (self ):
57
+ self .request .encoding = 'utf-8'
58
+ # wrong_id:client_secret
59
+ self .request .headers = {'HTTP_AUTHORIZATION' : 'Basic d3JvbmdfaWQ6Y2xpZW50X3NlY3JldA==\n ' }
60
+ self .assertFalse (self .validator ._authenticate_basic_auth (self .request ))
61
+
62
+ def test_authenticate_basic_auth_wrong_client_secret (self ):
63
+ self .request .encoding = 'utf-8'
64
+ # client_id:wrong_secret
65
+ self .request .headers = {'HTTP_AUTHORIZATION' : 'Basic Y2xpZW50X2lkOndyb25nX3NlY3JldA==\n ' }
66
+ self .assertFalse (self .validator ._authenticate_basic_auth (self .request ))
67
+
68
+ def test_authenticate_basic_auth_not_b64_auth_string (self ):
69
+ self .request .encoding = 'utf-8'
70
+ # Can't b64decode
71
+ self .request .headers = {'HTTP_AUTHORIZATION' : 'Basic not_base64' }
72
+ self .assertFalse (self .validator ._authenticate_basic_auth (self .request ))
73
+
74
+ def test_authenticate_basic_auth_not_utf8 (self ):
75
+ self .request .encoding = 'utf-8'
76
+ # b64decode('test') will become b'\xb5\xeb-', it can't be decoded as utf-8
77
+ self .request .headers = {'HTTP_AUTHORIZATION' : 'Basic test' }
78
+ self .assertFalse (self .validator ._authenticate_basic_auth (self .request ))
45
79
46
80
def test_authenticate_client_id (self ):
47
81
self .assertTrue (self .validator .authenticate_client_id ('client_id' , self .request ))
0 commit comments