221 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			221 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import boto3
 | |
| import pytest
 | |
| 
 | |
| from moto import mock_iot
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_create_domain_configuration_only_name():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     domain_config = client.create_domain_configuration(
 | |
|         domainConfigurationName="testConfig"
 | |
|     )
 | |
|     domain_config.should.have.key("domainConfigurationName").which.should.equal(
 | |
|         "testConfig"
 | |
|     )
 | |
|     domain_config.should.have.key("domainConfigurationArn").which.should_not.be.none
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_create_duplicate_domain_configuration_fails():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     domain_config = client.create_domain_configuration(
 | |
|         domainConfigurationName="testConfig"
 | |
|     )
 | |
|     domain_config.should.have.key("domainConfigurationName").which.should.equal(
 | |
|         "testConfig"
 | |
|     )
 | |
|     domain_config.should.have.key("domainConfigurationArn").which.should_not.be.none
 | |
|     with pytest.raises(client.exceptions.ResourceAlreadyExistsException) as exc:
 | |
|         client.create_domain_configuration(domainConfigurationName="testConfig")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("ResourceAlreadyExistsException")
 | |
|     err["Message"].should.equal("Domain configuration with given name already exists.")
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_create_domain_configuration_full_params():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     domain_config = client.create_domain_configuration(
 | |
|         domainConfigurationName="testConfig",
 | |
|         domainName="example.com",
 | |
|         serverCertificateArns=["ARN1", "ARN2"],
 | |
|         validationCertificateArn="VARN",
 | |
|         authorizerConfig={
 | |
|             "defaultAuthorizerName": "name",
 | |
|             "allowAuthorizerOverride": True,
 | |
|         },
 | |
|         serviceType="DATA",
 | |
|     )
 | |
|     domain_config.should.have.key("domainConfigurationName").which.should.equal(
 | |
|         "testConfig"
 | |
|     )
 | |
|     domain_config.should.have.key("domainConfigurationArn").which.should_not.be.none
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_create_domain_configuration_invalid_service_type():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     with pytest.raises(client.exceptions.InvalidRequestException) as exc:
 | |
|         client.create_domain_configuration(
 | |
|             domainConfigurationName="testConfig", serviceType="INVALIDTYPE"
 | |
|         )
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("InvalidRequestException")
 | |
|     err["Message"].should.equal(
 | |
|         "An error occurred (InvalidRequestException) when calling the DescribeDomainConfiguration operation: Service type INVALIDTYPE not recognized."
 | |
|     )
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_describe_nonexistent_domain_configuration():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     with pytest.raises(client.exceptions.ResourceNotFoundException) as exc:
 | |
|         client.describe_domain_configuration(domainConfigurationName="doesntExist")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("ResourceNotFoundException")
 | |
|     err["Message"].should.equal("The specified resource does not exist.")
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_describe_domain_configuration():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
| 
 | |
|     client.create_domain_configuration(
 | |
|         domainConfigurationName="testConfig",
 | |
|         domainName="example.com",
 | |
|         serverCertificateArns=["ARN1", "ARN2"],
 | |
|         validationCertificateArn="VARN",
 | |
|         authorizerConfig={
 | |
|             "defaultAuthorizerName": "name",
 | |
|             "allowAuthorizerOverride": True,
 | |
|         },
 | |
|         serviceType="DATA",
 | |
|     )
 | |
|     described_config = client.describe_domain_configuration(
 | |
|         domainConfigurationName="testConfig"
 | |
|     )
 | |
|     described_config.should.have.key("domainConfigurationName").which.should.equal(
 | |
|         "testConfig"
 | |
|     )
 | |
|     described_config.should.have.key("domainConfigurationArn")
 | |
|     described_config.should.have.key("serverCertificates")
 | |
|     described_config.should.have.key("authorizerConfig")
 | |
|     described_config.should.have.key("domainConfigurationStatus").which.should.equal(
 | |
|         "ENABLED"
 | |
|     )
 | |
|     described_config.should.have.key("serviceType").which.should.equal("DATA")
 | |
|     described_config.should.have.key("domainType")
 | |
|     described_config.should.have.key("lastStatusChangeDate")
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_update_domain_configuration():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     client.create_domain_configuration(
 | |
|         domainConfigurationName="testConfig",
 | |
|         domainName="example.com",
 | |
|         serverCertificateArns=["ARN1", "ARN2"],
 | |
|         validationCertificateArn="VARN",
 | |
|         authorizerConfig={
 | |
|             "defaultAuthorizerName": "name",
 | |
|             "allowAuthorizerOverride": True,
 | |
|         },
 | |
|         serviceType="DATA",
 | |
|     )
 | |
|     client.update_domain_configuration(
 | |
|         domainConfigurationName="testConfig",
 | |
|         authorizerConfig={
 | |
|             "defaultAuthorizerName": "updatedName",
 | |
|             "allowAuthorizerOverride": False,
 | |
|         },
 | |
|         domainConfigurationStatus="DISABLED",
 | |
|     )
 | |
|     described_updated_config = client.describe_domain_configuration(
 | |
|         domainConfigurationName="testConfig"
 | |
|     )
 | |
|     described_updated_config.should.have.key("authorizerConfig").which.should.have.key(
 | |
|         "defaultAuthorizerName"
 | |
|     ).which.should.equal("updatedName")
 | |
|     described_updated_config.should.have.key("authorizerConfig").which.should.have.key(
 | |
|         "allowAuthorizerOverride"
 | |
|     ).which.should.equal(False)
 | |
|     described_updated_config.should.have.key(
 | |
|         "domainConfigurationStatus"
 | |
|     ).which.should.equal("DISABLED")
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_update_domain_configuration_remove_authorizer_type():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     client.create_domain_configuration(
 | |
|         domainConfigurationName="testConfig",
 | |
|         domainName="example.com",
 | |
|         serverCertificateArns=["ARN1", "ARN2"],
 | |
|         validationCertificateArn="VARN",
 | |
|         authorizerConfig={
 | |
|             "defaultAuthorizerName": "name",
 | |
|             "allowAuthorizerOverride": True,
 | |
|         },
 | |
|         serviceType="DATA",
 | |
|     )
 | |
|     client.update_domain_configuration(
 | |
|         domainConfigurationName="testConfig", removeAuthorizerConfig=True
 | |
|     )
 | |
|     described_updated_config = client.describe_domain_configuration(
 | |
|         domainConfigurationName="testConfig"
 | |
|     )
 | |
|     described_updated_config.should_not.have.key("authorizerConfig")
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_update_nonexistent_domain_configuration():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     with pytest.raises(client.exceptions.ResourceNotFoundException) as exc:
 | |
|         client.update_domain_configuration(domainConfigurationName="doesntExist")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("ResourceNotFoundException")
 | |
|     err["Message"].should.equal("The specified resource does not exist.")
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_list_domain_configuration():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     client.create_domain_configuration(domainConfigurationName="testConfig1")
 | |
|     client.create_domain_configuration(domainConfigurationName="testConfig2")
 | |
|     domain_configs = client.list_domain_configurations()
 | |
|     domain_configs.should.have.key("domainConfigurations").which.should.have.length_of(
 | |
|         2
 | |
|     )
 | |
|     domain_configs["domainConfigurations"][0].should.have.key(
 | |
|         "domainConfigurationName"
 | |
|     ).which.should.equal("testConfig1")
 | |
|     domain_configs["domainConfigurations"][1].should.have.key(
 | |
|         "domainConfigurationName"
 | |
|     ).which.should.equal("testConfig2")
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_delete_domain_configuration():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     client.create_domain_configuration(domainConfigurationName="testConfig")
 | |
|     domain_configs = client.list_domain_configurations()
 | |
|     domain_configs.should.have.key("domainConfigurations").which.should.have.length_of(
 | |
|         1
 | |
|     )
 | |
|     client.delete_domain_configuration(domainConfigurationName="testConfig")
 | |
|     domain_configs = client.list_domain_configurations()
 | |
|     domain_configs.should.have.key("domainConfigurations").which.should.have.length_of(
 | |
|         0
 | |
|     )
 | |
| 
 | |
| 
 | |
| @mock_iot
 | |
| def test_delete_nonexistent_domain_configuration():
 | |
|     client = boto3.client("iot", region_name="us-east-1")
 | |
|     with pytest.raises(client.exceptions.ResourceNotFoundException) as exc:
 | |
|         client.delete_domain_configuration(domainConfigurationName="doesntExist")
 | |
|     err = exc.value.response["Error"]
 | |
|     err["Code"].should.equal("ResourceNotFoundException")
 | |
|     err["Message"].should.equal("The specified resource does not exist.")
 |