def build(self): app = Chalice(self.app_name) for name in self.given: def foo(event, context): return {} foo.__name__ = name app.lambda_function(name)(foo) user_provided_params = { 'chalice_app': app, 'app_name': self.app_name, 'project_dir': '.', } lambda_functions = {} for key, value in self.given.items(): lambda_functions[key] = value config_from_disk = { 'stages': { 'dev': { 'lambda_functions': lambda_functions, } } } config = Config(chalice_stage='dev', user_provided_params=user_provided_params, config_from_disk=config_from_disk) return app, config
def __init__(self, app_name="Domovoi", configure_logs=True): Chalice.__init__(self, app_name=app_name, configure_logs=configure_logs) self.pure_lambda_functions = [ LambdaFunction(self, name=app_name, handler_string="app.app") ]
def test_trailing_slash_routes_result_in_error(): app = Chalice('appname') app.routes = {'/trailing-slash/': None} config = { 'chalice_app': app, } with pytest.raises(ValueError): validate_configuration(config)
def sample_app_lambda_only(): app = Chalice('lambda_only') @app.lambda_function() def myfunction(event, context): pass return app
def sample_kinesis_event_app(): app = Chalice('kinesis-event') @app.on_kinesis_record(stream='mystream') def handler(event): pass return app
def sample_app_schedule_only(): app = Chalice('schedule_only') @app.schedule('rate(5 minutes)') def cron(event): pass return app
def sample_sqs_event_app(): app = Chalice('sqs-event') @app.on_sqs_message(queue='myqueue') def handler(event): pass return app
def sample_app(): app = Chalice('sample') @app.route('/') def foo(): return {} return app
def sample_ddb_event_app(): app = Chalice('ddb-event') @app.on_dynamodb_record(stream_arn='arn:aws:...:stream') def handler(event): pass return app
def sample_cloudwatch_event_app(): app = Chalice('cloudwatch-event') @app.on_cw_event({'source': {'source': ['aws.ec2']}}) def foo(event): return event return app
def sample_s3_event_app(): app = Chalice('s3-event') @app.on_s3_event(bucket='mybucket') def handler(event): pass return app
def sample_sns_event_app(): app = Chalice('sns-event') @app.on_sns_message(topic='mytopic') def handler(event): pass return app
def setUp(self): self.resource_builder = mock.Mock(spec=ApplicationGraphBuilder) self.deps_builder = mock.Mock(spec=DependencyBuilder) self.build_stage = mock.Mock(spec=BuildStage) self.plan_stage = mock.Mock(spec=PlanStage) self.sweeper = mock.Mock(spec=ResourceSweeper) self.executor = mock.Mock(spec=Executor) self.recorder = mock.Mock(spec=ResultsRecorder) self.chalice_app = Chalice(app_name='foo')
def sample_app_with_auth(): app = Chalice('sampleauth') @app.authorizer('myauth') def myauth(auth_request): pass @app.route('/', authorizer=myauth) def foo(): return {} return app
def websocket_app_without_disconnect(): app = Chalice('websocket-event-no-disconnect') @app.on_ws_connect() def connect(event): pass @app.on_ws_message() def message(event): pass return app
def sample_websocket_app(): app = Chalice('sample') @app.on_ws_connect() def connect(): pass @app.on_ws_message() def message(): pass @app.on_ws_disconnect() def disconnect(): pass return app
def test_can_generate_swagger_builder(self): generator = mock.Mock(spec=SwaggerGenerator) generator.generate_swagger.return_value = {'swagger': '2.0'} rest_api = models.RestAPI( resource_name='foo', swagger_doc=models.Placeholder.BUILD_STAGE, minimum_compression='', endpoint_type='EDGE', api_gateway_stage='api', lambda_function=None, ) app = Chalice(app_name='foo') config = Config.create(chalice_app=app) p = SwaggerBuilder(generator) p.handle(config, rest_api) assert rest_api.swagger_doc == {'swagger': '2.0'} generator.generate_swagger.assert_called_with(app, rest_api)
def __init__(self, app_name="Domovoi", configure_logs=True): Chalice.__init__(self, app_name=app_name, configure_logs=configure_logs)
def test_empty_route_results_in_error(): app = Chalice('appname') app.routes = {'': {}} config = Config.create(chalice_app=app) with pytest.raises(ValueError): validate_configuration(config)
def test_can_add_binary_media_types(swagger_gen): app = Chalice('test-binary') doc = swagger_gen.generate_swagger(app) media_types = doc.get('x-amazon-apigateway-binary-media-types') assert sorted(media_types) == sorted(app.api.binary_types)
def __init__(self, app_name="Domovoi"): Chalice.__init__(self, app_name=app_name, configure_logs=False)