def test_with_json_message(root_logger, stdout):
    logger = Logger(stream=stdout)

    msg = {"x": "isx"}
    logger.info(json.dumps(msg))

    log_dict = json.loads(stdout.getvalue())

    assert msg == log_dict["message"]
def test_with_dict_message(root_logger, stdout):
    logger = Logger(level="DEBUG", stream=stdout)

    msg = {"x": "isx"}
    logger.critical(msg)

    log_dict = json.loads(stdout.getvalue())

    assert msg == log_dict["message"]
def test_with_unserialisable_value_in_message(root_logger, stdout):
    logger = Logger(level="DEBUG", stream=stdout)

    class X:
        pass

    msg = {"x": X()}
    logger.debug(msg)

    log_dict = json.loads(stdout.getvalue())

    assert log_dict["message"]["x"].startswith("<")
def test_logging_exception_traceback(root_logger, stdout):
    logger = Logger(level="DEBUG",
                    stream=stdout,
                    request_id="request id!",
                    another="value")

    try:
        raise Exception("Boom")
    except Exception:
        logger.exception("This is a test")

    log_dict = json.loads(stdout.getvalue())

    check_log_dict(log_dict)
    assert "exception" in log_dict
def test_setup_with_valid_log_levels(root_logger, stdout, level):
    logger = Logger(level=level,
                    stream=stdout,
                    request_id="request id!",
                    another="value")
    msg = "This is a test"
    log_command = {
        "INFO": logger.info,
        "ERROR": logger.error,
        "WARNING": logger.warning,
        "DEBUG": logger.debug,
        "CRITICAL": logger.critical,
    }

    log_message = log_command[level]
    log_message(msg)

    log_dict = json.loads(stdout.getvalue().strip())

    check_log_dict(log_dict)

    assert level == log_dict["level"]
    assert "This is a test" == log_dict["message"]
    assert "request id!" == log_dict["request_id"]
    assert "exception" not in log_dict
Ejemplo n.º 6
0
OnModified Function
"""

import os
import boto3
import requests
from aws_lambda_powertools.tracing import Tracer  # pylint: disable=import-error
from aws_lambda_powertools.logging.logger import Logger  # pylint: disable=import-error

API_URL = os.environ["API_URL"]
ENVIRONMENT = os.environ["ENVIRONMENT"]
TABLE_NAME = os.environ["TABLE_NAME"]

dynamodb = boto3.resource("dynamodb")  # pylint: disable=invalid-name
table = dynamodb.Table(TABLE_NAME)  # pylint: disable=invalid-name,no-member
logger = Logger()  # pylint: disable=invalid-name
tracer = Tracer()  # pylint: disable=invalid-name


@tracer.capture_method
def get_payment_token(order_id: str) -> str:
    """
    Retrieve the paymentToken from DynamoDB
    """

    response = table.get_item(Key={"orderId": order_id})

    return response["Item"]["paymentToken"]


@tracer.capture_method
Ejemplo n.º 7
0
from aws_lambda_powertools.logging.logger import Logger
from aws_lambda_powertools.metrics import MetricUnit
from aws_lambda_powertools.utilities.data_classes import APIGatewayProxyEventV2
from aws_lambda_powertools.utilities.typing import LambdaContext
from modulestf.cloudcraft.graph import populate_graph
from modulestf.const import FINAL_DIR
from modulestf.convert import convert_graph_to_modulestf_config
from modulestf.logger import setup_logging
from modulestf.render import prepare_render_dirs, render_from_modulestf_config
from modulestf.upload import upload_file_to_s3

# logger = setup_logging()

os.environ["POWERTOOLS_TRACE_DISABLED"] = "1"

logger = Logger(service="modulestf-d2c")
tracer = Tracer(service="modulestf-d2c")
metrics = Metrics(namespace="modulestf-d2c", service="modulestf-d2c")


def load_data(event):
    body = event.body
    logger.info(f"body = {body}")

    qs = event.query_string_parameters
    logger.info("queryStringParameters = %s" % qs)

    if body is None and qs is None:
        raise ValueError(
            "Some query string parameters should be defined or use HTTP POST method",
            400)
def test_setup_with_bad_level_does_not_fail():
    Logger("DBGG", request_id="request id!", another="value")
def test_setup_with_invalid_log_level(root_logger, logger, stdout):
    with pytest.raises(ValueError) as e:
        Logger(level="not a valid log level")
        assert "Unknown level" in e.value.args[0]