22import json
33from unittest import TestCase
44from me_external_provider_user_create import MeExternalProviderUserCreate
5- from unittest .mock import patch
5+ from unittest .mock import patch , MagicMock
66from tests_util import TestsUtil
77from record_not_found_error import RecordNotFoundError
88
@@ -56,9 +56,22 @@ def setUp(self):
5656 def tearDown (self ):
5757 TestsUtil .delete_all_tables (dynamodb )
5858
59+ @patch ('me_external_provider_user_create.UserUtil.delete_external_provider_id_cognito_user' ,
60+ MagicMock (return_value = True ))
61+ @patch ('me_external_provider_user_create.UserUtil.force_non_verified_phone' , MagicMock (return_value = None ))
62+ @patch ('me_external_provider_user_create.CryptoUtil' , MagicMock (return_value = 'password' ))
5963 def test_main_ok (self ):
60- with patch ('me_external_provider_user_create.UserUtil' ) as user_mock , \
61- patch ('me_external_provider_user_create.CryptoUtil' ) as crypto_mock :
64+ with patch ('me_external_provider_user_create.UserUtil.create_external_provider_user' ) as create_external_mock , \
65+ patch ('me_external_provider_user_create.UserUtil.get_cognito_user_info' ) as get_cognito_user_mock :
66+ create_external_mock .return_value = {
67+ 'AuthenticationResult' : {
68+ 'AccessToken' : 'aaaaa' ,
69+ 'IdToken' : 'bbbbb' ,
70+ 'RefreshToken' : 'ccccc'
71+ }
72+ }
73+ get_cognito_user_mock .side_effect = RecordNotFoundError ('Record Not Found' )
74+
6275 event = {
6376 'body' : {
6477 'user_id' : 'username01' ,
@@ -71,29 +84,8 @@ def test_main_ok(self):
7184 }
7285 }
7386 }
74-
7587 event ['body' ] = json .dumps (event ['body' ])
7688
77- user_mock .check_try_to_register_as_twitter_user .return_value = False
78- user_mock .check_try_to_register_as_line_user .return_value = False
79- user_mock .check_try_to_register_as_yahoo_user .return_value = False
80- user_mock .check_try_to_register_as_facebook_user .return_value = False
81- crypto_mock .decrypt_password .return_value = 'password'
82- user_mock .create_external_provider_user .return_value = {
83- 'AuthenticationResult' : {
84- 'AccessToken' : 'aaaaa' ,
85- 'IdToken' : 'bbbbb' ,
86- 'RefreshToken' : 'ccccc'
87- }
88- }
89-
90- user_mock .force_non_verified_phone .return_value = None
91- user_mock .add_user_id_to_external_provider_user .return_value = None
92- user_mock .delete_external_provider_id_cognito_user .return_value = True
93- user_mock .has_user_id .return_value = True
94- user_mock .add_user_profile .return_value = None
95- user_mock .get_cognito_user_info .side_effect = RecordNotFoundError ('Record Not Found' )
96-
9789 response = MeExternalProviderUserCreate (event = event , context = "" , dynamodb = dynamodb ).main ()
9890 self .assertEqual (response ['statusCode' ], 200 )
9991 self .assertEqual (
@@ -237,3 +229,22 @@ def test_invalid_yahoo_user_id(self):
237229
238230 response = MeExternalProviderUserCreate (event = event , context = "" , dynamodb = dynamodb ).main ()
239231 self .assertEqual (response ['statusCode' ], 400 )
232+
233+ def test_main_ng_not_target_user (self ):
234+ event = {
235+ 'body' : {
236+ 'user_id' : 'username01' ,
237+ },
238+ 'requestContext' : {
239+ 'authorizer' : {
240+ 'claims' : {
241+ 'cognito:username' : 'username01' ,
242+ }
243+ }
244+ }
245+ }
246+
247+ event ['body' ] = json .dumps (event ['body' ])
248+
249+ response = MeExternalProviderUserCreate (event = event , context = "" , dynamodb = dynamodb ).main ()
250+ self .assertEqual (response ['statusCode' ], 400 )
0 commit comments