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.") |