779 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			779 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import boto3
 | |
| import pytest
 | |
| import sure  # noqa # pylint: disable=unused-import
 | |
| from moto import mock_support
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_describe_trusted_advisor_checks_returns_amount_of_checks():
 | |
|     """
 | |
|     test that the 104 checks that are listed under trusted advisor currently
 | |
|     are returned
 | |
|     """
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     response = client.describe_trusted_advisor_checks(language="en")
 | |
| 
 | |
|     response["checks"].should.be.length_of(104)
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_describe_trusted_advisor_checks_returns_an_expected_id():
 | |
|     """
 | |
|     test that a random check id is returned
 | |
|     """
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     response = client.describe_trusted_advisor_checks(language="en")
 | |
|     check_ids = []
 | |
|     for check in response["checks"]:
 | |
|         check_ids.append(check["id"])
 | |
| 
 | |
|     check_ids.should.contain("zXCkfM1nI3")
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_describe_trusted_advisor_checks_returns_an_expected_check_name():
 | |
|     """
 | |
|     test that a random check name is returned
 | |
|     """
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     response = client.describe_trusted_advisor_checks(language="en")
 | |
|     check_names = []
 | |
|     for check in response["checks"]:
 | |
|         check_names.append(check["name"])
 | |
| 
 | |
|     check_names.should.contain("Unassociated Elastic IP Addresses")
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_refresh_trusted_advisor_check_returns_expected_check():
 | |
|     """
 | |
|     A refresh of a trusted advisor check returns the check id
 | |
|     in the response
 | |
|     """
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     check_name = "XXXIIIY"
 | |
|     response = client.refresh_trusted_advisor_check(checkId=check_name)
 | |
|     response["status"]["checkId"].should.equal(check_name)
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_refresh_trusted_advisor_check_returns_an_expected_status():
 | |
|     """
 | |
|     A refresh of a trusted advisor check returns an expected status
 | |
|     """
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     possible_statuses = ["none", "enqueued", "processing", "success", "abandoned"]
 | |
|     check_name = "XXXIIIY"
 | |
|     response = client.refresh_trusted_advisor_check(checkId=check_name)
 | |
|     actual_status = response["status"]["status"]
 | |
|     possible_statuses.should.contain(actual_status)
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "possible_statuses",
 | |
|     [
 | |
|         ["none", "enqueued", "processing"],
 | |
|         ["none", "enqueued", "processing", "success", "abandoned"],
 | |
|     ],
 | |
| )
 | |
| @mock_support
 | |
| def test_refresh_trusted_advisor_check_cycles_to_new_status_on_each_call(
 | |
|     possible_statuses,
 | |
| ):
 | |
|     """
 | |
|     Called only three times, only three expected statuses are returned
 | |
|     """
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     check_name = "XXXIIIY"
 | |
|     actual_statuses = []
 | |
| 
 | |
|     for _ in possible_statuses:
 | |
|         response = client.refresh_trusted_advisor_check(checkId=check_name)
 | |
|         actual_statuses.append(response["status"]["status"])
 | |
| 
 | |
|     actual_statuses.should.equal(possible_statuses)
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_refresh_trusted_advisor_check_cycles_to_new_status_on_with_two_checks():
 | |
|     """
 | |
|     On each call, the next expected status is returned when additional checks are made
 | |
|     """
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     check_1_name = "XXXIIIY"
 | |
|     check_2_name = "XXXIIIZ"
 | |
|     check_1_statuses = []
 | |
|     check_2_statuses = []
 | |
|     possible_statuses = [
 | |
|         "none",
 | |
|         "enqueued",
 | |
|         "processing",
 | |
|         "success",
 | |
|         "abandoned",
 | |
|     ]
 | |
| 
 | |
|     for _ in possible_statuses:
 | |
|         response = client.refresh_trusted_advisor_check(checkId=check_1_name)
 | |
|         check_1_statuses.append(response["status"]["status"])
 | |
| 
 | |
|     for _ in possible_statuses:
 | |
|         response = client.refresh_trusted_advisor_check(checkId=check_2_name)
 | |
|         check_2_statuses.append(response["status"]["status"])
 | |
| 
 | |
|     check_1_statuses.should.equal(possible_statuses) and check_2_statuses.should.equal(
 | |
|         possible_statuses
 | |
|     )
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_refresh_trusted_advisor_check_cycle_continues_on_full_cycle():
 | |
|     """
 | |
|     After cycling through all statuses, the check continues the cycle
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     check_name = "XXXIIIY"
 | |
|     possible_statuses = [
 | |
|         "none",
 | |
|         "enqueued",
 | |
|         "processing",
 | |
|         "success",
 | |
|         "abandoned",
 | |
|     ]
 | |
| 
 | |
|     for _ in possible_statuses:
 | |
|         client.refresh_trusted_advisor_check(checkId=check_name)
 | |
| 
 | |
|     expected_none_response = client.refresh_trusted_advisor_check(checkId=check_name)
 | |
| 
 | |
|     expected_none_response["status"]["status"].should.equal("none")
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_case_is_closed():
 | |
|     """
 | |
|     On closing a case, the correct resolved response is returned
 | |
|     """
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
|     case_id = create_case_response["caseId"]
 | |
| 
 | |
|     resolve_case_response = client.resolve_case(caseId=case_id)
 | |
| 
 | |
|     possible_case_status = [
 | |
|         "opened",
 | |
|         "pending-customer-action",
 | |
|         "reopened",
 | |
|         "unassigned",
 | |
|         "resolved",
 | |
|         "work-in-progress",
 | |
|     ]
 | |
|     expected_initial_case = [resolve_case_response["initialCaseStatus"]]
 | |
|     expected_final_case = "resolved"
 | |
| 
 | |
|     set(expected_initial_case).issubset(possible_case_status).should.be.true
 | |
| 
 | |
|     expected_final_case.should.equal("resolved")
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_case_created():
 | |
|     """
 | |
|     On creating a support request its response contains a case ID
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     len(create_case_response["caseId"]).should.equal(38)
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "key,value",
 | |
|     [
 | |
|         ("subject", "test_subject"),
 | |
|         ("serviceCode", "test_service_code"),
 | |
|         ("severityCode", "normal"),
 | |
|         ("categoryCode", "test_category_code"),
 | |
|         ("language", "test_language"),
 | |
|     ],
 | |
| )
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described(key, value):
 | |
|     """
 | |
|     On creating a support request it can be described
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
|     describe_cases_response = client.describe_cases(
 | |
|         caseIdList=[case_id_list],
 | |
|         displayId="test_display_id",
 | |
|         afterTime="test_after_time",
 | |
|         beforeTime="test_before_time",
 | |
|         includeResolvedCases=True,
 | |
|         nextToken="test_next_token",
 | |
|         maxResults=137,
 | |
|         language="test_lanauage",
 | |
|         includeCommunications=True,
 | |
|     )
 | |
| 
 | |
|     actual_case_id = describe_cases_response["cases"][0][key]
 | |
| 
 | |
|     actual_case_id.should.equal(value)
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "key,value",
 | |
|     [
 | |
|         ("subject", "test_subject"),
 | |
|         ("serviceCode", "test_service_code"),
 | |
|         ("severityCode", "normal"),
 | |
|         ("categoryCode", "test_category_code"),
 | |
|         ("language", "test_language"),
 | |
|     ],
 | |
| )
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described_without_next_token(key, value):
 | |
|     """
 | |
|     On creating a support request it can be described without next token
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
|     describe_cases_response = client.describe_cases(
 | |
|         caseIdList=[case_id_list],
 | |
|         displayId="test_display_id",
 | |
|         afterTime="test_after_time",
 | |
|         beforeTime="test_before_time",
 | |
|         includeResolvedCases=True,
 | |
|         language="test_lanauage",
 | |
|         includeCommunications=True,
 | |
|         maxResults=137,
 | |
|     )
 | |
| 
 | |
|     actual_case_id = describe_cases_response["cases"][0][key]
 | |
| 
 | |
|     actual_case_id.should.equal(value)
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "key,value",
 | |
|     [
 | |
|         ("subject", "test_subject"),
 | |
|         ("serviceCode", "test_service_code"),
 | |
|         ("severityCode", "normal"),
 | |
|         ("categoryCode", "test_category_code"),
 | |
|         ("language", "test_language"),
 | |
|     ],
 | |
| )
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described_without_max_results(key, value):
 | |
|     """
 | |
|     On creating a support request it can be described without max_results
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
|     describe_cases_response = client.describe_cases(
 | |
|         caseIdList=[case_id_list],
 | |
|         displayId="test_display_id",
 | |
|         afterTime="test_after_time",
 | |
|         beforeTime="test_before_time",
 | |
|         includeResolvedCases=True,
 | |
|         language="test_lanauage",
 | |
|         nextToken="test_next_token",
 | |
|         includeCommunications=True,
 | |
|     )
 | |
| 
 | |
|     actual_case_id = describe_cases_response["cases"][0][key]
 | |
| 
 | |
|     actual_case_id.should.equal(value)
 | |
| 
 | |
| 
 | |
| @pytest.mark.parametrize(
 | |
|     "key,value",
 | |
|     [
 | |
|         ("subject", "test_subject"),
 | |
|         ("serviceCode", "test_service_code"),
 | |
|         ("severityCode", "normal"),
 | |
|         ("categoryCode", "test_category_code"),
 | |
|         ("language", "test_language"),
 | |
|     ],
 | |
| )
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described_without_max_results_or_next_token(
 | |
|     key, value
 | |
| ):
 | |
|     """
 | |
|     On creating a support request it can be described without max_results
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
|     describe_cases_response = client.describe_cases(
 | |
|         caseIdList=[case_id_list],
 | |
|         displayId="test_display_id",
 | |
|         afterTime="test_after_time",
 | |
|         beforeTime="test_before_time",
 | |
|         includeResolvedCases=True,
 | |
|         language="test_lanauage",
 | |
|         includeCommunications=True,
 | |
|     )
 | |
| 
 | |
|     actual_case_id = describe_cases_response["cases"][0][key]
 | |
| 
 | |
|     actual_case_id.should.equal(value)
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described_without_params():
 | |
|     """
 | |
|     On creating a support request it can be described
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
| 
 | |
|     describe_cases_response = client.describe_cases()
 | |
|     describe_cases_response["cases"].should.equal([])
 | |
| 
 | |
|     client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     describe_cases_response = client.describe_cases()
 | |
|     describe_cases_response["cases"].should.have.length_of(1)
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_created_case_cc_email_correct():
 | |
|     """
 | |
|     On creating a support request it can be described with
 | |
|     the correct cc email
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
|     describe_cases_response = client.describe_cases(
 | |
|         caseIdList=[case_id_list],
 | |
|         displayId="test_display_id",
 | |
|         afterTime="test_after_time",
 | |
|         beforeTime="test_before_time",
 | |
|         includeResolvedCases=True,
 | |
|         nextToken="test_next_token",
 | |
|         maxResults=137,
 | |
|         language="test_lanauage",
 | |
|         includeCommunications=True,
 | |
|     )
 | |
| 
 | |
|     actual_case_id = describe_cases_response["cases"][0]["ccEmailAddresses"][0]
 | |
| 
 | |
|     actual_case_id.should.equal("test_email_cc")
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_case_include_resolved_defaults_to_false():
 | |
|     """
 | |
|     On creating a support request it can be described and it
 | |
|     defaults to not include resolved cases
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
| 
 | |
|     for _ in range(3):
 | |
|         describe_cases_response = client.describe_cases(
 | |
|             caseIdList=[case_id_list],
 | |
|             displayId="test_display_id",
 | |
|             afterTime="test_after_time",
 | |
|             beforeTime="test_before_time",
 | |
|             nextToken="test_next_token",
 | |
|             maxResults=137,
 | |
|             language="test_lanauage",
 | |
|             includeCommunications=True,
 | |
|         )
 | |
|     actual = describe_cases_response["cases"]
 | |
| 
 | |
|     actual.should_not.contain(case_id_list)
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_case_include_communications_defaults_to_true():
 | |
|     """
 | |
|     On creating a support request it can be described and it
 | |
|     defaults to include communcations cases
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
| 
 | |
|     describe_cases_response = client.describe_cases(
 | |
|         caseIdList=[case_id_list],
 | |
|         displayId="test_display_id",
 | |
|         afterTime="test_after_time",
 | |
|         beforeTime="test_before_time",
 | |
|         nextToken="test_next_token",
 | |
|         maxResults=137,
 | |
|         language="test_lanauage",
 | |
|     )
 | |
| 
 | |
|     actual = describe_cases_response["cases"][0]
 | |
| 
 | |
|     actual.should.contain("recentCommunications")
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_multiple_support_created_cases_can_be_described():
 | |
|     """
 | |
|     On creating multiple support requests they can be described
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response_1 = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     create_case_response_2 = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = [create_case_response_1["caseId"], create_case_response_2["caseId"]]
 | |
|     describe_cases_response = client.describe_cases(
 | |
|         caseIdList=case_id_list,
 | |
|         displayId="test_display_id",
 | |
|         afterTime="test_after_time",
 | |
|         beforeTime="test_before_time",
 | |
|         includeResolvedCases=True,
 | |
|         nextToken="test_next_token",
 | |
|         maxResults=137,
 | |
|         language="test_lanauage",
 | |
|         includeCommunications=True,
 | |
|     )
 | |
| 
 | |
|     actual_case_id_1 = describe_cases_response["cases"][0]["caseId"]
 | |
|     actual_case_id_2 = describe_cases_response["cases"][1]["caseId"]
 | |
| 
 | |
|     actual_case_id_1.should.equal(case_id_list[0])
 | |
|     actual_case_id_2.should.equal(case_id_list[1])
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described_and_contains_communications_when_set_to_true():
 | |
|     """
 | |
|     On creating a support request it can be described and contains comms
 | |
|     when includeResolvedCases=True
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
|     describe_cases_response = client.describe_cases(
 | |
|         caseIdList=[case_id_list],
 | |
|         displayId="test_display_id",
 | |
|         afterTime="test_after_time",
 | |
|         beforeTime="test_before_time",
 | |
|         includeResolvedCases=True,
 | |
|         nextToken="test_next_token",
 | |
|         maxResults=137,
 | |
|         language="test_lanauage",
 | |
|         includeCommunications=True,
 | |
|     )
 | |
| 
 | |
|     actual_recent_comm = describe_cases_response["cases"][0]
 | |
|     actual_recent_comm.should.contain("recentCommunications")
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described_and_does_not_contain_communications_when_false():
 | |
|     """
 | |
|     On creating a support request it does not include
 | |
|     comms when  includeCommunications=False
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
|     describe_cases_response = client.describe_cases(
 | |
|         caseIdList=[case_id_list],
 | |
|         displayId="test_display_id",
 | |
|         afterTime="test_after_time",
 | |
|         beforeTime="test_before_time",
 | |
|         includeResolvedCases=True,
 | |
|         nextToken="test_next_token",
 | |
|         maxResults=137,
 | |
|         language="test_lanauage",
 | |
|         includeCommunications=False,
 | |
|     )
 | |
| 
 | |
|     actual_recent_comm = describe_cases_response["cases"][0]
 | |
| 
 | |
|     actual_recent_comm.should_not.contain("recentCommunications")
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described_and_contains_resolved_cases_when_true():
 | |
|     """
 | |
|     On creating a support request it does contain resolved cases when
 | |
|     includeResolvedCases=true
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
| 
 | |
|     for _ in range(4):
 | |
|         describe_cases_response = client.describe_cases(
 | |
|             caseIdList=[case_id_list],
 | |
|             displayId="test_display_id",
 | |
|             afterTime="test_after_time",
 | |
|             beforeTime="test_before_time",
 | |
|             includeResolvedCases=True,
 | |
|             nextToken="test_next_token",
 | |
|             maxResults=137,
 | |
|             language="test_lanauage",
 | |
|             includeCommunications=True,
 | |
|         )
 | |
| 
 | |
|     actual = describe_cases_response["cases"][0]["caseId"]
 | |
| 
 | |
|     actual.should.equal(case_id_list)
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described_and_does_not_contain_resolved_cases_when_false():
 | |
|     """
 | |
|     On creating a support request it does not contain resolved cases when
 | |
|     includeResolvedCases=false
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
| 
 | |
|     for _ in range(4):
 | |
|         describe_cases_response = client.describe_cases(
 | |
|             caseIdList=[case_id_list],
 | |
|             displayId="test_display_id",
 | |
|             afterTime="test_after_time",
 | |
|             beforeTime="test_before_time",
 | |
|             includeResolvedCases=False,
 | |
|             nextToken="test_next_token",
 | |
|             maxResults=137,
 | |
|             language="test_lanauage",
 | |
|             includeCommunications=True,
 | |
|         )
 | |
| 
 | |
|     actual = describe_cases_response["cases"]
 | |
|     actual.should_not.contain(case_id_list)
 | |
| 
 | |
| 
 | |
| @mock_support
 | |
| def test_support_created_case_can_be_described_and_can_cycle_case_severities():
 | |
|     """
 | |
|     On creating a support request it can be described and cycles case severities
 | |
|     """
 | |
| 
 | |
|     client = boto3.client("support", "us-east-1")
 | |
|     create_case_response = client.create_case(
 | |
|         subject="test_subject",
 | |
|         serviceCode="test_service_code",
 | |
|         severityCode="low",
 | |
|         categoryCode="test_category_code",
 | |
|         communicationBody="test_communication_body",
 | |
|         ccEmailAddresses=["test_email_cc"],
 | |
|         language="test_language",
 | |
|         issueType="test_issue_type",
 | |
|         attachmentSetId="test_attachment_set_id",
 | |
|     )
 | |
| 
 | |
|     case_id_list = create_case_response["caseId"]
 | |
| 
 | |
|     for _ in range(3):
 | |
|         describe_cases_response = client.describe_cases(
 | |
|             caseIdList=[case_id_list],
 | |
|             displayId="test_display_id",
 | |
|             afterTime="test_after_time",
 | |
|             beforeTime="test_before_time",
 | |
|             includeResolvedCases=True,
 | |
|             nextToken="test_next_token",
 | |
|             maxResults=137,
 | |
|             language="test_lanauage",
 | |
|             includeCommunications=True,
 | |
|         )
 | |
| 
 | |
|     actual = describe_cases_response["cases"][0]["severityCode"]
 | |
| 
 | |
|     actual.should.equal("urgent")
 |