예제 #1
0
    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
예제 #2
0
 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")
     ]
예제 #3
0
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)
예제 #4
0
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)
예제 #5
0
def sample_app_lambda_only():
    app = Chalice('lambda_only')

    @app.lambda_function()
    def myfunction(event, context):
        pass

    return app
예제 #6
0
def sample_kinesis_event_app():
    app = Chalice('kinesis-event')

    @app.on_kinesis_record(stream='mystream')
    def handler(event):
        pass

    return app
예제 #7
0
def sample_app_schedule_only():
    app = Chalice('schedule_only')

    @app.schedule('rate(5 minutes)')
    def cron(event):
        pass

    return app
예제 #8
0
def sample_sqs_event_app():
    app = Chalice('sqs-event')

    @app.on_sqs_message(queue='myqueue')
    def handler(event):
        pass

    return app
예제 #9
0
def sample_app():
    app = Chalice('sample')

    @app.route('/')
    def foo():
        return {}

    return app
예제 #10
0
def sample_ddb_event_app():
    app = Chalice('ddb-event')

    @app.on_dynamodb_record(stream_arn='arn:aws:...:stream')
    def handler(event):
        pass

    return app
예제 #11
0
def sample_cloudwatch_event_app():
    app = Chalice('cloudwatch-event')

    @app.on_cw_event({'source': {'source': ['aws.ec2']}})
    def foo(event):
        return event

    return app
예제 #12
0
def sample_s3_event_app():
    app = Chalice('s3-event')

    @app.on_s3_event(bucket='mybucket')
    def handler(event):
        pass

    return app
예제 #13
0
def sample_sns_event_app():
    app = Chalice('sns-event')

    @app.on_sns_message(topic='mytopic')
    def handler(event):
        pass

    return app
예제 #14
0
 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')
예제 #15
0
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
예제 #16
0
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
예제 #17
0
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
예제 #18
0
    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)
예제 #19
0
 def __init__(self, app_name="Domovoi", configure_logs=True):
     Chalice.__init__(self,
                      app_name=app_name,
                      configure_logs=configure_logs)
예제 #20
0
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)
예제 #21
0
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)
예제 #22
0
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)
예제 #23
0
파일: app.py 프로젝트: robinsingh1/domovoi
 def __init__(self, app_name="Domovoi"):
     Chalice.__init__(self, app_name=app_name, configure_logs=False)