def test_tracer_custom_metadata(mocker, dummy_response, provider_stub): put_metadata_mock = mocker.MagicMock() annotation_key = "Booking response" annotation_value = {"bookingStatus": "CONFIRMED"} provider = provider_stub(put_metadata_mock=put_metadata_mock) tracer = Tracer(provider=provider, service="booking") tracer.put_metadata(annotation_key, annotation_value) assert put_metadata_mock.call_count == 1 assert put_metadata_mock.call_args_list[0] == mocker.call( key=annotation_key, value=annotation_value, namespace="booking")
import requests import six from ask_sdk_core.exceptions import ApiClientException from ask_sdk_model.services import ApiClient, ApiClientRequest, ApiClientResponse from aws_lambda_powertools.logging import Logger from aws_lambda_powertools.tracing import Tracer from urllib3.util import parse_url from .token_helper import TokenHelper logger = Logger(service="STIB API client") tracer = Tracer(service="STIB API client") OPEN_DATA_API_ENDPOINT = environ["open_data_api_endpoint"] tracer.put_metadata(key="open_data_api_endpoint", value=OPEN_DATA_API_ENDPOINT) class OpenDataAPIClient(ApiClient): """OpenData API client implementation wrapping HTTP requests""" def __init__(self): self.token_helper = TokenHelper() def invoke(self, request): # type: (ApiClientRequest) -> ApiClientResponse """Dispatches a request to an API endpoint described in the request. Resolves the method from input request object, converts the list of header tuples to the required format (dict) for the