# fixture and parameter have the same name # pylint: disable=redefined-outer-name import json import sys import boto3 import pytest from rpdk.core.contract.interface import Action, HandlerErrorCode, OperationStatus @pytest.fixture def client(): return boto3.client( "cloudformation", aws_access_key_id="", aws_secret_access_key="", aws_session_token="", ) def test_operation_status_enum_matches_sdk(client): sdk = set(client.meta.service_model.shape_for("OperationStatus").enum) enum = set(OperationStatus.__members__) assert enum == sdk def test_handler_error_code_enum_matches_sdk(client): if sys.version_info < (3, 7): return sdk = set(client.meta.service_model.shape_for("HandlerErrorCode").enum) enum = set(HandlerErrorCode.__members__) assert enum == sdk def test_action_enum_is_json_serializable(): json.dumps({"action": Action.CREATE})