Пример #1
0
def test_cast_resource_request_invalid_request(resource):
    request = HandlerRequest.deserialize(ENTRYPOINT_PAYLOAD)
    request.requestData = None
    with pytest.raises(InvalidRequest) as excinfo:
        resource._cast_resource_request(request)

    assert "AttributeError" in str(excinfo.value)
def test_handler_request_serde_roundtrip():
    payload = {
        "awsAccountId":
        "123456789012",
        "bearerToken":
        "123456",
        "region":
        "us-east-1",
        "action":
        "CREATE",
        "responseEndpoint":
        "https://cloudformation.us-west-2.amazonaws.com",
        "resourceType":
        "AWS::Test::TestModel",
        "resourceTypeVersion":
        "1.0",
        "nextToken":
        None,
        "requestContext": {
            "invocation": 2,
            "callbackContext": {
                "contextPropertyA": "Value"
            },
        },
        "requestData": {
            "callerCredentials": None,
            "providerCredentials": {
                "accessKeyId":
                "HDI0745692Y45IUTYR78",
                "secretAccessKey":
                "4976TUYVI234/5GW87ERYG823RF87GY9EIUH452I3",
                "sessionToken":
                "842HYOFIQAEUDF78R8T7IU43HSADYGIFHBJSDHFA87SDF9PYvN1CEY"
                "ASDUYFT5TQ97YASIHUDFAIUEYRISDKJHFAYSUDTFSDFADS",
            },
            "providerLogGroupName": "providerLoggingGroupName",
            "logicalResourceId": "myBucket",
            "resourceProperties": {},
            "previousResourceProperties": None,
            "stackTags": {
                "tag1": "abc"
            },
            "previousStackTags": {
                "tag1": "def"
            },
        },
        "stackId":
        "arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/e72"
        "2ae60-fe62-11e8-9a0e-0ae8cc519968",
    }
    ser = HandlerRequest.deserialize(payload).serialize()
    # remove None values from payload
    expected = {
        k: {k: v
            for k, v in payload["requestData"].items()
            if v is not None} if k == "requestData" else v
        for k, v in payload.items() if v is not None
    }

    assert ser == expected
Пример #3
0
def make_payload() -> HandlerRequest:
    return HandlerRequest(
        action="CREATE",
        awsAccountId="123412341234",
        bearerToken=str(uuid4()),
        region="us-east-1",
        responseEndpoint="",
        resourceType="Foo::Bar::Baz",
        resourceTypeVersion="4",
        requestData=RequestData(
            providerLogGroupName="test_group",
            logicalResourceId="MyResourceId",
            resourceProperties={},
            systemTags={},
        ),
        stackId="an-arn",
    )
def test_handler_request_serde_roundtrip():
    payload = {
        "awsAccountId":
        "123456789012",
        "bearerToken":
        "123456",
        "region":
        "us-east-1",
        "action":
        "CREATE",
        "responseEndpoint":
        "https://cloudformation.us-west-2.amazonaws.com",
        "resourceType":
        "AWS::Test::TestModel",
        "resourceTypeVersion":
        "1.0",
        "nextToken":
        None,
        "requestContext": {
            "invocation":
            2,
            "callbackContext": {
                "contextPropertyA": "Value"
            },
            "cloudWatchEventsRuleName":
            "reinvoke-handler-4754ac8a-623b-45fe-84bc-f5394"
            "118a8be",
            "cloudWatchEventsTargetId":
            "reinvoke-target-4754ac8a-623b-45fe-84bc-f53941"
            "18a8be",
        },
        "requestData": {
            "callerCredentials": None,
            "platformCredentials": {
                "accessKeyId":
                "32IEHAHFIAG538KYASAI",
                "secretAccessKey":
                "0O2hop/5vllVHjbA8u52hK8rLcroZpnL5NPGOi66",
                "sessionToken":
                "gqe6eIsFPHOlfhc3RKl5s5Y6Dy9PYvN1CEYsswz5TQUsE8WfHD6LPK"
                "549euXm4Vn4INBY9nMJ1cJe2mxTYFdhWHSnkOQv2SHemal",
            },
            "providerCredentials": {
                "accessKeyId":
                "HDI0745692Y45IUTYR78",
                "secretAccessKey":
                "4976TUYVI234/5GW87ERYG823RF87GY9EIUH452I3",
                "sessionToken":
                "842HYOFIQAEUDF78R8T7IU43HSADYGIFHBJSDHFA87SDF9PYvN1CEY"
                "ASDUYFT5TQ97YASIHUDFAIUEYRISDKJHFAYSUDTFSDFADS",
            },
            "providerLogGroupName": "providerLoggingGroupName",
            "logicalResourceId": "myBucket",
            "resourceProperties": {},
            "previousResourceProperties": None,
            "stackTags": {
                "tag1": "abc"
            },
            "previousStackTags": {
                "tag1": "def"
            },
        },
        "stackId":
        "arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/e72"
        "2ae60-fe62-11e8-9a0e-0ae8cc519968",
    }
    ser = HandlerRequest.deserialize(payload).serialize()
    # remove None values from payload
    expected = {
        k: {k: v
            for k, v in payload["requestData"].items()
            if v is not None} if k == "requestData" else v
        for k, v in payload.items() if v is not None
    }

    assert ser == expected