def test_validation_required_params(self): required_params = ['name', 'application_type', 'redirect_urls'] for param in required_params: params = { 'body': { 'name': 'あ' * 80, 'description': 'A' * 180, 'application_type': 'WEB', 'redirect_urls': [ 'http://example.com/1', 'http://example.com/2', 'http://example.com/3', 'http://example.com/4', 'http://example.com/5' ] }, 'requestContext': { 'authorizer': { 'claims': { 'cognito:username': '******', 'phone_number_verified': 'true', 'email_verified': 'true' } } } } del params['body'][param] params['body'] = json.dumps(params['body']) response = MeApplicationsCreate(params, {}).main() logging.fatal(response) self.assertEqual(response['statusCode'], 400)
def test_validation_empty_description_ok(self): params = { 'body': { 'name': 'あ' * 80, 'application_type': 'WEB', 'redirect_urls': ['http://example.com'] }, 'requestContext': { 'authorizer': { 'claims': { 'cognito:username': '******', 'phone_number_verified': 'true', 'email_verified': 'true' } } } } params['body'] = json.dumps(params['body']) responses.add(responses.POST, settings.AUTHLETE_CLIENT_ENDPOINT + '/create', json={"developer": "matsumatsu20"}, status=200) response = MeApplicationsCreate(params, {}).main() self.assertEqual(response['statusCode'], 200)
def test_validation_redirect_urls_invalid_type(self): base_url = 'http://example.com/' invalid_types = [ 'hogefugapiyo', # URLの形式がおかしいパターン base_url + 'A' * (201 - len(base_url)) # URLが200文字以上になるパターン ] for type in invalid_types: params = { 'body': { 'name': 'あ' * 80, 'description': 'A' * 180, 'application_type': 'WEB', 'redirect_urls': [type] }, 'requestContext': { 'authorizer': { 'claims': { 'cognito:username': '******', 'phone_number_verified': 'true', 'email_verified': 'true' } } } } params['body'] = json.dumps(params['body']) response = MeApplicationsCreate(params, {}).main() logging.fatal(response) self.assertEqual(response['statusCode'], 400)
def test_validation_redirect_urls_invalid_size(self): invalid_size = [ 'http://example.com/1', 'http://example.com/2', 'http://example.com/3', 'http://example.com/4', 'http://example.com/5', 'http://example.com/6' ] params = { 'body': { 'name': 'あ' * 80, 'description': 'A' * 180, 'application_type': 'WEB', 'redirect_urls': invalid_size }, 'requestContext': { 'authorizer': { 'claims': { 'cognito:username': '******', 'phone_number_verified': 'true', 'email_verified': 'true' } } } } params['body'] = json.dumps(params['body']) response = MeApplicationsCreate(params, {}).main() self.assertEqual(response['statusCode'], 400)
def test_validation_application_type_with_invalid_type(self): invalid_name = ['AAA', 10] for name in invalid_name: params = { 'body': { 'name': 'あ' * 80, 'description': 'A' * 180, 'application_type': name, 'redirect_urls': ['http://example.com'] }, 'requestContext': { 'authorizer': { 'claims': { 'cognito:username': '******', 'phone_number_verified': 'true', 'email_verified': 'true' } } } } params['body'] = json.dumps(params['body']) response = MeApplicationsCreate(params, {}).main() self.assertEqual(response['statusCode'], 400)
def test_main_ok_type_native(self): params = { 'body': { 'name': 'あ' * 80, 'description': 'A' * 180, 'application_type': 'NATIVE', 'redirect_urls': [ 'http://example.com/1', 'http://example.com/2', 'http://example.com/3', 'http://example.com/4', 'http://example.com/5' ] }, 'requestContext': { 'authorizer': { 'claims': { 'cognito:username': '******', 'phone_number_verified': 'true', 'email_verified': 'true' } } } } params['body'] = json.dumps(params['body']) responses.add(responses.POST, settings.AUTHLETE_CLIENT_ENDPOINT + '/create', json={"developer": "matsumatsu20"}, status=200) response = MeApplicationsCreate(params, {}).main() logging.fatal(response) self.assertEqual(response['statusCode'], 200) self.assertEqual(json.loads(response['body']), {"developer": "matsumatsu20"}) self.assertEqual( 'PUBLIC', json.loads(responses.calls[0].request.body).get('clientType')) self.assertEqual( 'NONE', json.loads(responses.calls[0].request.body).get('tokenAuthMethod'))
def test_main_ng_authlete_api_response_400(self): params = { 'body': { 'name': 'あ' * 80, 'description': 'A' * 180, 'application_type': 'NATIVE', 'redirect_urls': ['http://example.com/1'] }, 'requestContext': { 'authorizer': { 'claims': { 'cognito:username': '******', 'phone_number_verified': 'true', 'email_verified': 'true' } } } } params['body'] = json.dumps(params['body']) # 400 が返却されるように mock 化 responses.add(responses.POST, settings.AUTHLETE_CLIENT_ENDPOINT + '/create', json={ "resultCode": "A031208", "resultMessage": "error_message" }, status=400) response = MeApplicationsCreate(params, {}).main() logging.fatal(response) self.assertEqual(response['statusCode'], 400) self.assertEqual(json.loads(response['body']), { "message": "Invalid parameter: Please check the input parameters" })
def lambda_handler(event, context): me_applications_create = MeApplicationsCreate(event=event, context=context) return me_applications_create.main()