IDeployAssert

class aws_cdk.integ_tests_alpha.IDeployAssert(*args, **kwargs)

Bases: Protocol

(experimental) Interface that allows for registering a list of assertions that should be performed on a construct.

This is only necessary when writing integration tests.

Stability:

experimental

Methods

aws_api_call(service, api, parameters=None, output_paths=None)

(experimental) Query AWS using JavaScript SDK API calls.

This can be used to either trigger an action or to return a result that can then be asserted against an expected value

The service is the name of an AWS service, in one of the following forms:

  • An AWS SDK for JavaScript v3 package name (@aws-sdk/client-api-gateway)

  • An AWS SDK for JavaScript v3 client name (api-gateway)

  • An AWS SDK for JavaScript v2 constructor name (APIGateway)

  • A lowercase AWS SDK for JavaScript v2 constructor name (apigateway)

The api is the name of an AWS API call, in one of the following forms:

  • An API call name as found in the API Reference documentation (GetObject)

  • The API call name starting with a lowercase letter (getObject)

  • The AWS SDK for JavaScript v3 command class name (GetObjectCommand)

Parameters:
  • service (str) –

  • api (str) –

  • parameters (Optional[Any]) –

  • output_paths (Optional[Sequence[str]]) –

Stability:

experimental

Return type:

IApiCall

Example:

# app: App
# integ: IntegTest

integ.assertions.aws_api_call("SQS", "sendMessage", {
    "QueueUrl": "url",
    "MessageBody": "hello"
})
message = integ.assertions.aws_api_call("SQS", "receiveMessage", {
    "QueueUrl": "url"
})
message.expect(ExpectedResult.object_like({
    "Messages": [{"Body": "hello"}]
}))
expect(id, expected, actual)

(experimental) Assert that the ExpectedResult is equal to the ActualResult.

Parameters:
Stability:

experimental

Return type:

None

Example:

# integ: IntegTest
# api_call: AwsApiCall

integ.assertions.expect("invoke",
    ExpectedResult.object_like({"Payload": "OK"}),
    ActualResult.from_aws_api_call(api_call, "Body"))
http_api_call(url, *, body=None, headers=None, method=None, port=None)

(experimental) Make an HTTP call to the provided endpoint.

Parameters:
  • url (str) –

  • body (Optional[str]) – (experimental) Request body. Default: - no body

  • headers (Optional[Mapping[str, str]]) – (experimental) Optional request headers. Default: no headers

  • method (Optional[str]) – (experimental) HTTP method. Default: GET

  • port (Union[int, float, None]) – (experimental) Optional port. Default: default port for protocol

Stability:

experimental

Return type:

IApiCall

Example:

# app: App
# integ: IntegTest

call = integ.assertions.http_api_call("https://example.com/test")
call.expect(ExpectedResult.object_like({
    "Message": "Hello World!"
}))
invoke_function(*, function_name, invocation_type=None, log_retention=None, log_type=None, payload=None)

(experimental) Invoke a lambda function and return the response which can be asserted.

Parameters:
  • function_name (str) – (experimental) The name of the function to invoke.

  • invocation_type (Optional[InvocationType]) – (experimental) The type of invocation to use. Default: InvocationType.REQUEST_RESPONSE

  • log_retention (Optional[RetentionDays]) – (experimental) How long, in days, the log contents will be retained. Default: - no retention days specified

  • log_type (Optional[LogType]) – (experimental) Whether to return the logs as part of the response. Default: LogType.NONE

  • payload (Optional[str]) – (experimental) Payload to send as part of the invoke. Default: - no payload

Stability:

experimental

Return type:

IApiCall

Example:

# app: App
# integ: IntegTest

invoke = integ.assertions.invoke_function(
    function_name="my-function"
)
invoke.expect(ExpectedResult.object_like({
    "Payload": "200"
}))