@@ -872,6 +872,77 @@ def test_process_with_unique_access_token_not_found(self):
872
872
self .assertDictEqual (expected_response_body ,
873
873
json .loads (response_result .body ))
874
874
875
+ def test_process_with_unique_access_token_different_scope (self ):
876
+ access_token_data = {"client_id" : "myclient" ,
877
+ "grant_type" : "authorization_code" ,
878
+ "token" : "xyz890" , "data" : {}, "expires_at" : 1200 ,
879
+ "refresh_token" : "mno789" , "scopes" : ["foo" , "bar" ],
880
+ "user_id" : 123 }
881
+ access_token = AccessToken (** access_token_data )
882
+ token_data = {"access_token" : "abc123" , "token_type" : "Bearer" ,
883
+ "refresh_token" : "def456" , "expires_in" : 1000 }
884
+ expected_response_body = copy (token_data )
885
+ expected_response_body ["scope" ] = "bar baz"
886
+
887
+ response = Response ()
888
+
889
+ access_token_store_mock = Mock (spec = AccessTokenStore )
890
+ access_token_store_mock .fetch_existing_token_of_user .return_value = access_token
891
+
892
+ token_generator_mock = Mock (spec = TokenGenerator )
893
+ token_generator_mock .create_access_token_data .return_value = token_data
894
+
895
+ handler = AuthorizationCodeTokenHandler (
896
+ access_token_store = access_token_store_mock ,
897
+ auth_token_store = Mock (spec = AuthCodeStore ),
898
+ client_store = Mock (spec = ClientStore ),
899
+ token_generator = token_generator_mock )
900
+ handler .client_id = access_token_data ["client_id" ]
901
+ handler .data = {}
902
+ handler .unique_token = True
903
+ handler .user_id = 123
904
+ handler .scopes = ["bar" , "baz" ]
905
+
906
+ response_result = handler .process (Mock (), response , {})
907
+ self .assertDictEqual (expected_response_body ,
908
+ json .loads (response_result .body ))
909
+
910
+ @patch ("time.time" , mock_time )
911
+ def test_process_with_unique_access_token_expired_token (self ):
912
+ access_token_data = {"client_id" : "myclient" ,
913
+ "grant_type" : "authorization_code" ,
914
+ "token" : "xyz890" , "data" : {}, "expires_at" : 300 ,
915
+ "refresh_token" : "mno789" , "scopes" : ["foo" , "bar" ],
916
+ "user_id" : 123 }
917
+ access_token = AccessToken (** access_token_data )
918
+ token_data = {"access_token" : "abc123" , "token_type" : "Bearer" ,
919
+ "refresh_token" : "def456" , "expires_in" : 1000 }
920
+ expected_response_body = copy (token_data )
921
+ expected_response_body ["scope" ] = "foo bar"
922
+
923
+ response = Response ()
924
+
925
+ access_token_store_mock = Mock (spec = AccessTokenStore )
926
+ access_token_store_mock .fetch_existing_token_of_user .return_value = access_token
927
+
928
+ token_generator_mock = Mock (spec = TokenGenerator )
929
+ token_generator_mock .create_access_token_data .return_value = token_data
930
+
931
+ handler = AuthorizationCodeTokenHandler (
932
+ access_token_store = access_token_store_mock ,
933
+ auth_token_store = Mock (spec = AuthCodeStore ),
934
+ client_store = Mock (spec = ClientStore ),
935
+ token_generator = token_generator_mock )
936
+ handler .client_id = access_token_data ["client_id" ]
937
+ handler .data = {}
938
+ handler .unique_token = True
939
+ handler .user_id = 123
940
+ handler .scopes = ["foo" , "bar" ]
941
+
942
+ response_result = handler .process (Mock (), response , {})
943
+ self .assertDictEqual (expected_response_body ,
944
+ json .loads (response_result .body ))
945
+
875
946
def test_process_with_unique_access_token_no_user_id (self ):
876
947
handler = AuthorizationCodeTokenHandler (
877
948
access_token_store = Mock (spec = AccessTokenStore ),
0 commit comments