コード例 #1
0
    def test_404_exception_with_status(self, event, context):
        os.environ['trace_id'] = "1-5eb5a279-87b966d0c206d010a3ddf0e8"

        utils = lambda_utils.Utils()

        @utils.api_gateway_response
        def handler(evt, ctx):
            try:
                raise SampleError("sample message")
            except SampleError as e:
                return (e, 404)

        res = handler(event, context)

        assert res == {
            "isBase64Encoded":
            False,
            "statusCode":
            404,
            'headers': {
                "Access-Control-Allow-Origin": "*",
                "Content-Type": "application/json"
            },
            'body':
            json.dumps({
                "Code": "SampleError",
                "Message": "sample message",
                "TraceId": "1-5eb5a279-87b966d0c206d010a3ddf0e8"
            })
        }
コード例 #2
0
    def test_none_body_204_response(self, event, context):

        utils = lambda_utils.Utils()

        @utils.api_gateway_response
        def handler(evt, ctx):
            return (None, 204)

        res = handler(event, context)

        assert res == {
            'isBase64Encoded': False,
            'statusCode': 204,
            'headers': {
                "Access-Control-Allow-Origin": "*",
                "Content-Type": "application/json"
            }
        }
コード例 #3
0
    def test_normal_201_response_with_status(self, event, context):

        utils = lambda_utils.Utils()

        @utils.api_gateway_response
        def handler(evt, ctx):
            return ({"key": "value"}, 201)

        res = handler(event, context)

        assert res == {
            'isBase64Encoded': False,
            'statusCode': 201,
            'headers': {
                "Access-Control-Allow-Origin": "*",
                "Content-Type": "application/json"
            },
            'body': json.dumps({"key": "value"})
        }
コード例 #4
0
    def test_trace_id_with_X_AMZN_TRACE_ID(self, event, context):
        if 'trace_id' in os.environ:
            del os.environ['trace_id']
        os.environ[
            '_X_AMZN_TRACE_ID'] = "Self=1-5eb5a279-3495486f1d3332fba1b67b30;Root=1-5eb5a279-87b966d0c206d010a3ddf0e8;Parent=79be71115925fdf5;Sampled=1"
        utils = lambda_utils.Utils()
        logger = utils.logger

        @utils.set_trace_id
        def handler(evt, con):
            return {"key", "value"}

        handler(event, context)

        assert 'trace_id' in logger.__dict__['log_keys']
        assert logger.__dict__['log_keys'][
            'trace_id'] == "1-5eb5a279-87b966d0c206d010a3ddf0e8"
        assert 'trace_id' in os.environ
        assert os.environ['trace_id'] == "1-5eb5a279-87b966d0c206d010a3ddf0e8"
コード例 #5
0
    def test_trace_id_without_X_AMZN_TRACE_ID(self, event, context,
                                              urandom_mock, urandom_list):
        if 'trace_id' in os.environ:
            del os.environ['trace_id']
        os.environ['_X_AMZN_TRACE_ID'] = "1-5eb5a279-87b966d0c206d010a3ddf0e8"
        utils = lambda_utils.Utils()
        logger = utils.logger

        @utils.set_trace_id
        def handler(evt, con):
            return {"key", "value"}

        handler(event, context)

        START_TIME = time.time()
        HEX = hex(int(START_TIME))[2:]
        trace_id = "0-{}-{}".format(
            HEX, str(binascii.hexlify(urandom_list[0]), 'utf-8'))

        assert 'trace_id' in logger.__dict__['log_keys']
        assert logger.__dict__['log_keys']['trace_id'] == trace_id
        assert 'trace_id' in os.environ
        assert os.environ['trace_id'] == trace_id