@@ -151,6 +151,31 @@ def test_revoke_refresh_token(self):
151
151
self .assertIsNotNone (refresh_token .revoked )
152
152
self .assertFalse (AccessToken .objects .filter (id = rtok .access_token .id ).exists ())
153
153
154
+ def test_revoke_refresh_token_with_revoked_access_token (self ):
155
+ tok = AccessToken .objects .create (
156
+ user = self .test_user , token = "1234567890" ,
157
+ application = self .application ,
158
+ expires = timezone .now () + datetime .timedelta (days = 1 ),
159
+ scope = "read write"
160
+ )
161
+ rtok = RefreshToken .objects .create (
162
+ user = self .test_user , token = "999999999" ,
163
+ application = self .application , access_token = tok
164
+ )
165
+ for token in (tok .token , rtok .token ):
166
+ query_string = urlencode ({
167
+ "client_id" : self .application .client_id ,
168
+ "client_secret" : self .application .client_secret ,
169
+ "token" : token ,
170
+ })
171
+ url = "{url}?{qs}" .format (url = reverse ("oauth2_provider:revoke-token" ), qs = query_string )
172
+ response = self .client .post (url )
173
+ self .assertEqual (response .status_code , 200 )
174
+
175
+ self .assertFalse (AccessToken .objects .filter (id = tok .id ).exists ())
176
+ refresh_token = RefreshToken .objects .filter (id = rtok .id ).first ()
177
+ self .assertIsNotNone (refresh_token .revoked )
178
+
154
179
def test_revoke_token_with_wrong_hint (self ):
155
180
"""
156
181
From the revocation rfc, `Section 4.1.2`_ :
0 commit comments