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